データベース(RDS)リソースの作成¶
ここではSingle-AZ構成のRDS for MySQL(※)を作成します。
※ Aurora(MySQL互換)ではありません。
AWS独自のRDBMSであるAuroraには残念ながら無料枠がないので、今回は利用しません。
余談ですがAurora-Serverlessを使うと完全無料ではないながらも今回のようなデモや開発用のDBを低コストで利用することができます(詳しい話は別途)。
■ DB用セキュリティーグループ(SG)の作成¶
- EC2(あるいはVPC) > セキュリティグループ > セキュリティグループを作成
- セキュリティグループ名「sample-sg-rds」 説明「allow dbcon from ec2」
- VPCはデフォルト
- インバウンドルールに"MySQL/Aurora"プロトコルにEC2にアタッチしたSG(sample-sg-ec2)を許可する設定を追加
- アウトバウンドルールはデフォルトのまま(全許可)
- "Name"タグにSG名と同じ値を設定
※ SGはCIDRブロックでのIP指定の他、他のSGからの許可を追加できることがここでの最重要ポイントです!
■ サブネットグループの作成¶
- RDS > サブネットグループ > DBサブネットグループを作成
- 名前に"demo-subnet-grp"
- 説明に"for demo" (適当でいいです)
- VPCはデフォルトを選択
- AZに"ap-northeast-1a"と"ap-northeast-1d"を選択
- サブネットに"172.31.48.0/20"と"172.31.64.0/20"のものを選択(前の手順で作成したプライベートサブネット2つ※)
- 作成
※ サブネットグループは2つ以上のサブネットを指定しないと作成できないため、前の手順で"ap-northeast-1d"のAZのプライベートサブネット("172.31.64.0/20"の方)を作成しています
今回はSingle-AZ構成のため、"-1d"の方のサブネットは実質的には利用されません。
■ データベースの作成¶
- RDS > データベース > データベースの作成
- エンジンに「MySQL」を選択
- テンプレートに「無料利用枠」
- マスターユーザーはデフォルト(admin)のまま、マスターパスワードに任意の値を入力(ここでは書きませんが、入力値は覚えておいてください)
- DBインスタンスクラスは"db.t2.micro"(デフォルト)のまま
- 接続 VPCはデフォルトを選択、サブネットグループに "demo-subnet-grp"(前の手順で作成したもの)を選択
- パブリックアクセスは"なし"(デフォルト)
- セキュリティーグループに"sample-sg-rds"を選択
- AZに"ap-northeast-1a"を選択 (サブネットグループで選択したAZから選択できます)
- データベース認証はデフォルト(パスワード認証)
- 追加設定 > 「最初のデータベース」に"sample"を入力(DB接続して作成する手間を省略します)
- 追加設定 > 「自動バックアップを有効にします」をOFFにする (デフォルトはONですが、今回は必要ないためOFFにします)
- データベースの作成
ステータスが"作成中"から"利用可能"になるまでしばし待ちます。
■ 補足¶
オンプレ環境やEC2上に構築する場合と異なり、マネージドサービスであるRDSでは各DB固有の設定ファイル(MySQLの場合はmy.iniやmy.conf)の編集ができません。
その代わり、「パラメータグループ」の設定でデフォルトの設定を変更することができます。
パフォーマンスチューニング関連の調整やタイムゾーン、Localeなどの設定を変更することができます。