こんにちは!現在IE課で研修中の日高です。
本日は、Amazon EC2 Auto Scalingの概要について、そしてマネジメントコンソールにてAmazon EC2 Auto Scalingのステップスケーリングポリシーを設定していきたいと思います。
前提
一般的にAuto Scalingと呼ばれるものは以下の3種類に分類できます。
今回はこの中でもAmazon EC2 Auto Scalingについて触れていきます。
※AWS BLACK BELT ONLINE SEMINAR抜粋
https://pages.awscloud.com/rs/112-TZM-766/images/20191002_AWS-Blakbelt_Auto_Scaling.pdf
Amazon EC2 Auto Scaling
Amazon EC2 Auto Scalingの概要
Amazon EC2 Auto Scalingとは、一言で書くと指定した条件で、EC2の数を自動調整してくれるサービスのことです。
公式ドキュメントには以下のように書いてあります。
Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。Auto Scaling グループと呼ばれる EC2 インスタンスの集合を作成します。各 Auto Scaling グループ内のインスタンスの最小数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも小さくなることはありません。各 Auto Scaling グループ内のインスタンスの最大数を指定することができ、Amazon EC2 Auto Scaling グループはこのサイズよりも大きくなることはありません。グループの作成時、またはそれ以降の任意の時点で、希望するキャパシティーを指定した場合、Amazon EC2 Auto Scaling によって、グループのインスタンス数はこの数に設定されます。スケーリングポリシーを指定する場合、Amazon EC2 Auto Scaling でアプリケーションに対する需要の増減に応じて、インスタンスを起動または終了できます。 https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html
個人的には「設定したグループの容量の範囲内の中で、設定したEC2の条件で、設定した負荷状況の条件によりスケーリングすることでEC2の数を自動調整するサービス」と解釈しています。(※あくまで個人的な見解です。)
今回黒文字にしている箇所が、それぞれAmazon EC2 Auto Scalingの主要なコンポーネンントに対応しています。
- 「グループの容量の範囲内」=Auto Scaling グループ
- 「設定したEC2の条件」=設定テンプレート(起動テンプレート、起動設定)
- 「負荷状況の条件によりスケーリング」=スケーリングポリシー
Auto Scalingグループ
Auto Scaling グループには、自動スケーリングと管理の目的で論理グループとして扱われる EC2 インスタンスの集合が含まれます。
要するに、このグループ内でEC2の数が増減するということです。
Auto Scaling グループでは、グループを作成する際にEC2インスタンスの最小数、最大数、希望する容量を指定します。
希望する容量で指定した台数から始まり、指定した最小数~最大数の範囲内で、EC2の数が自動調整されます。
※具体例
最大数:6台 最小数:2台 希望する容量:4台
最初の台数は4台で起動しますが、負荷状況(スケーリングポリシーにもよります)によって2台~6台の間で、EC2の数が増減します。
設定テンプレート
設定テンプレートでは、どんな設定のEC2を作成するかを定義します。
設定テンプレートには起動テンプレートと起動設定の2種類が存在するのですが、起動設定は現在推奨されていないため今後は起動テンプレートについて書いていきます。
起動テンプレートでは、起動するEC2インスタンスのAMIIDや、インスタンスタイプ、キーペアやセキュリティグループなどの情報を指定することができます。
スケーリングポリシー
スケーリングポリシーはどのようにEC2をスケーリングするかを決めるポリシーです。
現在スケーリングポリシーは以下のものがあります。
ハンズオン(Amazon EC2 Auto Scalingのステップスケーリングポリシー)
実際にAmazon EC2 Auto Scalingのステップスケーリングポリシーを使ったハンズオンをやってみました。
AMIの作成
起動しているEC2からAMIを作成しました。
作成したいインスタンスを選択し、「アクション」から「イメージとテンプレート」、「イメージを作成」を選択することでAMIを作成できます。
起動テンプレートの作成
ここでは、テンプレートをまずは作成します。
左ペインから「起動テンプレート」を選択していただけるとこちらの画面に遷移します。
1.起動テンプレート名を記入し、Auto Scaling のガイダンスの「EC2 Auto Scaling で使用できるテンプレートをセットアップする際に役立つガイダンスを提供」をチェックします
2.アプリケーションおよび OS イメージ (Amazon マシンイメージ) から「自分のAMI」を選択し先ほど作成したAMIを選択します
3.インスタンスタイプやキーペア、ネットワーク設定を設定します
4.それ以外はデフォルトのまま「起動テンプレートを作成」を選択します
グループの作成
ここではAuto Scalingグループを作成します
左ペインから「Auto Scalingグループ」を選択していただけるとこちらの画面に遷移します。
1.「Auto Scalingグループを作成する」を選択し、Auto Scalingグループ名を記入し、先ほど作成した起動テンプレートを選びます
2.Auto Scalingグループを起動したいVPC、サブネットを選択します
3.今回ロードバランサーの配下には作成しないのでデフォルトのまま進みます
4.グループサイズを設定して次に進みます(今回は画像のように設定しました)
5.その他は特に設定せず次へ進み「Auto Scalingグループを作成する」を選択します
ステップスケーリングポリシーの設定
ここではステップスケーリングポリシーの設定をします。
今回はCPU使用率が30%以下だったら1台減らし、CPU使用率が60%以上だったら1台増やす設定をしていきたいと思います。
先ほど作成したAuto Scalingグループを選択し、「オートスケーリング」を選択します。
まずはCPU使用率が30%以下だったら1台減らすステップスケーリングを作成していきます。
1.「動的スケーリングポリシーを作成する」を選択し、ステップスケーリングを選択しスケーリングポリシー名とアクションを設定します
2.CloudWatchアラームを作成するを選択し、メトリクスの選択>EC2>Auto Scalingグループ別>CPUUtilizationを選択します
3.条件でしきい値の設定をします。
4.通知は今回させたくないので削除し次へいき、アラーム名を記入し進み最後まですすみます
5.スケーリングポリシーの画面に戻り先ほど作成したCloudWatchアラームを選択します
これで、CPU使用率が30%以下だったら1台減らすステップスケーリングが作成できました。
同様の操作でCPU使用率が60%以上だったら1台増やすステップスケーリングを作成します。
ただ、このままだとAuto Scalingグループのメトリクスを収集できません。
なぜならAuto Scaling グループメトリクスの収集が有効化されていないからです。
なので、Auto Scaling グループメトリクスの収集を「有効」にします。
まとめ
今回は、Amazon EC2 Auto Scalingのステップスケーリングポリシーについてまとめてみました。
本記事が誰かの力になれば幸いです。
日高 僚太(執筆記事の一覧)
2024 Japan AWS Jr. Champions / 2024 Japan AWS All Certifications Engineers
EC部クラウドコンサルティング課所属。2022年IT未経験でSWXへ新卒入社。
記事に関するお問い合わせや修正依頼⇒ hidaka@serverworks.co.jp