プロジェクト

全般

プロフィール

データベース(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にします)
  • データベースの作成

ステータスが"作成中"から"利用可能"になるまでしばし待ちます。
rds1

■ 補足

オンプレ環境やEC2上に構築する場合と異なり、マネージドサービスであるRDSでは各DB固有の設定ファイル(MySQLの場合はmy.iniやmy.conf)の編集ができません。
その代わり、「パラメータグループ」の設定でデフォルトの設定を変更することができます。
パフォーマンスチューニング関連の調整やタイムゾーン、Localeなどの設定を変更することができます。