Auto Scaling グループのプロセスを一時停止および再開する - Amazon EC2 Auto Scaling (日本語)

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

Auto Scaling グループのプロセスを一時停止および再開する

このトピックでは、Auto Scaling グループの 1 つ以上のプロセスを中断および再開する方法について説明します。また、Amazon EC2 Auto Scaling の中断/再開機能の使用を選択するときに考慮すべき問題についても説明しています。

重要

インスタンスのトラブルシューティングまたは再起動が必要な場合は、中断/再開機能の代わりにスタンバイ機能を使用します。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。インスタンスのスケールイン保護機能を使用して、自動スケールイン中に特定のインスタンスが終了しないようにします。詳細については、「インスタンスのスケールイン保護」を参照してください。

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

Amazon EC2 Auto Scaling プロセス

Amazon EC2 Auto Scaling では、主に 2 つのプロセスタイプがあります。LaunchおよびTerminate。-Launchプロセスは、新しい Amazon EC2 インスタンスを Auto Scaling グループに追加し、容量を増やします。この Terminate プロセスにより、グループから Amazon EC2 インスタンスが削除され、容量が減少します。

Amazon EC2 Auto Scaling の他のプロセスタイプは、特定のスケーリング機能に関連しています。

  • AddToLoadBalancer-インスタンスが起動されたときに、アタッチされたロードバランサーターゲットグループまたはClassic Load Balancer にインスタンスを追加します。詳細については、「Elastic Load Balancing と Amazon EC2 Auto Scaling」を参照してください。

  • AlarmNotification-グループのスケーリングポリシーに関連付けられている CloudWatch アラームから通知を受け取ります。詳細については、「Amazon EC2 Auto Scaling (英語)」を参照してください。

  • AZRebalance— グループのバランスがとれなくなった場合 (たとえば、以前は使用できなかったアベイラビリティーゾーンが正常な状態に戻った場合)、グループ内の EC2 インスタンスの数を均等に分散させてバランスをとります。詳細については、「アクティビティの再分散」を参照してください。

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

  • InstanceRefresh-インスタンスの更新機能を使用して、インスタンスを終了および置換します。詳細については、「インスタンスの更新に基づく Auto Scaling インスタンスの置き換え」を参照してください。

  • ReplaceUnhealthy-異常とマークされたインスタンスを終了してから、代わりの新しいインスタンスを作成します。詳細については、「Auto Scaling インスタンスのHealth チェック」を参照してください。

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

中断の選択

各プロセスタイプは個別に中断および再開できます。このセクションでは、Amazon EC2 Auto Scaling に組み込まれているプロセスのいずれかを停止することを決定する前に考慮すべきガイダンスと動作について説明します。個々のプロセスを中断すると、他のプロセスが妨げられる可能性があることに注意してください。プロセスの中断理由によっては、複数のプロセスをまとめて中断することが必要になる場合があります。

以下では、個々のプロセスタイプが中断されたときの動作について説明しています。

警告

Launch または Terminate プロセスタイプを中断した場合、他のプロセスタイプが正しく機能しなくなることがあります。

Terminate

  • プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scaling グループはスケールインされません。さらに、以下のプロセスが中断されます。

    • AZRebalance はまだアクティブですが、正しく機能していません。古いインスタンスを終了せずに新しいインスタンスを起動することがあります。これにより、Auto Scaling グループが最大サイズより最大 10% まで大きくなることあります。再分散アクティビティ中にこの状態が一時的に許可されるためです。Auto Scaling グループは再開するまで、最大サイズを超えることがあります。Terminateプロセス。メトリックTerminateResume,AZRebalanceグループのアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なるアベイラビリティーゾーンが指定されている場合、は Auto Scaling グループのバランスを段階的に再調整します。

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

    • InstanceRefreshは、再開するまで一時停止されますTerminate

Launch

  • プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scaling グループはスケールアウトされません。AZRebalanceは、グループのリバランシングを停止します。ReplaceUnhealthyは、正常なインスタンスの終了を継続しますが、置換は起動しません。Launch を再開すると、バランスの再調整アクティビティとヘルスチェックによる置き換えは以下の方法で処理されます。

    • AZRebalanceグループのアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なるアベイラビリティーゾーンが指定されている場合、は Auto Scaling グループのバランスを段階的に再調整します。

    • ReplaceUnhealthy は、Launch が中断されていた間に終了したインスタンスをすぐに置き換えます。

  • InstanceRefreshは、再開するまで一時停止されますLaunch

AddToLoadBalancer

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

AlarmNotification

  • CloudWatch アラームしきい値に違反している場合、Amazon EC2 Auto Scaling はスケーリングポリシーを実行しません。停止中AlarmNotificationでは、スケーリングポリシーまたは関連する CloudWatch アラームを削除することなく、グループのスケーリングポリシーによってトリガーされたスケーリングイベントを一時的に停止できます。再開するとAlarmNotificationでは、Amazon EC2 Auto Scaling がアラームしきい値のあるポリシーを処理します。違反しているポリシーを処理します。

AZRebalance

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

HealthCheck

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

ReplaceUnhealthy

  • Amazon EC2 Auto Scaling は、異常とマークされたインスタンスを置き換えなくなります。EC2 または Elastic Load Balancing のヘルスチェックに失敗したインスタンスは、異常としてマークされます。再開するとすぐにReplaceUnhealthlyプロセスの中断中に異常とマークされたインスタンスが Amazon EC2 Auto Scaling によって置き換えられます。ReplaceUnhealthy プロセスは両方の基本プロセスタイプを TerminateLaunch の順に呼び出します。

ScheduledActions

  • Amazon EC2 Auto Scaling は、中断期間中に実行される予定だったスケーリングアクションを実行しません。再開するとScheduledActionsでは、Amazon EC2 Auto Scaling が実行時間をまだ過ぎていないスケジュールされたアクションのみを処理します。

起動と終了の両方の中断

Launch および Terminate プロセスタイプを同時に中断すると、以下のようになります。

  • Auto Scaling グループは、スケーリングアクティビティを開始することも、その希望する容量を維持することもできません。

  • グループがアベイラビリティーゾーン間でバランスがとれなくなった場合、Amazon EC2 Auto Scaling は、Auto Scaling グループに指定されたアベイラビリティーゾーン間でインスタンスを均等に再分散させようとしません。

  • Auto Scaling グループは、異常とマークされたインスタンスを置き換えることはできません。

  • インスタンスの更新機能は、どのインスタンスを置き換えることはできません。

再開すると、LaunchおよびTerminateプロセスタイプでは、Amazon EC2 Auto Scaling はそれらのプロセスの中断中に異常とマークされたインスタンスを置き換え、グループのバランスを再調整しようとします。スケーリングアクティビティも再開されます。

追加の考慮事項

LaunchTerminate が中断されている間に影響される可能性のある外部オペレーションがいくつかあります。

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

  • スポットインスタンスの中断—場合Terminateが中断され、Auto Scaling グループにある場合、スポット容量が使用できなくなっていても、それらのインスタンスはまだ終了できます。whileLaunchが中断されている場合、再利用可能になった代わりのインスタンスを別のスポットインスタンスプールから、または同じスポットインスタンスプールから起動することはできません。

  • インスタンスをアタッチおよびデタッチする— ときLaunchおよびTerminateが停止されているとき、Auto Scaling グループにアタッチされているインスタンスをデタッチすることはできますが、新しいインスタンスをそのグループにアタッチすることはできません。インスタンスをアタッチするには、最初に Launch を再開する必要があります。

    注記

    インスタンスをデタッチした直後にインスタンスを手動で終了する場合は、代わりに terminate-instance-in-auto-scaling-group CLI コマンドを呼び出すことができます。これにより、指定したインスタンスが終了し、オプションでグループの希望する容量が調整されます。さらに、ライフサイクルフックで Auto Scaling グループが使用されている場合、インスタンスの終了に指定したカスタムアクションは、インスタンスが完全に終了する前に実行されます。

  • スタンバイインスタンス—whileLaunchの中断されたインスタンスを返すことはできません。Standby状態からサービスに移行します。インスタンスを稼働状態に戻すには、最初に Launch を再開する必要があります。

プロセスの中断と再開 (コンソール)

個別のプロセスまたはすべてのプロセスを中断および再開することができます。

プロセスを中断および再開するには

  1. Amazon EC2 Auto Scaling コンソール (以下) を開きます。https://console.aws.amazon.com/ec2autoscaling/

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

    [Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。

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

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

    中断したプロセスを再開するには、[Suspended processes (中断したプロセス)] からそのプロセスを削除します。

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

プロセスを中断および再開するには (AWS CLI)

個別のプロセスまたはすべてのプロセスを中断および再開することができます。

プロセスを停止するには

の使用中断されるプロセスコマンドと--scaling-processesオプションを次のように指定します。

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

すべてのプロセスを停止するには

の使用中断されるプロセスコマンドを使用します (省略--scaling-processesオプション)。

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

停止されたプロセスを再開するには

の使用resume-processコマンドを次のように使用します。

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

停止されたすべてのプロセスを再開するには

の使用resume-processコマンドを使用します (省略--scaling-processesオプション)。

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