🤤

さっぱりわからん【冗長構成(AutoScalling)】

2021/01/24に公開

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