0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Hands-on for Beginners を理解しながら進めてみた #3

Last updated at Posted at 2024-02-24


#3 AWS Hands-on for Beginners 〜 スケーラブルウェブサイト構築編 〜

目的

前回に続き、今回 はスケーラビリティと冗長性に優れたブログサイトの構築が目的のハンズオンです。要点として、まずWebサーバーを立ててWordPressをインストールします。そして、ELB(ALB)にインスタンスを登録することで負荷分散を実現します。この2つのセキュリティグループを通じて、HTTP通信のインバウンドルールを設けます。また、RDS(MYSQL)にはスタンバイインスタンスを用意し、データを同期した予備のDB(スタンバイインスタンス)を用意します。
ハンズオンの最後では、冗長性を確かめる次のオプションが用意されていました。
① 実際にWebのインスタンスを停止させ、ELBに登録したもう一方のEC2が機能し、負荷分散を確認する
① プライマリDBを再起動し、スタンバイインスタンス(セカンダリDB) の機能を確認する

本題

以下が、今回のハンズオンの全体像になります。

ネットワーク構成図

image.png

ルートテーブル一覧

image.png

セキュリティグループ一覧

image.png


次に、大まかな手順について説明します。

  1. VPCの作成と同時に、AZやサブネットなどその他のリソースも作る
  2. ユーザーデータ(インスタンス起動時に実行されるスクリプト)にWordPressのダウンロード設定をしたEC2を立てる
  3. RDSでDBインスタンスを立てる (セキュリティグループの指定に注意する) ※1
  4. ELBを作成し、ターゲットグループなどを適切に設定する
  5. WordPressの初期設定をする
  6. WordPressのEC2からAMIを作成する
  7. AMIからEC2を作成し、ELBのターゲットグループに追加する
  8. RDSでスタンバイインスタンスを作成し、適用する
  9. 目的で述べたオプション①, ②を実施する

※1 DB はパブリックサブネットのEC2からのアクセスのみを受け付けたいので、インバウンドルールのソースにパブリックサブネットのEC2のセキュリティグループを指定する。これはDBインスタンスで一般的な仕様である。
また、DB作成時のデータベース名やパスワードは、WordPressの初期設定に利用するので控えておく。

振り返り

前回に引き続き、セキュリティ面を意識してハンズオンに取り組みました。システムがより複雑になればなるほど、ルートテーブルやセキュリティグループが細かくなると想定されるので、アンテナを張りながらこれからのハンズオンを進めたいと思います。
また、VPCを削除する際に、紐づいたルートテーブルやサブネットを削除してくれるのは便利だと感じました。その一方で、RDSのサブネットグループや、EC2のAMIとそのスナップショットなどは含まれないので、削除し忘れないように注意しようと思いました。

その他

思い返すと以前に個人開発をしたWebアプリの構成と似ていたなーと感じました。ただ、無料利用枠の都合でEC2を一つしか立てていなかったので、今回はELBの本来の機能を確認出来て面白かったです。


最後まで記事を読んでくださり、ありがとうございます。もし内容に誤りがございましたら、ご指摘いただけますと幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?