こんにちは、技術1課の小倉です。
2020/6/16にアップデートがあり、Amazon EC2 Auto ScalingがAuto Scalingグループ内のインスタンス更新をサポートするようになりました!
Amazon EC2 Auto Scaling now supports Instance Refresh within Auto Scaling Groups
今までは起動設定のAMIを更新したときはEC2の停止など手動で再作成をしていましたが、本アップデートによりインスタンスを一度にまたは徐々に置き換えることができるようになりました。
Amazon EC2 Auto Scalingとは
負荷状況に応じて、事前に定義したルールに基づき、EC2の台数を自動で増減する機能です。Auto Scalingを使うことで負荷が高い時は台数を増やしリソース不足を回避してビジネスなどの機会損失を抑え、負荷が低い時は台数を減らしコストを削減することができます。
AWS公式サイト : Amazon EC2 Auto Scaling
設定方法
Auto Scalingの設定
一からAuto Scalingを設定するところからはじめますが、アップデートの確認がメインのため、最小設定で準備を進めます。
ナビゲーションペインの[起動設定]をクリックし、[起動設定の作成]をクリックします。
起動設定の作成でAMIの選択画面が表示されるので、Auto Scalingに使用するAMIを指定します(今回はAmazon Linux 2を選択しています)。
インスタンスタイプの選択画面が表示されるので、インスタンスタイプを選択し、右下の[次の手順: 詳細設定]をクリックします(今回はt3.nanoを選択しています)。
詳細設定画面が表示されるので、起動設定の名前を入力して、右下の[次の手順: ストレージの追加]をクリックします。
ストレージの追加画面が表示されるので、そのまま右下の[次の手順: セキュリティグループの設定]をクリックします。
セキュリティグループの設定画面で、[新しいセキュリティグループを作成する]を選択し、そのまま右下の[確認]をクリックします。
確認画面で設定内容を確認し、右下の[起動設定の作成]をクリックします。
キーペアの選択画面が表示されるので、キーペアを指定して、[起動設定の作成]をクリックします(今回は既存のキーペアを指定しています)。
起動設定の作成ステータス画面が表示されるので、[この起動設定を使用してAuto Scalingグループを作成する]をクリックします。
Auto Scalingグループの詳細設定画面が表示されるので、グループ名、グループサイズ、ネットワーク、サブネットを入力して、右下の[次の手順: スケーリングポリシーの設定]をクリックします。
スケーリングポリシーの設定画面で、[このグループを初期のサイズに維持する]を選択して、右下の[確認]をクリックします。
確認画面が表示されたら、内容を確認して右下の[Auto Scalingグループの作成]をクリックします。
Auto Scalingグループの作成ステータスの画面が表示されたら、[閉じる]をクリックします。
これでAuto Scalingグループが作成されました。
インスタンスの更新
インスタンスの更新をするためには、まずは先ほど実施した起動設定の作成で、別のAMIを指定した起動設定を作成します。
ナビゲーションペインの起動設定をクリックし、[操作] - [起動設定のコピー]をクリックします。
起動設定の作成に進むので、手順は先ほどと一緒なのですが、1点違うところはAMIの選択画面で先ほどとは別のAMIを指定して作成します。
起動設定作成後の画面です。現在Auto Scalingグループで使用しているのは下の起動設定です。これを上の起動設定に変更します。
ナビゲーションペインのAuto Scalingグループをクリックします。
今回のアップデートを使うためには新しいデザインのコンソールに変更しないといけないので、画面上部の[Go to the new console]をクリックします。
新しいデザインのコンソールです。
Auto Scalingの名前をクリックします。
起動設定を変更したいので、[詳細]タブを選択し、起動設定の[編集]をクリックします。
編集画面で、起動設定をあとで作成した設定を選択し、[更新]をクリックします。
いま起動しているEC2インスタンスを変更した起動設定のAMIで起動させるために[インスタンス更新]タブを選択し、[インスタンス更新の開始]をクリックします。
インスタンスの更新の開始画面で、最小正常率を選択し、開始をクリックします。
最小正常率はどのくらいの割合でインスタンスの更新をするかを決めることができます。0%にすると一気にすべてのEC2インスタンスの更新を開始します。今回は2台起動しているので、50%にして1台ずつ更新させます。
インスタンスの更新がはじまりますので、しばらく待ちます。
インスタンスの更新が終わるとステータスがSuccessfulに変わります。
[アクティビティ]タブを選択するとAuto Scalingの履歴を確認することができます。
上の4つが今回のインスタンス更新で行われた履歴ですが、時刻を確認すると1台ずつ行われていることが確認できます。
また、EC2インスタンスを見ると、AMIが変更した起動設定で作成されていることを確認することができます。
まとめ
Amazon EC2 Auto ScalingがAuto Scalingグループ内のインスタンス更新をサポートするようになりました。本アップデートにより今まで手動で手間のかかる作業が簡単にできるようになりました。Auto Scalingをお使いの方はぜひ試してみてはいかがでしょうか。
小倉 大(記事一覧)
アプリケーションサービス部ラーニングエクスペリエンス課 札幌在住
AWSトレーニングの講師をしています。
最近は5歳の息子と遊ぶのが楽しいです!
Twitter: @MasaruOgura