インスタンススケールイン保護を使用してインスタンスの終了を制御する - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インスタンススケールイン保護を使用してインスタンスの終了を制御する

インスタンスのスケールイン保護により、Amazon EC2 Auto Scaling がどのインスタンスを終了できるかを制御できます。この機能の一般的なユースケースは、コンテナベースのワークロードのスケーリングです。詳細については、「インスタンスの終了を適切に処理するようにアプリケーションを設計する」を参照してください。

デフォルトでは、Auto Scaling グループを作成すると、インスタンスのスケールイン保護は無効になります。つまり、Amazon EC2 Auto Scaling はグループ内のすべてのインスタンスを終了できます。

Auto Scaling グループでスケールイン保護設定を有効化しインスタンスを起動すると、その直後からインスタンスの保護が開始されます。インスタンスのスケールイン保護は、インスタンスの状態が InService の場合に開始されます。その後、終了できるインスタンスを制御するには、Auto Scaling グループ内で個別インスタンスのスケールイン保護設定を無効にします。そうすることで、引き続き特定のインスタンスを望ましくない終了から保護できます。

考慮事項

インスタンスのスケールイン保護を使用する際の考慮事項を次に示します。

  • Auto Scaling グループ内のすべてのインスタンスがスケールインから保護されており、スケールインイベントが発生した場合、希望する容量は減少します。ただし、Auto Scaling グループは、インスタンスのスケールイン保護設定が無効になるまで、必要な数のインスタンスを終了できません。では AWS Management Console、Auto Scaling グループ内のすべてのインスタンスが、スケールインイベントが発生したときにスケールインから保護されている場合、Auto Scaling グループのアクティビティ履歴に次のメッセージが含まれます。 Could not scale to desired capacity because all remaining instances are protected from scale in.

  • スケールインから保護されているインスタンスをデタッチすると、そのインスタンスのスケールイン保護設定は失われます。インスタンスをグループに再度アタッチすると、グループの現在のインスタンススケールイン保護設定が継承されます。Amazon EC2 Auto Scaling が新しいインスタンスを起動するか、インスタンスをウォームプールから Auto Scaling グループに移動すると、インスタンスは Auto Scaling グループのインスタンススケールイン保護設定を継承します。

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

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

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

    • キャパシティブロックの予約は終了します。Amazon は、キャパシティブロックインスタンスがスケールインから保護されていても、それらをEC2再利用します。

    • terminate-instance-in-auto-scaling-group コマンドによる手動終了。詳細については、「Auto Scaling グループのインスタンスを終了する (AWS CLI)」を参照してください。

    • Amazon EC2コンソール、CLIコマンド、およびAPIオペレーションによる手動終了。Auto Scaling インスタンスを手動終了から保護するには、Amazon EC2終了保護を有効にします。(これにより、Amazon EC2 Auto Scaling が terminate-instance-in-auto-scaling-group コマンドを使用してインスタンスを終了したり、手動で終了したりするのを防ぐことはできません。) 起動テンプレートで Amazon EC2終了保護を有効にする方法については、「」を参照してください詳細設定を使用して起動テンプレートを作成する

Auto Scaling グループのスケールイン保護を変更する

Auto Scaling グループのインスタンスのスケールイン保護の設定は、有効または無効にすることができます。有効にすると、グループによって起動されるすべての新しいインスタンスで、インスタンスのスケールイン保護が有効になります。

Auto Scaling グループのこの設定を有効または無効にしても、既存のインスタンスには影響しません。

Console
新しい Auto Scaling グループのスケールイン保護を有効にするには

Auto Scaling グループを作成するときに、「グループサイズとスケーリングポリシーの設定」ページの「インスタンスのスケールイン保護」で、「インスタンスのスケールイン保護を有効にする」チェックボックスを選択します。

既存のグループのスケールイン保護を有効または無効にするには
  1. で Amazon EC2コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

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

    ページの下部にスプリットペインが開きます。

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

  4. インスタンスのスケールイン保護 では、インスタンススケール保護を有効にするチェックボックスを選択またはオフにして、必要に応じてこのオプションを有効または無効にします。

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

AWS CLI
新しい Auto Scaling グループのスケールイン保護を有効にするには

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

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --new-instances-protected-from-scale-in ...
既存のグループのスケールイン保護を有効にするには

次の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 グループからインスタンスのスケールイン保護の設定を取得します。ただし、起動後に個々のインスタンスのインスタンススケールイン保護を有効または無効にすることはできます。

Console
インスタンスのスケールイン保護を有効または無効にするには
  1. で Amazon EC2コンソールを開きhttps://console.aws.amazon.com/ec2/、ナビゲーションペインから Auto Scaling Groups を選択します。

  2. 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
注記

インスタンスのスケールイン保護は、Amazon EC2コンソールや を使用してインスタンスを手動で終了するなど、人為的ミスが発生した場合にインスタンスが終了しないことを保証しません AWS CLI。インスタンスを誤って終了しないようにするには、Amazon EC2 終了保護を使用できます。ただし、終了保護とインスタンスのスケールイン保護が有効になっている場合でも、ヘルスチェックでインスタンスが異常であると判断された場合、またはグループ自体が誤って削除された場合、インスタンスストレージに保存されたデータが失われる可能性があります。あらゆる環境と同様に、ベスト・プラクティスは、データのバックアップを頻繁に行うこと、またはビジネス継続性要件に適している場合にいつでもバックアップすることです。