インスタンスのスケールイン保護を使用する - Amazon EC2 Auto Scaling

インスタンスのスケールイン保護を使用する

スケールイン時に Auto Scaling グループが特定のインスタンスを終了できるかどうかを制御するには、インスタンスのスケールイン保護を使用します。インスタンスのスケールイン保護の設定は、Auto Scaling グループまたは個々の Auto Scaling インスタンスで有効にできます。Amazon EC2 Auto Scaling が新しいインスタンスを起動する、あるいはウォームプールから Auto Scaling グループにインスタンスを移動すると、そのインスタンスには、Auto Scaling グループでのインスタンスのスケールイン保護に関する設定が受け継がれます。Auto Scaling グループまたは Auto Scaling インスタンスのスケールイン保護の設定はいつでも変更できます。

インスタンスのスケールイン保護は、インスタンスの状態が InService の場合に開始されます。スケールインされない設定のインスタンスをデタッチすると、インスタンスのスケールイン保護の設定は失われます。インスタンスをグループに再度アタッチすると、グループの現在のインスタンスのスケールイン保護を受け継ぎます。

インスタンスのスケールイン保護は、次の状況から Auto Scaling インスタンスを保護することはできません。

  • Amazon EC2 コンソール、terminate-instances コンソール、 コマンド、TerminateInstances アクションのいずれかを使用して、手動で終了します。Auto Scaling インスタンスを手動の終了から保護するには、Amazon EC2 の終了保護を有効にします。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「終了保護の有効化」を参照してください。

  • インスタンスがヘルスチェックに失敗した場合のヘルスチェックの置換。詳細については、「Auto Scaling インスタンスのヘルスチェック」を参照してください。

  • スポットインスタンスの中断。キャパシティーが使用できなくなった場合、またはスポット料金が上限価格を超えた場合、スポットインスタンスは終了されます。

注記

スケールインイベントが発生した際に、Auto Scaling グループのすべてのインスタンスがスケールインから保護されていると、必要とされるキャパシティーが減少します。ただし、Auto Scaling グループはインスタンスのスケールイン保護の設定が無効になるまで、必要な数のインスタンスを終了することはできません。

AWS Management Console では、スケールスケールイベント発生時に Auto Scaling グループ内のすべてのインスタンスがスケールインから保護されている場合、Auto Scaling グループの [Activity history] (アクティビティ履歴) に次のメッセージが表示されます: Could not scale to desired capacity because all remaining instances are protected from scale-in.

グループのインスタンスのスケールイン保護の有効化

Auto Scaling グループを作成する際にインスタンスのスケールイン保護を有効にすることができます。デフォルトでは、インスタンスのスケールイン保護は無効になっています。

インスタンスのスケールイン保護を有効にする (コンソール)

Auto Scaling グループを作成するときに、[Configure group size and scaling policies (グループサイズとスケーリングポリシーの設定)] ページの [Instance scale-in protection (インスタンスのスケールイン保護)] で、[Enable instance scale-in protection (インスタンスのスケールイン保護を有効にする)] オプションを選択します。

インスタンスのスケールイン保護を有効にする (AWS CLI)

次の create-auto-scaling-group コマンドを使用してインスタンスのスケールイン保護を有効にします。

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...

グループのインスタンスのスケールイン保護の設定を変更する

Auto Scaling グループのインスタンスのスケールイン保護の設定は、有効または無効にすることができます。インスタンスのスケールイン保護設定を有効にすると、有効化後に起動したすべての新しいインスタンスでは、インスタンスのスケールイン保護が有効になります。以前に起動したインスタンスは、インスタンスごとに個別にインスタンスのスケールイン保護設定を有効にする場合、スケールインから保護するだけです。

グループのインスタンスのスケールイン保護の設定を変更する (コンソール)

  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループのチェックボックスを選択します。

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  3. [詳細] タブで、[高度な設定]、[編集] の順に選択します。

  4. [インスタンスのスケールイン保護] で、[インスタンスのスケールイン保護を有効にする] を選択します。

  5. [Update] (更新) を選択します。

グループのインスタンスのスケールイン保護設定を変更する (AWS CLI)

次の update-auto-scaling-group コマンドを使用して、指定した Auto Scaling グループにインスタンスのスケールインの保護を有効にします。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in

次のコマンドを使用して、指定したグループのインスタンスのスケールイン保護を無効にします。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --no-new-instances-protected-from-scale-in

インスタンスに対してインスタンスのスケールイン保護の設定を変更する

デフォルトで、インスタンスは所属する Auto Scaling グループからインスタンスのスケールイン保護の設定を取得します。ただし、インスタンスにおけるインスタンスのスケールイン保護はいつでも有効または無効にできます。

インスタンスに対するインスタンスのスケールイン保護設定を変更する (コンソール)

  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  3. [Instance management (インスタンス管理)] タブの [Instances (インスタンス)] で、インスタンスを選択します。

  4. インスタンスのスケールイン保護を有効にするには、[Actions (アクション)]、[Set scale-in protection (スケールイン保護を設定)] の順に選択します。プロンプトが表示されると、[Set scale-in protection (スケールイン保護を設定)] を選択します。

  5. インスタンスのスケールイン保護を無効にするには、[Actions (アクション)]、[Remove scale-in protection (スケールイン保護の削除)] の順に選択します。プロンプトが表示されたら、[Remove scale-in protection (スケールイン保護の削除)] を選択します。

インスタンスに対するインスタンスのスケールイン保護設定を変更する (AWS CLI)

次の set-instance-protection コマンドを使用して、指定したインスタンスにおけるインスタンスのスケールインの保護を有効にします。

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --protected-from-scale-in

次のコマンドを使用して、指定したインスタンスにおけるインスタンスのスケールイン保護を無効にします。

aws autoscaling set-instance-protection --instance-ids i-5f2e8a0d --auto-scaling-group-name my-asg --no-protected-from-scale-in