🤤
さっぱりわからん【冗長構成(AutoScalling)】
ELBの後ろにEC2を別々のAZに2台設置。(その後ろにRDS)
だけどそのままだと、2台とも障害が発生したときには、サービスが完全にストップしてしまいます。
上司は言いました。
「AutoScallingを制するものは、冗長構成を制する」
嘘です。ごめんなさい、そんなこと言ってません。
では本題
1)起動テンプレートを作成します。
起動テンプレートとは、どんなインスタンスを設置するかあらかじめ決めておく、テンプレートです。
EC2 → 起動テンプレートを押下
あとは、自分の作りたい情報を入力していきます。
(インスタンスタイプなど)
2)AutoScallingグループの作成
EC2 → AutoScallingグループを押下
設定 | 値 |
---|---|
グループ名 | 任意 |
AMI | 使用したい起動テンプレート |
VPC | 任意 |
サブネット | 使用したいサブネット |
ロードバランサー | 今回はELBもあるのでチェック |
ヘルスチェック | 今回はELBもチェック |
グループサイズ | 最大、最小、希望の任意の値 |
スケーリングポリシー | CloudWatchAlarm使用したいので、なし |
3)EC2をグループサイズ最小以下になるように停止する
停止してみると、なんということでしょう。
EC2が勝手に起動を始めています!!!
AutoScallingは無事動いているということになります。
(※最小2、最大4、希望2しています。後からもう一個できた)
4)CloudWatchでアラーム条件の設定
CloudWatch → アラーム → アラームを作成 → メトリクス → EC2 → AutoScalling別 → CPU選択
2つ作ります。
1)しきい値は70%より大きい
欠落データは「欠落データを不正」を選択
名「CPU高」
2)しきい値は30%より小さい
欠落データは「欠落データはみつかりません」を選択
名「CPU低」
5)AutoScallingにアラーム設定
AutoScalling → 自動スケーリング → スケーリングポリシーの作成
上記で作成したのを設定します
設定 | 値 |
---|---|
名 | 任意 |
ポリシータイプ | シンプルなスケーリング |
アラーム | 増やすなら「CPU高」、減らすなら「CPU低」 |
アクション | 追加/削除 |
数 | 任意(1インスタンス) |
キャパシティユニット | ー |
次に待機 | 任意(30秒) |
6)負荷をかける&負荷の確認
負荷確認コマンド(CPU)
# top
負荷を与えるコマンド
# yes > /dev/null &
※後でkillコマンドで消してください
EC2が増えてきたら成功!!!
「Autoscallingを制するものは、冗長化を制する」
ありがとう、上司。ありがとう。AutoScalling
※そんなこと上司言ってません。
Discussion