はじめに
AWSでWeb三層モデルを体系的に構築した事が無かった為、AWS公式のハンズオン(スケーラブルウェブサイト構築編)を実践しました。
本記事は自身のハンズオン学習メモとして投稿します。
目次
ハンズオンの目的
WordPressを具体例に、
- Amazon EC2
- Amazon Virtual Private Cloud (VPC)
- Amazon Relational Database Service (RDS)
- Elastic Load Balancing (ELB)
を利⽤し、スケーラブルなWebシステムを構築する。
WordPressを使ったブログサイトの構築を通じて、スケーラブルな Web システム構築を学んでいただけるウェビナーシリーズです。主に取り扱う AWS サービスは Amazon EC2、Amazon RDS、ELB の3つです。また、作って終わりではなく、実際にEC2インスタンス1台を停止させ、その状態でもブログサイトにアクセスできることも確認します。
(https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/?trk=aws_blog より引用)
本編
※全てマネジメントコンソールから実施。
Amazon VPCの作成
- VPC作成
- Subnet作成(Private、PublicをAZ-A、AZ-Cに1つずつ)
- ルートテーブルの関連付け(PublicのデフォルトゲートウェイをIGWに設定)
Amazon EC2の作成
- PublicのAZ-AにEC2インスタンスを作成。ユーザーデータを利用しWordPressをインストール
- SecurityGroup作成・設定
- EC2にSSH(EC2 Instance Connect (ブラウザベースの SSH 接続)を利用)
EC2 Instance Connectを使えばSSHの鍵を作成せずに接続出来るのか。。。
参考:EC2のSSHアクセスをIAMで制御できるEC2 Instance Connectが発表されました
Amazon RDSの作成
- SecurityGroup作成
- Subnetグループ作成
- RDS作成
ELBの作成
- SecurityGroup作成
- ALB作成(ターゲットグループ作成、ヘルスチェック設定)
- DNS名で接続
WordPress初期設定
初期設定を行い、アクセス。特筆すべき事はなし
AMIの作成と、そのAMIから2つ⽬のEC2インスタンス作成
- AMI作成(既にデプロイしているEC2のAMIを作成)
- AMIからEC2作成
- ターゲットグループに新規EC2追加
EC2(Web)とRDS(DB)のマルチAZ化
- RDSをマルチAZに変更
構築したアーキテクチャの可⽤性確認
- EC2のうち1台を停止し、Webページにアクセス。問題なくアクセス出来る事を確認
- RDSをフェールオーバーさせ、webページにアクセス。フェールオーバー中の数分はアクセス出来ないが、その後アクセス出来るようになる事を確認
作成した AWS リソースの削除
粛々と削除。特筆すべきことはなし。
おわりに
AWSでweb三層モデルを体系的に構築したのは初めてだったので、いい経験になった。
また、AWSの資格勉強のおかげで、GUIで行うレベルの設定パラメータについては理解できている事が分かった。