目的
RDSインスタンスの新規作成手順です。
最終的にはWebサーバに配置したTomcatアプリケーションのデータをRDSにcreateしたDBと連携させます。
環境
CentOS7.5
Apache2.4
Tomcat8.5
MySQL5.7
macOS 10系
とりあえずやってみる
RDSインスタンスの起動
まずRDSがなんなのかすら知らないが(無知すぎて色々とすみません)、サービスを体験するに限る。
AWSのコンソールからRDSを選択、トップページにサービス概要が書いてあるので一読しデータベースインスタンスの起動を選択。
エンジンの選択とのことでMySQLを。MariaDBのロゴはじめて見た。かわいいw
業務用アプリを連携する必要があるため、ユースケースは本番稼働用を選択。
変更点は以下のとおりでそれ以外はデフォルトです。
・変更
MySQL 5.7.23
db.t2.medium-2vcpu, 2 GiB RAM
ストレージタイプ:汎用
・設定
DBインスタンス識別子:tomcat5(このフィールドがインスタンス起動後の名前になります)
マスターユーザの名前:okome
マスターパスワード:8文字以上の適当なパスワードを入力する
ここまではとても簡単。GUIがわかりやすいのでスルスル進みます。
[詳細設定]の設定/ネットワーク & セキュリティ
・Virtual Private Cloud (VPC):EC2インスタンスと同じVPCを選択
・サブネットグループ:default
・パブリックアクセシビリティ:いいえ
パプリックアクセシビリティって一瞬なんのこっちゃですが、
DBから見てインターネットに出て行く(out)
インターネットからDBに直接アクセスする(in)
としたときに後者を実現したいならはいを選んでね、ということでしょうか。
実際はいを選んだ場合はサブネットが2つ以上必要でした(詳細は未検証)。
・アベイラビリティゾーン:指定なし ※どうやったらアクティブになるのか不明
・VPCセキュリティグループ:既存のVPCセキュリティグループを選択→EC2と同じセキュリティグループを選択。
VPCセキュリティグループのdefautはよくわからないので一旦バツで削除。
あとはデータベースの名前を入力し作成を押すと完了です。
インスタンスの削除
EC2と違って削除するときにいくつか質問があります。
こういった仕様はHerokuとかと同じだなーというか、セキュアなデータを保持してるサービスはこんな感じで聞かれるのでしょうか?
経験不足のためよくわかってませんが、このような知識も少しずつ増えればいいなと思っています。
DBインスタンスへのssh
良い感じのサイトでありがたくお勉強。クライアントからEC2インスタンスにssh、それを踏み台にして同じセキュリティグループのRDSインスタンスにmysqlするといった手順になります。
インスタンス作成時に同じセキュリティグループを設定するのは意図的に行ったのですが、ソースを作業環境のグローバルにしたうえで3306ポートを空けていたのでログインできず少し混乱しましたが無事完了。
次は何をするのか
とりあえず一旦はここまで。
問題はここからでどうアプリと連携するのか検討もつきませんがw、現状を確認してみます。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| innodb |
| mysql |
| performance_schema |
| sys |
| tomcat5db |
+--------------------+
6 rows in set (0.00 sec)
デフォルトのDB+インスタンス作成時に作ったtomcat5dbが存在します。このDBにアプリが使うテーブルを用意してエンドポイントをアプリ(のソースコード)に明記してあげれば書き込まれるのかな?進捗がありましたら本記事に追記したいと思います。
所感
VPCやNW周りの知識がかなり欠落していたので、ググってお勉強しなおしました。
サブネットの計算とかいって忘れる→思い出す→すぐ忘れる→思い出す、のループを10数年繰り返している気がします。。ありがたいことに便利な計算サイトがありますのでこういったプロダクトは積極的に使用してアウトプットの速度を上げる、ただし内部のロジックはちゃんと理解してるしおさらいすればすぐに思い出す…という状態を高いレベルで常にキープしたいなと最近よく考えています。
最後まで読んでいただきありがとうございました。
以上です。