「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
スケーリングプロセスの中断と再開
このトピックでは、Auto Scaling グループの 1 つ以上のスケーリングプロセスを中断および再開する方法について説明します。また、Amazon EC2 Auto Scaling の中断/再開機能の使用を選択するときに考慮すべき問題についても説明しています。
インスタンスのトラブルシューティングまたは再起動が必要な場合は、中断/再開機能の代わりにスタンバイ機能を使用します。詳細については、「グループからのインスタンスの一時的な削除Auto Scaling」を参照してください。インスタンスのスケールイン保護機能を使用して、自動スケールイン中に特定のインスタンスが終了しないようにします。詳細については、「インスタンスのスケールイン保護」を参照してください。
Auto Scaling グループのプロセスは、お客様が中断するだけでなく、インスタンスの起動に繰り返し失敗するという理由で Amazon EC2 Auto Scaling によって中断されることもあります。これは、管理上の中断と呼ばれます。管理上の中断は一般に、24 時間以上インスタンスの起動を試みているが、インスタンスの起動に成功しない Auto Scaling グループに適用されます。管理上の理由で Amazon EC2 Auto Scaling によって中断されたプロセスは、お客様が再開できます。
スケーリングプロセス
では、2 つの主要なプロセスタイプがあります。Amazon EC2 Auto ScalingLaunch
および Terminate
。 プロセスは、新しい Amazon EC2 インスタンスを Launch
グループに追加し、容量を増やします。Auto Scalingこの Terminate
プロセスにより、グループから Amazon EC2 インスタンスが削除され、容量が減少します。
Amazon EC2 Auto Scaling の他のプロセスタイプは、特定のスケーリング機能に関連しています。
-
AddToLoadBalancer
— インスタンスが起動されたときに、アタッチされたロードバランサーまたはターゲットグループにインスタンスを追加します。 -
AlarmNotification
— グループのスケーリングポリシーに関連付けられている CloudWatch アラームから通知を受け取ります。 -
AZRebalance
— グループのバランスがとれなくなった場合 (たとえば、以前は使用できなかったアベイラビリティーゾーンが正常な状態に戻った場合)、グループに指定されたすべてのアベイラビリティーゾーン間で EC2 インスタンスを均等に分散させてバランスをとります。詳細については、「アクティビティの再分散」を参照してください。 -
HealthCheck
— インスタンスのヘルスをチェックします。インスタンスに異常があるという通知を Amazon EC2 または Elastic Load Balancing から受け取った場合、Amazon EC2 Auto Scaling はインスタンスを異常ありとしてマークします。このプロセスは、手動で設定したインスタンスのヘルス ステータスをオーバーライドできます。詳細については、「インスタンスのヘルスチェックAuto Scaling」を参照してください。 -
ReplaceUnhealthy
— 異常とマークされたインスタンスを終了してから、代わりの新しいインスタンスを作成します。 -
ScheduledActions
— お客様が作成したか、または AWS Auto Scaling の予測スケーリング機能によって作成された、スケジュールされたスケーリングアクションを実行します。
の停止の選択
各プロセスタイプは個別に中断および再開できます。このセクションでは、スケーリングプロセスの中断を決定する前に考慮すべきガイダンスと動作について説明します。個々のプロセスを中断すると、他のプロセスが妨げられる可能性があることに注意してください。プロセスの中断理由によっては、複数のプロセスをまとめて中断することが必要になる場合があります。
以下では、個々のプロセスタイプが中断されたときの動作について説明しています。
Launch
または Terminate
プロセスタイプを中断した場合、他のプロセスタイプが正しく機能しなくなることがあります。
Terminate
-
プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scaling グループはスケールインされません。さらに、以下のプロセスが中断されます。
-
AZRebalance
はまだアクティブですが、正しく機能していません。古いインスタンスを終了せずに新しいインスタンスを起動することがあります。これにより、Auto Scaling グループがその最大サイズより 10% まで大きくなることあります。バランスの再調整アクティビティ中にこの状態が一時的に許可されるためです。Terminate
プロセスを再開するまで、Auto Scaling グループは最大サイズを超えることがあります。Terminate
が再開されると、グループで使用されているアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なるアベイラビリティーゾーンが指定されている場合、AZRebalance
は Auto Scaling グループのバランスを段階的に再調整します。 -
ReplaceUnhealthy
は非アクティブですが、HealthCheck
はアクティブです。 が再開されると、Terminate
プロセスはすぐに実行を開始します。ReplaceUnhealthy
Terminate
が中断されている間に異常とマークされたインスタンスがある場合、それらのインスタンスはすぐに置き換えられます。
-
Launch
-
プロセスの中断中に発生したアラームまたはスケジュールされたアクションに応じて、Auto Scaling グループはスケールアウトされません。
AZRebalance
はグループの再分散を停止します。ReplaceUnhealthy
は異常なインスタンスを終了し続けますが、代わりのインスタンスは起動しません。Launch
を再開すると、バランスの再調整アクティビティとヘルスチェックによる置き換えは以下の方法で処理されます。-
グループで使用されているアベイラビリティーゾーン間のバランスがとれなくなった場合や、異なるアベイラビリティーゾーンが指定された場合、
AZRebalance
は Auto Scaling グループのバランスを段階的に再調整します。 -
ReplaceUnhealthy
は、Launch
が中断されていた間に終了したインスタンスをすぐに置き換えます。
-
AddToLoadBalancer
-
Amazon EC2 Auto Scaling はインスタンスを起動しますが、それらのインスタンスをロードバランサーやターゲットグループに追加しません。
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
最初に — を呼び出し、次にTerminate
を呼び出します。Launch
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 はそれらのプロセスの中断中に異常とマークされたインスタンスを置き換え、グループのバランスを再調整しようとします。スケーリングアクティビティも再開されます。
追加の考慮事項
Launch
と Terminate
が中断されている間に影響される可能性のある外部オペレーションがいくつかあります。
-
スポットインスタンスの中断 —
Terminate
が中断され、Auto Scaling グループにスポットインスタンスがある場合、使用可能な容量がなくなっていても、それらのインスタンスはまだ終了できます。Launch
が中断されている間、Amazon EC2 Auto Scaling は別のまたは同じスポットインスタンスプールから、再利用可能になった代わりのインスタンスを起動することはできません。 -
インスタンスのアタッチとデタッチ —
Launch
とTerminate
が中断されているとき、Auto Scaling グループにアタッチされているインスタンスをデタッチすることはできますが、新しいインスタンスをそのグループにアタッチすることはできません。インスタンスをアタッチするには、最初にLaunch
を再開する必要があります。注記 インスタンスをデタッチしてからすぐに手動でインスタンスを終了する場合、代わりに terminate-instance-in-auto-scaling-group CLI コマンドを呼び出すことができます。これにより、指定したインスタンスが終了し、オプションでグループの希望する容量が調整されます。さらに、Auto Scaling グループがライフサイクルフックで使用されている場合、インスタンスの終了に指定したカスタムアクションは、インスタンスが完全に終了する前に実行されます。
-
スタンバイインスタンス —
Launch
の中断中、Standby
状態のインスタンスを稼働状態に戻すことはできません。インスタンスを稼働状態に戻すには、最初にLaunch
を再開する必要があります。
スケーリングプロセスを中断および再開する (コンソール)
個別のプロセスまたはすべてのプロセスを中断および再開することができます。
プロセスを中断および再開するには
-
https://console.aws.amazon.com/ec2/
で Amazon EC2 コンソールを開きます。 -
ナビゲーションペインの [AUTO SCALING] で、[Auto Scaling グループ] を選択します。
-
グループ [Auto Scaling] の横にあるチェックボックスをオンにします。
[Auto Scaling グループ] ページの下部に分割ペインが開き、選択したグループに関する情報が表示されます。
-
[詳細] タブで、[高度な設定]、[編集] の順に選択します。
-
[Suspended processes (中断したプロセス)] で、停止するプロセスを選択します。
中断したプロセスを再開するには、[Suspended processes (中断したプロセス)] からそのプロセスを削除します。
-
[Update (更新)] を選択します。
スケーリングプロセスを中断および再開する (AWS CLI)
個別のプロセスまたはすべてのプロセスを中断および再開することができます。
プロセスを停止するには
次のように、suspend-processes コマンドを --scaling-processes
オプションと共に使用します。
aws autoscaling suspend-processes --auto-scaling-group-name
my-asg
--scaling-processesAlarmNotification
すべてのプロセスを停止するには
suspend-processes コマンドを使用します (--scaling-processes
オプションを省略)。
aws autoscaling suspend-processes --auto-scaling-group-name
my-asg
停止されたプロセスを再開するには
resume-processes コマンドを次のように使用します。
aws autoscaling resume-processes --auto-scaling-group-name
my-asg
--scaling-processesAlarmNotification
停止されたすべてのプロセスを再開するには
resume-processes コマンドを使用します (--scaling-processes
オプションを省略)。
aws autoscaling resume-processes --auto-scaling-group-name
my-asg