Amazon EC2 Auto Scaling プロセスの一時停止と再開 - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling プロセスの一時停止と再開

このトピックでは、Auto Scaling グループの 1 つ以上のプロセスを中断および再開して、特定のオペレーションを一時的に無効にする方法について説明します。

プロセスの中断は、スケーリングポリシーやスケジュールされたアクションを妨げることなく、問題を調査またはトラブルシューティングする必要がある場合に役立ちます。また、Auto Scaling グループに変更を加えるときに、Amazon EC2 Auto Scaling がインスタンスを異常としてマークして置き換えるのを防ぐのにも役立ちます。

注記

Auto Scaling グループのプロセスは、お客様が中断するだけでなく、インスタンスの起動に繰り返し失敗するという理由で Amazon EC2 Auto Scaling によって中断されることもあります。これは、管理上の中断と呼ばれます。管理上の中断は一般に、24 時間以上インスタンスの起動を試みているが、インスタンスの起動に成功しない Auto Scaling グループに適用されます。管理上の理由で Amazon EC2 Auto Scaling によって中断されたプロセスは、お客様が再開できます。

プロセスのタイプ

中断/再開機能は、以下のプロセスをサポートします。

  • Launch – グループがスケールアウトしたとき、または Amazon EC2 Auto Scaling がウォームプールにインスタンスを追加するときなど、その他の理由でインスタンスを起動することを選択した場合に、インスタンスを Auto Scaling グループに追加します。

  • Terminate – Auto Scaling グループがスケールインしたとき、またはインスタンスが最大有効期間を超えたために終了されたときやヘルスチェックに失敗したときなど、その他の理由で Amazon EC2 Auto Scaling がインスタンスを終了するときに、Auto Scalingグループからインスタンスを削除します。

  • AddToLoadBalancer – インスタンスが起動されたときに、アタッチされたロードバランサーターゲットグループまたは Classic Load Balancer にインスタンスを追加します。詳細については、「Elastic Load Balancing を使用して Auto Scaling グループ内のインスタンス全体にトラフィックを分散させる」を参照してください。

  • AlarmNotification – 動的スケーリングポリシーに関連付けられているアラームからの CloudWatch通知を受け入れます。詳細については、「Amazon EC2 Auto Scaling の動的スケーリング」を参照してください。

  • AZRebalance - 以前に使用できなかったアベイラビリティーゾーンが正常な状態に戻ったときなど、グループが不均衡になったときに、指定されたすべてのアベイラビリティーゾーンにわたってグループ内の EC2 インスタンスの数を均等に分散します。詳細については、「アクティビティの再分散」を参照してください。

  • HealthCheck – インスタンスの正常性をチェックし、Amazon EC2 または Elastic Load Balancing がインスタンスに異常があることを Amazon EC2 Auto Scaling に通知した場合、インスタンスを異常としてマークします。このプロセスは、手動で設定したインスタンスのヘルス ステータスをオーバーライドできます。詳細については、「Auto Scaling グループ内のインスタンスのヘルスチェック」を参照してください。

  • InstanceRefresh – インスタンスの更新機能を使用してインスタンスを終了し、置き換えます。詳細については、「インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する」を参照してください。

  • ReplaceUnhealthy – 異常とマークされたインスタンスを終了し、新しいインスタンスを作成して置き換えます。詳細については、「Auto Scaling グループ内のインスタンスのヘルスチェック」を参照してください。

  • ScheduledActions – スケーリングプランを作成し、予測スケーリングをオンにするときに作成する、または作成されるスケジュールされた AWS Auto Scaling スケーリングアクションを実行します。詳細については、「Amazon EC2 Auto Scaling のスケジュールされたスケーリング」を参照してください。

考慮事項

プロセスを中断する前に、以下を考慮してください。

  • を一時停止AlarmNotificationすると、スケーリングポリシーまたは関連する CloudWatch アラームを削除せずに、グループのターゲット追跡、ステップ、および簡易スケーリングポリシーを一時的に停止できます。その代わりに個々のスケーリングポリシーを一時的に停止するには、「Auto Scaling グループのスケーリングポリシーを無効化する」を参照してください。

  • Amazon EC2 Auto Scaling がヘルスチェックに基づいてインスタンスを終了せずにインスタンスを再起動するには、 HealthCheckおよび ReplaceUnhealthyプロセスを中断することを選択できます。ただし、Amazon EC2 Auto Scaling が残りのインスタンスでヘルスチェックを引き続き実行する必要がある場合は、代わりにスタンバイ機能を使用します。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。

  • Launch プロセスと Terminate プロセス、または AZRebalance を中断してから、インスタンスのデタッチ、または指定されたアベイラビリティーゾーンの変更などで Auto Scaling グループを変更すると、アベイラビリティーゾーン間でのグループのバランスが悪くなる可能性があります。その場合は、中断されたプロセスの再開後、Amazon EC2 Auto Scaling が徐々に、インスタンスをアベイラビリティーゾーン間で均等に再分散します。

  • Terminate プロセスを中断しても、強制削除オプションを指定して delete-auto-scaling-group コマンドを使用することで、インスタンスを強制終了できます。

  • または AWS CLI SDKs を使用して Auto Scaling グループを記述する呼び出しにプロセスが存在する場合、RemoveFromLoadBalancerLowPriorityプロセスは無視できます。このプロセスは非推奨で後方互換性のためにのみ保持されています。

プロセスを中断する

Auto Scaling グループのプロセスを中断するには、次のいずれかの方法を使用します。

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

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

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

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

  4. [Suspended processes (中断したプロセス)] で、停止するプロセスを選択します。

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

AWS CLI

以下の suspend-processes コマンドを使用して、個々のプロセスを中断します。

aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck ReplaceUnhealthy

すべてのプロセスを中断するには、以下のように --scaling-processes オプションを削除します。

aws autoscaling suspend-processes --auto-scaling-group-name my-asg

プロセスを再開する

Auto Scaling グループの中断されたプロセスを再開するには、次のいずれかの方法を使用します。

Console
停止されたプロセスを再開するには
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

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

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

  4. [Suspended processes] (中断されたプロセス) で、中断されたプロセスを削除します。

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

AWS CLI

中断されたプロセスを再開するには、次の resume-processes コマンドを使用します。

aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck

中断されたすべてのプロセスを再開するには、以下のように --scaling-processes オプションを削除します。

aws autoscaling resume-processes --auto-scaling-group-name my-asg

中断されたプロセスが他のプロセスに与える影響

以下のセクションでは、異なるプロセスが個別に中断された場合の動作について説明します。

Launch が中断されている

  • AlarmNotification は引き続きアクティブですが、Auto Scaling グループは、しきい値を超過した状態のアラームに対してスケールアウトアクティビティを開始できません。

  • ScheduledActions はアクティブですが、Auto Scaling グループは、実行されるスケジュールされたアクションに対してスケールアウトアクティビティを開始できません。

  • AZRebalance は、グループの再配分を停止します。

  • ReplaceUnhealthy は引き続き異常なインスタンスを終了しますが、置き換えは開始しません。Launch プロセスを再開すると、Amazon EC2 Auto Scaling は、Launch 停止中に終了されたインスタンスを直ちに置き換えます。

  • InstanceRefresh はインスタンスを置き換えません。

Terminate が中断されている

  • AlarmNotification は引き続きアクティブですが、Auto Scaling グループは、しきい値を超過した状態のアラームに対してスケールインアクティビティを開始できません。

  • ScheduledActions はアクティブですが、Auto Scaling グループは、実行されるスケジュールされたアクションに対してスケールインアクティビティを開始できません。

  • AZRebalance はまだアクティブですが、正しく機能していません。古いインスタンスを終了せずに新しいインスタンスを起動することがあります。これにより、Auto Scaling グループがその最大サイズより 10% まで大きくなることあります。バランスの再調整アクティビティ中にこの状態が一時的に許可されるためです。Terminate プロセスを再開するまで、Auto Scaling グループは最大サイズを超えることがあります。

  • ReplaceUnhealthy は非アクティブですが、HealthCheck はアクティブです。Terminate が再開されると、ReplaceUnhealthy プロセスはすぐに実行を開始します。Terminate が中断されている間に異常とマークされたインスタンスがある場合、それらのインスタンスはすぐに置き換えられます。

  • InstanceRefresh はインスタンスを置き換えません。

AddToLoadBalancer が中断されている

  • Amazon EC2 Auto Scaling はインスタンスを起動しますが、ロードバランサーターゲットグループまたは Classic Load Balancer に追加しません。AddToLoadBalancer プロセスを再開すると、インスタンスが起動されるときのロードバランサーへの追加が再開されます。ただし、このプロセスが中断されている間に起動されたインスタンスは追加されません。これらのインスタンスを手動で登録する必要があります。

AlarmNotification が中断されている

  • Amazon EC2 Auto Scaling は、 CloudWatch アラームのしきい値に違反したときにスケーリングポリシーを呼び出しません。AlarmNotification を再開すると、Amazon EC2 Auto Scaling はアラームしきい値に現在違反しているポリシーを処理します。

AZRebalance が中断されている

  • Amazon EC2 Auto Scaling は、特定イベントの発生後にインスタンスの再分散を試みません。ただし、スケールアウトまたはスケールインのイベントが発生した場合でも、スケーリングプロセスはアベイラビリティーゾーン間のバランスを調整します。例えば、スケールアウト中に、インスタンスが最も少ないアベイラビリティーゾーンでインスタンスを起動します。AZRebalance が中断されている間にグループのバランスがとれなくなった場合、そのプロセスを再開しても、Amazon EC2 Auto Scaling はグループのバランスを再調整しようとしません。最初に Launch を呼び出してから Terminate を呼び出します。

HealthCheck が中断されている

  • Amazon EC2 Auto Scaling は、EC2 および Elastic Load Balancing のヘルスチェックの結果として、インスタンスに異常とマークしなくなります。カスタムヘルスチェックは引き続き正常に機能します。HealthCheck を中断した後、必要に応じて、グループ内のインスタンスのヘルス状態を手動で設定し、ReplaceUnhealthy がそれらのインスタンスを置き換えるようにできます。

InstanceRefresh が中断されている

  • Amazon EC2 Auto Scaling は、インスタンス更新の結果としてのインスタンスの置き換えを停止します。進行中のインスタンス更新がある場合、操作はキャンセルされず、一時停止されます。

ReplaceUnhealthy が中断されている

  • Amazon EC2 Auto Scaling は、異常とマークされたインスタンスを置き換えなくなります。EC2 または Elastic Load Balancing のヘルスチェックに失敗したインスタンスも異常とマークされます。ReplaceUnhealthy プロセスを再開するとすぐに、Amazon EC2 Auto Scaling はこのプロセスが中断されている間に異常とマークされたインスタンスを置き換えます。ReplaceUnhealthy プロセスは最初に Terminate を呼び出し、次に Launch を呼び出します。

ScheduledActions が中断されている

  • Amazon EC2 Auto Scaling は、中断期間中に実行されるようにスケジュールされたアクションを実行しません。ScheduledActions を再開すると、Amazon EC2 Auto Scaling は、スケジュールされたアクションのうち、実行時間が過ぎていないもののみを考慮します。

追加の考慮事項

さらに、Launch または Terminate が中断される場合は、以下の機能が正しく機能しない可能性があります。

  • インスタンスの最大有効期間Launchまたは Terminateが中断されている場合、インスタンスの最大有効期間機能はインスタンスを置き換えることができません。

  • スポットインスタンスの中断Terminateが中断され、Auto Scaling グループにスポットインスタンスがある場合、スポットキャパシティーが使用できなくなっても、スポットインスタンスを終了できます。Launch が中断されている間、Amazon EC2 Auto Scaling は、別のスポットインスタンスプール、または同じスポットインスタンスプール (再度利用可能になったとき) から代替インスタンスを起動できません。

  • 容量の再調整Terminateが中断されており、スポットインスタンスの中断を処理するために容量の再調整を使用している場合でも、Amazon EC2 スポットサービスは、スポット容量が使用できなくなってもインスタンスを終了できます。Launch が中断される場合、Amazon EC2 Auto Scaling は、別のスポットインスタンスプール、または同じスポットインスタンスプール (再度利用可能になったとき) から代替インスタンスを起動できません。

  • インスタンスのアタッチとデタッチ — LaunchTerminateが中断されている場合、Auto Scaling グループにアタッチされているインスタンスをデタッチすることはできますが、 Launch が中断されている間は、新しいインスタンスをグループにアタッチすることはできません。

  • スタンバイインスタンス - Launchおよび Terminateが停止されている場合、インスタンスを Standby状態にすることはできますが、 Launch が停止されている間は、 Standby状態のインスタンスをサービスに戻すことはできません。