インフラエンジニアの技術ブログ

日々学んでいることをブログでまとめていきます。

aws_ec2_auto scaling機能

auto scaling機能の動きを確認する
下環境を用意(0ベースだと準備が地味に大変)


・s3のバケットを1つ用意
BUCKET

・health-check.htmlの用意
内容
<html><h1>I am OK</h1></html>

・以下コマンドセット用意
----
#!/bin/bash
yum update -y
yum install httpd -y
service httpd start
chkconfig httpd on
cd /var/www/html
echo "<html><h1>Hello world. Greeting from 'hostname'</h1></html>" > index.html
aws s3 cp --recursive s3://BUCKET /var/www/html
---
・セキュリティグループ作成済み
dmz

・キーペアを準備済み
keypare

1.ロードバランサーの用意
Classic Load Balancerを選択
手順1
名称設定
clb

手順2
デフォルトと既存で用意済みのdmzを選択

手順3
そのまま

手順4
pingパス
/health-check.html
応答タイムアウト
2
間隔
5
非正常のしきい値
2
正常のしきい値
3

手順5,6
そのまま

手順7
[作成]をクリック

2.auto scalingの起動設定

左メニュのAUTO SCALING以下[起動設定]をクリック
[起動設定の作成]をクリック
1.AMIの選択で[Amazon Linux AMI ~]をクリック
2.インスタンスタイプの選択画面でそのまま[次の手順]をクリック
3.[詳細設定]の選択画面で
IAMロール[s3AdminAccess]を選択
高度な詳細-ユーザーデータ内容のテキストボックス欄にコマンドセットの内容を貼り付け
4.ストレージの追加で[次の手順]をクリック
5.セキュリティグループの選択で[既存のセキュリティグループ]を選択 dmzを選択
最後に[確認]をクリック
6.確認にて[起動設定の作成]をクリック
別ウィンドウが表示されるので
既存のキーペア
keypare
を選択して[起動設定の作成]をクリック

続けて
[この起動設定を使用してAuto Scalingグループを作成する]をクリック

1.Auto Scalingグループの作成
グループ名auto-scaling
グループサイズ 3
サブネット(テキストボックス欄をダブルクリックすると1c,1d,1aの3つのサブネットが
表示されるので1つずつ、選択して計3つを設定する)
高度な詳細
Classicロードバランサー
テキストボックス欄をダブルクリックしてロードバランサー名clbが表示されるので、選択
ヘルスチェックのタイプ ELBを選択
ヘルスチェックの猶予期間 150秒

2.スケーリングポリシーの設定
3.通知の設定
→そのまま[次の手順]
4.タグを設定
[確認]をクリック
5.確認
[Auto Scalingグループの作成]

画面左側「インスタンス」をクリック
しばらくするとアベイラビリティゾーンが1a,1c,1dの3つのインスタンス(Name欄はいずれも空白)がみえてくる
(環境によって表示されるまで時間がかかる可能性あり)

3.実際の動き
1.ロードバランサーclbの設定から
[説明]タブ上に表示のDNS名をクリック

2.ブラウザを起動してDNS名をURL欄に貼り付け
Hello World.Greeting from <hostname>
→更新すると<hostname>部分が毎回かわる
(更新毎に別インスタンスへアクセスされている)

3.3つのインスタンスのうち2つを削除する
2つを選択して右クリック[インスタンスの状態]-[削除]をクリック
ステータスが[terminated]となる

4.しばらくすると3で削除したインスタンスが各々複製されかつ自動で[pending]→[running]にかわる
(しばらく時間はかかる)