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

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

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

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

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

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

考慮事項

インスタンスのスケールイン保護を使用する際の考慮事項は次のとおりです。

  • スケールインイベントが発生した際に、Auto Scaling グループのすべてのインスタンスがスケールインから保護されていると、必要とされるキャパシティーが減少します。ただし、Auto Scaling グループはインスタンスのスケールイン保護の設定が無効になるまで、必要な数のインスタンスを終了することはできません。スケールインイベントの発生時に Auto Scaling グループのすべてのインスタンスがスケールインから保護されている場合 AWS Management Console、の 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 グループのインスタンスのHealth チェック」を参照してください。

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

    • キャパシティブロック予約は終了します。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. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

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

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

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

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

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

  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 終了保護を使用します。ただし、終了保護とインスタンスのスケールイン保護が有効になっている場合でも、ヘルスチェックでインスタンスが異常であると判断された場合、またはグループ自体が誤って削除された場合、インスタンスストレージに保存されたデータが失われる可能性があります。あらゆる環境と同様に、ベスト・プラクティスは、データのバックアップを頻繁に行うこと、またはビジネス継続性要件に適している場合にいつでもバックアップすることです。