Amazon EC2 Auto Scaling グループ - Amazon Application Recovery Controller (ARC)

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

Amazon EC2 Auto Scaling グループ

Amazon EC2 Auto Scaling グループには、オートスケーリングと管理のための、論理グループとして扱われる Amazon EC2 インスタンスの集合が含まれています。また、Auto Scaling グループによって、ヘルスチェックの置き換えやスケーリングポリシーなど、Amazon EC2 Auto Scaling の機能も使用できます。Auto Scaling グループでのインスタンス数の維持と自動スケーリングの両方が Amazon EC2 Auto Scaling サービスの主な機能です。

Auto Scaling グループのゾーンシフトの使用

ゾーンシフトを有効にするには、次のいずれかの方法を使用します。

Console
新しいグループでゾーンシフトを有効にするには (コンソール)
  1. 「起動テンプレートを使用して Auto Scaling グループを作成する」の手順に従って、ステップ 10 までの手順の各ステップを完了します。

  2. [他のサービスと統合する]ページの [ARC ゾーンシフト] で、チェックボックスを選択してゾーンシフトを有効にします。

  3. [ヘルスチェックの動作] で、[異常を無視] または [異常なものとの置換を実行] を選択します。replace-unhealthy に設定すると、異常なインスタンスはアベイラビリティーゾーンのアクティブなゾーンシフトに置き換えられます。ignore-unhealthy に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

  4. 「起動テンプレートを使用して Auto Scaling グループを作成する」の手順に進みます。

AWS CLI
新しいグループでゾーンシフトを有効にするには (AWS CLI)

create-auto-scaling-group コマンドに --availability-zone-impairment-policy パラメータを追加します。

--availability-zone-impairment-policy パラメータには次の 2 つのオプションがあります。

  • ZonalShiftEnabledtrue に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトに登録し、ARC コンソールでゾーンシフトを開始、更新、またはキャンセルできます。false に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトから登録解除します。false に設定するには、ゾーンシフトが既に有効になっている必要があります。

  • ImpairedZoneHealthCheckBehaviorreplace-unhealthy に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられます。ignore-unhealthy に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

次の例では、my-asg という名前の新しい Auto Scaling グループでゾーンシフトを有効にします。

aws autoscaling create-auto-scaling-group \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --auto-scaling-group-name my-asg \ --min-size 1 \ --max-size 10 \ --desired-capacity 5 \ --availability-zones us-east-1a us-east-1b us-east-1c \ --availability-zone-impairment-policy '{ "ZonalShiftEnabled": true, "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy }'
Console
既存のグループでゾーンシフトを有効にするには (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

  2. 画面上部のナビゲーションバーで、Auto Scaling グループ AWS リージョン を作成した を選択します。

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

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

  4. [統合] タブの [ARC ゾーンシフト] で、[編集] を選択します。

  5. ゾーンシフトを有効にするには、チェックボックスをオンにします。

  6. [ヘルスチェックの動作] で、[異常を無視] または [異常なものとの置換を実行] を選択します。

    • ヘルスチェックの動作が異常を無視するように設定されている場合、異常のあるインスタンスはアベイラビリティーゾーンでアクティブなゾーンシフトに置き換えられません

    • ヘルスチェックの動作が異常を置き換えるように設定されている場合、異常のあるインスタンスはアベイラビリティーゾーンでアクティブなゾーンシフトに置き換えられます。

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

AWS CLI
既存のグループでゾーンシフトを有効にするには (AWS CLI)

update-auto-scaling-group コマンドに --availability-zone-impairment-policy パラメータを追加します。

--availability-zone-impairment-policy パラメータには次の 2 つのオプションがあります。

  • ZonalShiftEnabledTRUE に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトに登録し、ARC コンソールでゾーンシフトを開始、更新、またはキャンセルできます。FALSE に設定すると、Auto Scaling は Auto Scaling グループを ARC ゾーンシフトから登録解除します。FALSE に設定するには、ゾーンシフトが既に有効になっている必要があります。

  • ImpairedZoneHealthCheckBehaviorreplace-unhealthy に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられます。ignore-unhealthy に設定すると、異常なインスタンスはアクティブなゾーンシフトのあるアベイラビリティーゾーンで置き換えられません。

次の例では、指定された Auto Scaling グループでゾーンシフトを有効にします。

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --availability-zone-impairment-policy '{ "ZonalShiftEnabled": true, "ImpairedZoneHealthCheckBehavior": IgnoreUnhealthy }'

ゾーンシフトを開始するには、「 ゾーンシフトの開始、更新またはキャンセル」を参照してください。

Auto Scaling グループに対するゾーンシフトの仕組み

次のアベイラビリティーゾーンを含む Auto Scaling グループがあるとします。

  • us-east-1a

  • us-east-1b

  • us-east-1c

us-east-1a の障害に気づき、ゾーンシフトを開始します。us-east-1a でゾーンシフトが開始されると、次の動作が発生します。

  • スケールアウト – Auto Scaling は、正常なアベイラビリティーゾーン (us-east-1b および ) ですべての新しいキャパシティリクエストを起動しますus-east-1c

  • 動的スケーリング – Auto Scaling は、スケーリングポリシーが希望する容量を減らすのをブロックします。Auto Scaling は、スケーリングポリシーが希望する容量を増やすのをブロックしません。

  • インスタンスの更新 – Auto Scaling は、アクティブなゾーンシフト中に遅延したインスタンスの更新プロセスのタイムアウトを延長します。

    障害があるアベイラビリティーゾーンのヘルスチェック動作選択 ヘルスチェックの動作
    Replace unhealthy Instances that appear unhealthy will be replaced in all Availability Zones (us-east-1a, us-east-1b, and us-east-1c).
    Ignore unhealthy Instances that appear unhealthy will be replaced in us-east-1b and us-east-1c. Instances are not replaced in the Availability Zone with the active zonal shift (us-east-1a).

ゾーンシフトの使用に関するベストプラクティス

ゾーンシフトの使用時にアプリケーションの高可用性を維持するには、次のベストプラクティスをお勧めします。

  • EventBridge 通知をモニタリングして、進行中のアベイラビリティーゾーンの障害イベントが発生するタイミングを特定します。詳細については、EventBridge による Amazon EC2 Auto Scaling の自動化」を参照してください。

  • 適切なしきい値を持つスケーリングポリシーを使用して、アベイラビリティーゾーンの損失を許容できる十分な容量があることを確認します。

  • 最小正常パーセンテージが 100 のインスタンスメンテナンスポリシーを設定します。この設定で、Auto Scaling は、異常なインスタンスを終了する前に、新しいインスタンスを使用する準備が整うのを待ちます。

事前スケーリングされたお客様には、以下もお勧めします。

  • 障害イベント中に異常なインスタンスを置き換える必要がないため、障害のあるアベイラビリティーゾーンのヘルスチェック動作として [異常を無視] を選択します。

  • Auto Scaling グループに対して ARC のゾーンオートシフトを使用します。のゾーンオートシフト機能 Amazon Application Recovery Controller (ARC) を使用すると AWS 、 がアベイラビリティーゾーンの障害 AWS を検出したときに、リソースのトラフィックをアベイラビリティーゾーンから遠ざけることができます。詳細については、「ARC のゾーンオートシフト」を参照してください。

クロスゾーンが無効になっているロードバランサーを使用するお客様には、以下もお勧めします。

  • アベイラビリティーゾーンの分散に対して [バランシング (限定)] を使用します。

  • Auto Scaling グループとロードバランサーの両方でゾーンシフトを使用している場合は、まず Auto Scaling グループのゾーンシフトをキャンセルしてください。次に、すべてのアベイラビリティーゾーン間で容量のバランスを取れるまで待ってから、ロードバランサーでゾーンシフトをキャンセルします。

  • ゾーンシフトを有効にし、クロスゾーン無効ロードバランサーを使用すると、容量が不均衡になる可能性があるため、Auto Scaling には追加の検証があります。ベストプラクティスに従っている場合は、 のチェックボックスを選択する AWS マネジメントコンソール かCreateAutoScalingGroup、、、または の skip-zonal-shift-validationフラグを使用してUpdateAutoScalingGroup、この可能性を確認できますAttachTrafficSources