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 つのオプションがあります。

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

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

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

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. ヘルスチェックの動作で、「異常を無視する」または「異常を置き換える」を選択します。に設定するとreplace-unhealthy、異常なインスタンスはアベイラビリティーゾーンでアクティブなゾーンシフトに置き換えられます。に設定するとignore-unhealthy、アベイラビリティーゾーンの異常なインスタンスはアクティブなゾーンシフトに置き換えられません。

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

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

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

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

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

  • ImpairedZoneHealthCheckBehavior – に設定するとreplace-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 will not be replaced in the Availability Zone with the active zonal shift (us-east-1a).

ゾーンシフトを使用するためのベストプラクティス

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

  • EventBridge 通知をモニタリングして、継続的なアベイラビリティーゾーンの障害イベントが発生したかどうかを判断します。詳細については、「Automating Amazon EC2 Auto Scaling with Event Bridge」を参照してください。

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

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

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

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

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

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

  • アベイラビリティーゾーンディストリビューションにのみバランス型を使用します。

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

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