翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
— グループがスケールインした場合、または 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 グループのインスタンスのHealth チェック」を参照してください。 -
InstanceRefresh
— インスタンス更新機能を使用してインスタンスを終了し、交換します。詳細については、「インスタンス更新を使用して Auto Scaling グループのインスタンスを更新する」を参照してください。 -
ReplaceUnhealthy
— 異常とマークされたインスタンスを終了し、その代わりに新しいインスタンスを作成します。詳細については、「Auto Scaling グループのインスタンスのHealth チェック」を参照してください。 -
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
プロセスを中断した場合でも、force delete delete-auto-scaling-groupオプションを指定したコマンドを使用すれば、インスタンスを強制終了できます。 -
Terminate
プロセスの中断は、現在その状態にあるインスタンスにのみ適用されます。InService
他の状態のインスタンス (Pending
スタンバイ状態から正常に再開できないインスタンスなど) の終了を防ぐことはできません。 -
AWS CLI または SDK を使用して Auto Scaling
RemoveFromLoadBalancerLowPriority
グループを記述する呼び出しでこのプロセスが存在する場合は無視できます。このプロセスは非推奨で後方互換性のためにのみ保持されています。
プロセスを中断する
Auto Scaling グループのプロセスを一時停止するには、以下の方法のいずれかを使用します。
プロセスを再開します。
Auto Scaling グループの一時停止中のプロセスを再開するには、以下の方法のいずれかを使用します。
中断されたプロセスが他のプロセスに与える影響
以下のセクションでは、さまざまなプロセスが個別に中断された場合に何が起こるかを説明します。
トピック
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 は、別のスポットインスタンスプール、または同じスポットインスタンスプール (再度利用可能になったとき) から代替インスタンスを起動できません。 -
キャパシティのリバランシング — 停止状態で、キャパシティリバランスを使用してスポットインスタンスの中断を処理しても、スポット容量が利用できなくなった場合でも、Amazon EC2 スポットサービスはインスタンスを終了できます。
Terminate
Launch
が中断される場合、Amazon EC2 Auto Scaling は、別のスポットインスタンスプール、または同じスポットインスタンスプール (再度利用可能になったとき) から代替インスタンスを起動できません。 -
インスタンスのアタッチとデタッチ — 一時停止中の場合
Launch
、Auto Scaling グループにアタッチされているインスタンスをデタッチできますが、Launch
一時停止されている間は、新しいインスタンスをグループにアタッチすることはできません。Terminate
-
スタンバイインスタンス —
Terminate
が停止しているときはLaunch
、Standby
インスタンスをその状態にすることはできますが、Launch
停止されている間は、Standby
その状態のインスタンスを稼働状態に戻すことはできません。