Amazon RDS (Oracle) をセットアップした + ドットインストール雑感
AWS (Amazon Web Services) 内のサービスの1つ、Amazon RDS をセットアップし、無料利用枠内でさわってみた。MySQL や Microsoft SQL Server Express Edition も選択できたけれど、せっかくなので(より割高感のある)Oracle にした。セットアップは簡単、health チェックなど運用面もすべてブラウザ経由でスマート。本格的に integrate されたクラウドサービスを身近に体験できるようになっている。
ただ、結果的には、無料のままで(無料利用枠の範囲内で)触れる内容はごく限られていている感じ。クエリ発行はいいとして、本格的に動かし出すと「1000万 I/O」はわりとすぐ超えるように感じた。データベースそのものにあまり詳しくないので、この I/O 数がどれくらいのスケールを対象としているのかイメージできていないけれど、「本格的に使うならお金払ってちょうだい」というメッセージにも見える。まあ、このページにあるように、無料で、データベースだけでなく EC2 サーバや S3 ストレージをはじめとしたたくさんのサービスを触れるので、これでも充分という気もする。
ドットインストール雑感
そもそも、ドットインストール さんの解説がなかったら、ここまで自分でやろうとは思わなかった。ほかにもプログラミング言語の入門部分を YouTube 動画でわかりやすく紹介してくれている。動画は1本3分以内、もちろん自分のペースでいつでも中断できる。シリーズとして20本前後あるテーマもあるけれど、それでも1時間そこら。分厚めの書籍を1ページずつめくって学習‥という方法を苦手とする人たち(自分を含む)にとって、現時点の入口としては最適な気がする。
細かくは、おそらく、タイピング部分を省略しないところが、閲覧者の "実体験感" を保ってくれている。例えて言うなら、料理番組で「次にこの5種類の具材を切りそろえます。今回は、切ったあとの具材を準備しましたので、切り方は省略します」ではなく、「では切り方をそれぞれお見せしますので一緒に観てください」と言われる感じ。不思議と、シャドーイング(ここでは、動画を観ながら同じ内容をタイプすること)をしなくても、段階的にしっかりと頭に入ってくる。
Oracle 環境の代案はあるものの
単に趣味として自分の勉強目的で Oracle データベースを触りたい、ということなら、
でもいいような気がして、セットアップだけは済ませてある。EC2 サーバだけなら無料利用枠でも I/O 制限はないように見える。ただし、ユーザアカウントの設定など(まだしていない)が Management Console では行えないので面倒。そうなるともう、EC2サーバの代わりに
- ローカルに VirtualBox 仮想環境 + Linux イメージ(Ubuntu とか CentOS とか)
を立ち上げるのと実質は同じ。データベースサービス実体への必要な設定を Management Console 1枚で行えるメリットはけっこう大きいと思った。では最後に簡単なスクリーンショット付き手順を:
Amazon RDS (Oracle) セットアップ手順
- AWS 用のアカウント(amazon.co.jp, amazon.com 用のものとは別)を取得してログイン
- Management Console - https://console.aws.amazon.com/console/home を開く
RDS
を選択License Model は
BYOL
、Multi-AZ deployment はNo
でないと課金されるので注意(末尾を参照)- DB Instance Class は
db.t1.micro
だけが無料利用枠で選択可能 Allocated Storage は Oracle の場合最低 10GB、以降は自分で決めて入力
データベース名も自分で決めて入力
- DB インスタンス(例では
mydbinstance
)が一番外の大きな箱、その中にデータベース(mydb
)が内側の箱として作られ、さらにその中にテーブルを自分で作成していく
- DB インスタンス(例では
設定内容を確認して
Launch DB Instance
で DB インスタンス作成「DB インスタンスを作成中です」
ローカルにインストールした Oracle SQL Developer に、作成したデータベース名やユーザー名を使って接続する設定
- [接続名] は任意、[ユーザー名][パスワード] は先ほど指定したものを入力
- [ホスト名] は DB インスタンス起動後の Management Console で確認可能。現時点では
(インスタンス名).(文字列).(AZ名).rds.amazonaws.com
になるみたい - [ポート番号] は指定したものを入力、デフォルトのままなら
1521
- [SID] にデータベース名を入力して(ここが若干ややこしかった)、[接続]
適当なテーブルを作成、insert したりした SQL クエリ発行例
Management Console 右上メニュー、自分のユーザー名をクリックした後に開ける
Account Activity
で、いわゆる課金情報が確認できる- 赤い下線1つめ:さわり始めた当初、よくわからずに Multi-AZ deployment を
Yes
としてインスタンスを立ち上げていた。失敗して作り直したり、も含めて → 粛々と課金されていたことを後で知る - 赤い下線3つめ:同様に License Model を
Included
として立ち上げていた → 粛々と課金 - 赤い下線2つめ:これはまだよくわかっていないけどおそらく「1000万 I/O までは無料、それを超えた回数の I/O については、100万 I/O で $0.12 という割合でお金いただきます」と読める。まあ、このあたりの勉強代として考えれば妥当か
- 赤い下線1つめ:さわり始めた当初、よくわからずに Multi-AZ deployment を
翌月分の画面2つ
- がんばって無料利用枠で稼働中。I/O 数も月ごとにリセットされるようだ
- 気になる「どんなサイズのテーブルに、どんな操作をすれば、どれだけ I/O が発生するのか?」は未調査。1000 万超えは(そもそも例で示したような小さいデータベースだけしかつくっていないので)インスタンスを何度も作り直したのが大きかったのかも
- また、自動バックアップ設定を有効にしている点も影響ありそう。数日、間を空けて確認した差が2つの画像で、特に何も操作はしていないのに使用量や I/O 数が増えている