#3 AWS Hands-on for Beginners 〜 スケーラブルウェブサイト構築編 〜
目的
前回に続き、今回 はスケーラビリティと冗長性に優れたブログサイトの構築が目的のハンズオンです。要点として、まずWebサーバーを立ててWordPressをインストールします。そして、ELB(ALB)にインスタンスを登録することで負荷分散を実現します。この2つのセキュリティグループを通じて、HTTP通信のインバウンドルールを設けます。また、RDS(MYSQL)にはスタンバイインスタンスを用意し、データを同期した予備のDB(スタンバイインスタンス)を用意します。
ハンズオンの最後では、冗長性を確かめる次のオプションが用意されていました。
① 実際にWebのインスタンスを停止させ、ELBに登録したもう一方のEC2が機能し、負荷分散を確認する
① プライマリDBを再起動し、スタンバイインスタンス(セカンダリDB) の機能を確認する
本題
以下が、今回のハンズオンの全体像になります。
ネットワーク構成図
ルートテーブル一覧
セキュリティグループ一覧
- VPCの作成と同時に、AZやサブネットなどその他のリソースも作る
- ユーザーデータ(インスタンス起動時に実行されるスクリプト)にWordPressのダウンロード設定をしたEC2を立てる
- RDSでDBインスタンスを立てる (セキュリティグループの指定に注意する) ※1
- ELBを作成し、ターゲットグループなどを適切に設定する
- WordPressの初期設定をする
- WordPressのEC2からAMIを作成する
- AMIからEC2を作成し、ELBのターゲットグループに追加する
- RDSでスタンバイインスタンスを作成し、適用する
- 目的で述べたオプション①, ②を実施する
※1 DB はパブリックサブネットのEC2からのアクセスのみを受け付けたいので、インバウンドルールのソースにパブリックサブネットのEC2のセキュリティグループを指定する。これはDBインスタンスで一般的な仕様である。
また、DB作成時のデータベース名やパスワードは、WordPressの初期設定に利用するので控えておく。
振り返り
前回に引き続き、セキュリティ面を意識してハンズオンに取り組みました。システムがより複雑になればなるほど、ルートテーブルやセキュリティグループが細かくなると想定されるので、アンテナを張りながらこれからのハンズオンを進めたいと思います。
また、VPCを削除する際に、紐づいたルートテーブルやサブネットを削除してくれるのは便利だと感じました。その一方で、RDSのサブネットグループや、EC2のAMIとそのスナップショットなどは含まれないので、削除し忘れないように注意しようと思いました。
その他
思い返すと以前に個人開発をしたWebアプリの構成と似ていたなーと感じました。ただ、無料利用枠の都合でEC2を一つしか立てていなかったので、今回はELBの本来の機能を確認出来て面白かったです。
最後まで記事を読んでくださり、ありがとうございます。もし内容に誤りがございましたら、ご指摘いただけますと幸いです。