- 下の図のように、パブリックサブネットを2つ持ったVPCを作成し、その中にELBとAuto Scaling groupを設定。
Auto Scaling groupは起動テンプレートから作成されたEC2インスタンスが自動デプロイされ
自動的にELBのターゲットグループの方にアサインされ、EC2インスタンスを削除してもAuto Scaling groupの最小起動台数がキープされるという事を試しました。
ではやってみましょう!
VPC,パブリックサブネット,IGW,ルートテーブルを作成
マネジメントコンソールからVPCの画面を開き、VPC作成を押下。
下記内容で作成する。
EC2から起動テンプレート作成
コンソ-ル画面からEC2を選択し、インスタンスを起動を押下。
下記内容で作成する。(キーペアは作成しなくても可、作成したVPCを選択、
サブネットはどちらかを選択、ユーザーデータは下記を貼り付ける。)
#!/bin/bash
echo "===yum -y install httpd==="
yum -y install httpd
echo "===systemctl start httpd.service==="
systemctl start httpd.service
echo "===systemctl enable httpd.service==="
systemctl enable httpd.service
echo "===get token===" #トークンを取得
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
echo "===get instance-id >> /tmp/test===" #見出し
echo "instance-id:" >> /var/www/html/index.html #見出し
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-id >> /var/www/html/index.html
echo " " >> /var/www/html/index.html
echo "===get Tag===" #見出し
echo "Name tag:" >> /var/www/html/index.html #見出し
curl -s -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/Name >> /var/www/html/index.html
パブリックIPv4アドレスをコピーし、ブラウザに貼り付け繋がるか確認する。
作成したEC2を右クリックし「イメージとテンプレート」、「インスタンスからテンプレートを作成」を押下する。
デフォルトのままで「起動テンプレートを作成」を押下する。
AutoScalingグループとELBを作成し動作確認
EC2の左画面からAutoScalingグループを選択、「AutoScalingグループ」を押下する。
以下、写真の内容で設定する。
「グループサイズとスケーリングを設定する」は下記写真の内容で設定し「次へ」を押下する。
「タグを追加する」で下記写真の内容で設定し「次へ」を押下する。
左側「ターゲットグループ」を押下し、ターゲットグループが作成されている事、
インスタンスが2台作成されている事を確認する。
ロードバランサーのセキュリティグループを作成する。
左側から「セキュリティグループ」、「セキュリティグループを作成する」を押下する。
下記写真の内容で設定する。
デフォルトのセキュリティグループは削除し、作成したセキュリティグループを選択する。
通信を確認する。
ロードバランサーのDNS名をコピーし、ブラウザに貼り付け何回か更新し
通信が出来ている事、2つのEC2が表示されている事を確認する。
テスト的に片方のEC2を削除してみる。
AutoScalingグループの「アクティビティ」を確認する。
新しくEC2インスタンスが起動された事を確認する。
ロードバランサーもブラウザで更新して、新しく作成されたEC2と振り分けられている事を確認する。
以上になります。