はじめに
現在、AWS SAAを勉強中(自己学習用のブログ)。
目的
・Auto Scalingの起動設定とAuto Scalingグループを理解する。
※今回は「ELB」を作成せずにAutoScalingを構成する。
1.起動設定を作成
▼Auto Scaling → 起動設定をクリック
[起動設定の作成]をクリック
・追加設定- 高度な詳細
・自宅のPCからアクセスするので、パブリックIP割り当てをON
・セキュリティグループは既存のEC2用の選択
(別途インバウンドにルールを追加「TCP/ポート22/IP・CIDER」)
・キーペアも既にあるものを選択
・起動設定 作成完了
2.AutoScalingグループ作成
・名前と起動設定を設定して[次へ]をクリック
・ネットワーク設定
以下選択をして[次へ]
VPC:テスト用VPC
アベイラビリティゾーンとサブネット:パブリックのAとCゾーン
・詳細オプション
ELB作成しないので「ロードバランサーがありません」を選択して[次へ]
・グループサイズ
最大キャパシティを「2」に変更して[次へ]
・通知を追加
何も設定せずに[次へ]
・タグを追加
Nameタグを付与して[次へ]
[AutoScalingを作成]をクリック
・AutoScalingグループ 作成完了
.EC2インスタンスが自動的に起動される。
★追記(検証して分かった事)
スケールインしなかったので、以下設定を追加
「詳細タブ」 → 「高度な設定」→ [編集]をクリック
→「インスタンススケールイン保護を有効にする」をチェック
※グループの詳細→希望する容量が自動的に「1」→「2」に変更されるので「1」に設定変更
3.自動スケーリングポリシー設定
・作成したAutoScalingグループ「test-auto-scaling-gp」を選択し
「自動スケーリング」タブ → [動的スケーリングポリシー]をクリック
・動的ポリシーを設定し、[作成]をクリック
4.CloudWatchアラーム設定
▼アラーム → すべてのアラーム → [アラームの作成]をクリック
・EC2を選択
・Auto Scalingグループ別を選択
・CPUUTilizationを選択し[メトリックスの選択]をクリック
・メトリクスと条件の指定
統計:平均値 期間:1分
・条件
CPU使用率 60%でAutoScalingが発動するよう設定し[次へ]をクリック
・通知の設定
通知不要なので[削除]をクリック
・AutoScalingアクションを追加。
以下項目を設定し[次へ]をクリック
・名前と説明を設定し[次へ]をクリック
・アラームの作成
・アラーム作成完了
5.検証
・対象サーバにログインし、以下コマンドを入力し負荷をかける。
# openssl speed -multi `grep processor /proc/cpuinfo|wc -l`
# top
top - 07:22:08 up 35 min, 2 users, load average: 0.48, 0.14, 0.04
Tasks: 201 total, 4 running, 197 sleeping, 0 stopped, 0 zombie
%Cpu(s): 99.5 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.3 hi, 0.2 si, 0.0 st
MiB Mem : 780.9 total, 80.1 free, 348.5 used, 352.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 277.3 avail Mem
・CloudWatch 閾値越えを確認
・アラーム検知
・2台目のEC2インスタンスが起動
参考サイト
【AWS Cloud Watch】CloudWatchアラームによるCPU使用率監視とAutoScalingとの連携
Linuxで手軽にCPU/メモリの負荷をかける方法