always one step forward

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サーバ + Oracle Database Express Edition(Linux 版)

でもいいような気がして、セットアップだけは済ませてある。EC2 サーバだけなら無料利用枠でも I/O 制限はないように見える。ただし、ユーザアカウントの設定など(まだしていない)が Management Console では行えないので面倒。そうなるともう、EC2サーバの代わりに

を立ち上げるのと実質は同じ。データベースサービス実体への必要な設定を Management Console 1枚で行えるメリットはけっこう大きいと思った。では最後に簡単なスクリーンショット付き手順を:

Amazon RDS (Oracle) セットアップ手順

  • AWS 用のアカウント(amazon.co.jp, amazon.com 用のものとは別)を取得してログイン
  • Management Console - https://console.aws.amazon.com/console/home を開く
  • RDS を選択

    image00

  • 最初にリージョンを Asia Pacific (Tokyo) と選択しておき、Launch a DB Instance image01

  • License Model は BYOL、Multi-AZ deployment は No でないと課金されるので注意(末尾を参照)

  • DB Instance Class は db.t1.micro だけが無料利用枠で選択可能
  • Allocated Storage は Oracle の場合最低 10GB、以降は自分で決めて入力 image02

  • データベース名も自分で決めて入力

    • DB インスタンス(例では mydbinstance)が一番外の大きな箱、その中にデータベース(mydb)が内側の箱として作られ、さらにその中にテーブルを自分で作成していく
  • ポート番号等はデフォルトのままでOK image03

  • 自動バックアップ、実施する場合はその頻度などを設定 image04

  • 設定内容を確認して Launch DB Instance で DB インスタンス作成 image05

  • 「DB インスタンスを作成中です」

  • セキュリティグループ、スナップショットの設定も引き続き行える image06

  • ローカルにインストールした Oracle SQL Developer に、作成したデータベース名やユーザー名を使って接続する設定

    • [接続名] は任意、[ユーザー名][パスワード] は先ほど指定したものを入力
    • [ホスト名] は DB インスタンス起動後の Management Console で確認可能。現時点では (インスタンス名).(文字列).(AZ名).rds.amazonaws.com になるみたい
    • [ポート番号] は指定したものを入力、デフォルトのままなら1521
    • [SID] にデータベース名を入力して(ここが若干ややこしかった)、[接続] image09
  • 適当なテーブルを作成、insert したりした SQL クエリ発行例 image07

  • Management Console 右上メニュー、自分のユーザー名をクリックした後に開ける Account Activity で、いわゆる課金情報が確認できる

    • 赤い下線1つめ:さわり始めた当初、よくわからずに Multi-AZ deployment を Yes としてインスタンスを立ち上げていた。失敗して作り直したり、も含めて → 粛々と課金されていたことを後で知る
    • 赤い下線3つめ:同様に License Model を Included として立ち上げていた → 粛々と課金
    • 赤い下線2つめ:これはまだよくわかっていないけどおそらく「1000万 I/O までは無料、それを超えた回数の I/O については、100万 I/O で $0.12 という割合でお金いただきます」と読める。まあ、このあたりの勉強代として考えれば妥当か image08
  • 翌月分の画面2つ

    • がんばって無料利用枠で稼働中。I/O 数も月ごとにリセットされるようだ
    • 気になる「どんなサイズのテーブルに、どんな操作をすれば、どれだけ I/O が発生するのか?」は未調査。1000 万超えは(そもそも例で示したような小さいデータベースだけしかつくっていないので)インスタンスを何度も作り直したのが大きかったのかも
    • また、自動バックアップ設定を有効にしている点も影響ありそう。数日、間を空けて確認した差が2つの画像で、特に何も操作はしていないのに使用量や I/O 数が増えている image10 image11