AWSで2つのアベイラビリティゾーンにまたがった冗長化構成のEC2にAuto Scalingを設定して高可用性を実現したい
こんにちは!さっしです!
タイトル通りのAWSの設定内容を、自分の忘備録の意味を込めてまとめてみました。
EC2のオートスケーリングの設定をしたことがない方がいましたら、ぜひ以下を参考に設定してみてください。
■完成図
■やりたいこと
・EC2のAuto Scalingを設定したい
・EC2の平均CPU使用率が70%以上になったら、EC2を1台追加したい
・EC2の平均CPU使用率が30%未満になったら、EC2を1台削除したい
・EC2の増減は最大4台、最低2台の範囲内にしたい
■事前準備
・以下の構成を基に設定をしていきます
※詳細な設定方法は以下のブログを参考にしてください
https://note.com/sasshiii/n/n8ea2ecc6cb35
■やること
1.EC2のAMIを作成する
2.起動テンプレートを作成する
3.Auto Scaling Groupを作成する
4.Cloud Watchで平均CPU使用率70%を超えた時に発動するアラームを作成する
5.Cloud Watchで平均CPU使用率30%を下回った時に発動するアラームを作成する
6.Auto Scalingのスケーリングポリシーをアラームと関連づけ、EC2を1台追加
するポリシーを作成する
7.Auto Scalingのスケーリングポリシーをアラームと関連づけ、EC2を1台削除
するポリシーを作成する
8.Auto ScalingによりEC2が追加されるか確認する
9.Auto ScalingによりEC2が削除されるか確認する
■1.EC2のAMIを作成する
サービス:EC2
・ナビゲーションペインの「インスタンス」をクリック後、右上の「アクション」→「イメージとテンプレート」→「イメージを作成」をクリックする
※EC2は起動中でもAMIの作成はできるが、停止されていることが望ましい
・以下の内容を入力し「イメージを作成」ボタンをクリックする
イメージ名:任意
■2.起動テンプレートを作成する
サービス:EC2
・ナビゲーションペインの「テンプレートの起動」をクリック後、「起動テンプレートを作成」をクリックする
・以下の内容を入力し「起動テンプレートを作成」ボタンをクリックする
起動テンプレート名:任意
テンプレートバージョンの説明:任意
EC2 Auto Scaling で使用できるテンプレートをセットアップする際に役立つガイダンスを提供:チェック
※「EC2 Auto Scaling で使用できるテンプレートをセットアップする際に役立つガイダンスを提供」とは、起動テンプレートをAuto Scalingで使用したい場合にチェックを入れる
AMI :先ほど作成したAMI
インスタンスタイプ:任意
キーペア名:任意
セキュリティグループ :EC2インスタンスにアタッチ済みのグループ
パブリック IP の自動割り当て:有効化
■3.Auto Scaling Groupを作成する
サービス:EC2
・ナビゲーションペインの「オートスケーリンググループ」をクリック後、右上の「Auto Scaling グループの作成」をクリックする
・以下の内容を入力し「次へ」ボタンをクリックする
Auto Scaling グループ名:任意
起動テンプレート:先ほど作成した起動テンプレート
バージョン:Latest(1)
・以下の内容を入力し「次へ」ボタンをクリックする
VPC:事前に作成したVPC
サブネット:事前に作成した2つのパブリックサブネット
・以下の内容を入力し「 次へ」ボタンをクリックする
既存のロードバランサーにアタッチ:チェック
ヘルスチェックのタイプ:チェック
・以下の内容を入力し「次へ」ボタンをクリックする
希望する容量:2
最小キャパシティ:2
最大キャパシティ:4
・「通知を追加」は特に設定せず「次へ 」ボタンをクリックする
・「タグを追加」は特に設定せず「次へ 」ボタンをクリックする
・確認画面が表示されるので「Auto Scaling グループを作成」ボタンをクリックする
・自動でEC2が最低2台になるようにAuto Scalingが機能していることを確認する
■4.Cloud Watchで平均CPU使用率70%を超えた時に発動するアラームを作成する
サービス:Cloud Watch
・ナビゲーションペインの「アラーム」をクリック後、右上の「アラームの作成」ボタンをクリックする
・以下の内容を入力し「メトリクスの選択」ボタンをクリックする
・タブの「すべてのメトリクス」をクリック後、「EC2」→「Auto Scaling グループ別」→「CPUUtilization」にチェックを入れた後、「メトリクスの選択」ボタンをクリックする
※CPUUtilizationチェック時のAutoScalingGroupNameは、以前に作成したグループ名のものを選択する
・以下の内容を入力し「次へ」ボタンをクリックする
... よりも:70
欠落データの処理:欠落データを見つかりませんでしたとして処理
・「アクションの設定」は特に設定せず「次へ 」ボタンをクリックする
※ここでSNS等の通知先を追加しても良い
・以下の内容を入力し「次へ」ボタンをクリックする
アラーム名:任意
・確認画面が表示されるので「アラームの作成」ボタンをクリックする
■5.Cloud Watchで平均CPU使用率30%を下回った時に発動するアラームを作成する
※「Cloud Watchで平均CPU使用率70%を超えた時に発動するアラームを作成する」で作成した内容の「メトリクスと条件の指定」までは同作業のため、詳細は割愛します
・以下の内容を入力し「次へ」ボタンをクリックする
CPUUtilization が次の時... :より低い
... よりも:30
・「アクションの設定」は特に設定せず「次へ 」ボタンをクリックする
※ここでSNS等の通知先を追加しても良い
・以下の内容を入力し「次へ」ボタンをクリックする
アラーム名:任意
・以下の内容を入力し「次へ」ボタンをクリックする
アラーム名:任意
・確認画面が表示されるので「アラームの作成」ボタンをクリックする
■6.Auto Scalingのスケーリングポリシーをアラームと関連づけ、EC2を1台追加するポリシーを作成する
サービス:EC2
・ナビゲーションペインの「オートスケーリンググループ」をクリック後、ポリシーを編集したいAuto Scaling グループ「名前」リンクをクリックする
・「自動スケーリング」タブをクリック後、「ポリシーを追加」をクリックする
・以下の内容を入力し「作成」ボタンをクリックする
ポリシータイプ:シンプルなスケーリング
スケーリングポリシー名:任意
CloudWatch アラーム:70%を超えた際に発動するアラーム
アクションを実行:追加、1、キャパシティユニット
次に待機します:30
■7.Auto Scalingのスケーリングポリシーをアラームと関連づけ、EC2を1台削除するポリシーを作成する
※「Auto Scalingのスケーリングポリシーをアラームと関連づけ、EC2を1台追加」で作成した内容の「スケーリングポリシーを作成」までは同作業のため詳細は割愛します
・以下の内容を入力し「作成」ボタンをクリックする
ポリシータイプ:シンプルなスケーリング
スケーリングポリシー名:任意
CloudWatch アラーム:30%を下回った際に発動するアラーム
アクションを実行:削除、1、キャパシティユニット
次に待機します:30
■8.Auto ScalingによりEC2が追加されるか確認する
・EC2にssh接続後、以下のコマンドを実行する
※4プロセスほど立ち上げる
yes >> /dev/null &
・しばらくするとCloudWatchのアラームが発動していることを確認する
※メトリクスは5分間隔で計測する
・EC2が最大4台まで立ち上がっていることを確認する
■9.Auto ScalingによりEC2が削除されるか確認する
・EC2にssh接続後、以下のコマンドを実行し、先ほどyesコマンドで立ち上げたプロセスを停止する
kill xxxx(停止したいプロセスID)
・しばらくするとCloudWatchのアラームが発動していることを確認する
※メトリクスは5分間隔で計測する
・EC2が希望数の2台まで戻っていることを確認する
設定は以上になります。
AWSってほんと楽しいですね!
この記事が気に入ったらサポートをしてみませんか?