はじめに
ここではAWSを使って、下記の最低限のアーキテクチャを構築する手順をまとめておく。まだわかってない部分多い。
VPC内にパブリックサブネット、プライベートサブネットを用意し、EC2はプライベートサブネットに配置し、RDSをプライベートサブネットに配置する。RDSには、EC2を踏み台サーバーとして利用してアクセスする。このようなアーキテクチャを作る。そこからフェイルオーバーなどを設定していく。
RDSの設定準備
まずは下記の4つ内容をまとめる。
- サブネットグループ設定
- パラメタグループ設定
- オプショングループ設定
- セキュリティグループ設定
サブネットグループ設定
サブネットグループでは、RDSを構築するAZとサブネットをグループとして指定する。マルチAZ構成を構築する際にフェイルオーバーする複数のAZやサブネットの設定で利用する。
パラメタグループ設定
DBのパラメタの設定のこと。一度設定したDBのパラメタ設定は共有することが可能。
オプショングループ設定
これはDBエンジンに応じて追加の機能を設定するグループ。
セキュリティグループ設定
これはRDSのファイアウォールの設定のことで、トラフィックの制御に関する設定。
VPCの設定
VPCのサービスの画面から「VPCウィザードの起動」をクリック。
次は、「パブリックとプライベート サブネットを持つVPC」をクリックして進む。
下記の通りネットワークやAZの設定を行う。設定が終われば「VPCの作成」を押して進む。ここではNATゲートウェイも設定しているが、不要であれば設定する必要はない。
NATゲートウェイとElastic IPの開放の方法は、各サービスのアクションから行う。
VPCの拡張
現状の設定では1つのAZにパブリックサブネットとプライベートサブネットが有る状態なので、ここでは新たに1つ目のAZに同じようにパブリックサブネットとプライベートサブネットを構築する。こうすることでフェイルオーバーができるようにする。「サブネット」のサービス画面に移動し、「サブネットの作成」をクリック。
まずはパブリックサブネットを構築する。ここではap-northeast-1CのAZに構築する。
この状態だと名前はパブリックサブネットCだが、機能としてプライベートサブネットのままなので「ルートテーブル」を開き「ルートテーブルの関連づけの編集」から設定を編集する。
ターゲットの下が「igw**」になるように、ルートテーブルIDを変更する。これでパブリックサブネットCの方もインターネットと通信できるようになる。
次にプライベートサブネットを構築する。同じくap-northeast-1CのAZに構築する。
EC2の構築
踏み台となるEC2を作成する。EC2のサービスの画面に移動し、インスタンスを作成する。
ここではサンプルなので、無料枠のAmazon Linuxを選択する。
ここも無料枠のt2.microを選択する。
VPCの設定を変更する。このEC2はsample-vpcのプライベートサブネットに配置する。
「ステップ 4: ストレージの追加」「ステップ 5: タグの追加」は特に設定しないので画像はなし。
セキュリティグループの設定はEC2からSSHを許可するように設定する。
「起動」を押すとSSHの鍵がダウンロードできるので、然るべき場所で保存する。ここではデモなのでデスクトップにおいておく。
RDSの構築
まずは、サブネットグループ設定、パラメタグループ設定、オプショングループ設定から確認する。
サブネットグループを新たに構築する。
RDSを構築するAZとサブネットをグループとして指定する。マルチAZ構成を構築する際にフェイルオーバーする複数のAZやサブネットを指定する。
ここではパラメタグループ、オプショングループは特に設定しない。それではデータベースを作成する。
ここではMySQL5.7系を使用します。
フェイルオーバーの設定をしたいので、「開発/テスト」を選択。ルートユーザーの設定を諸々する。
「スタンバイインスタンス」を作成しない。
VPC、サブネットグループはさきほど作ったものを設定する。RDSはEC2からのみアクセス可能なので、「パブリックアクセス可能」は「なし」。
EC2から接続できるようにセキュリティグループを変更する。エンドポイントsample-database.cudgswl81len.ap-northeast-1.rds.amazonaws.com
もあとから必要なのでメモ。
EC2のプライベートIPアドレスをメモする。ここだと10.0.0.235
。「IPv4 パブリック IP」の54.238.231.90
は後でMySQLワークベンチからアクセスする際に利用するのでメモ。
インバウンドルールの「編集」からEC2のIPアドレスを許可する。/32
はIPアドレス全体を許可する意味。
これで踏み台EC2経由でMySQLにアクセスできる。
MySQLに接続
MySQLワークベンチからアクセスしていく。設定は画像の通り。
適当にSQLを実行する。
フェイルオーバーを設定する
RDSのサービスの画面から、現状の設定を確認する。マルチAZは「なし」になっている。これを変更していく。
「インスタンスの仕様」のマルチAZ配置を「はい」に変更して保存。
次のページに進み、「すぐに適用」を選択する。
適用するために「再起動」を行う。
再起動する際にフェイルオーバーを実行できるのでそれを設定。これでAZが変更される。
あとかたづけ
一連の作業を実行したので、EC2もRDSも全部削除する。