翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ゾーンシフトは、Amazon Application Recovery Controller (ARC) の機能です。ゾーンシフトを使用すると、1 つのアクションでアベイラビリティーゾーン内のアプリケーションの障害から迅速に復旧できます。Auto Scaling グループのゾーンシフトを有効にすると、グループは ARC ゾーンシフトサービスに登録されます。その後、 AWS Management Console、 AWS CLI、または API を使用してゾーンシフトを開始できます。Auto Scaling グループは、アクティブなゾーンシフトでアベイラビリティーゾーンを障害ありとして扱います。
Auto Scaling グループのゾーンシフトの概念
先に進む前に、ARC ゾーンシフトとの統合に関連する以下の主要概念を理解しておく必要があります。
- ARC ゾーンシフト
-
Auto Scaling は、この機能を有効にするとAuto Scaling グループを ARC ゾーンシフトに登録できます。登録後、ARC
ListManagedResources
API を使用してリソースを表示できます。詳細については、「Amazon Application Recovery Controller (ARC) デベロッパーガイド」の「ARC のゾーンシフト」を参照してください。 - アベイラビリティーゾーンの再調整
-
Auto Scaling は、各アベイラビリティーゾーンの容量のバランスを維持しようとします。アベイラビリティーゾーン間で不均衡が発生すると、Auto Scaling は自動的に不均衡の修正を試みます。詳細については、「インスタンスの分散」を参照してください。
- 動的なスケーリング
-
動的スケーリングは、スケーリングポリシーで選択したメトリクスに基づいて、Auto Scaling グループの希望する容量をスケーリングします。詳細については、「Amazon EC2 Auto Scaling の動的スケーリング」を参照してください。
- ヘルスチェック
-
Auto Scaling は、Auto Scaling グループ内のすべてのインスタンスのヘルスステータスを定期的にチェックして、インスタンスが実行中で良好な状態であることを確認します。異常なインスタンスが検出されると、Auto Scaling はそのインスタンスを置き換え対象としてマークします。詳細については、「Auto Scaling グループでのインスタンスのヘルスチェック」を参照してください。
- インスタンスの更新
-
Auto Scaling グループのインスタンスを更新するには、インスタンスの更新を使用できます。インスタンスの更新が開始されると、Auto Scaling は Auto Scaling グループ内のすべてのインスタンスの置き換えを試みます。詳細については、「インスタンスの更新を使用して Auto Scaling グループのインスタンスを更新する」を参照してください。
- プリスケーリング済み
-
アプリケーションの残りのアベイラビリティーゾーンに十分な容量があるため、1 つのアベイラビリティーゾーンの損失を許容できます。
- スケールアウト
-
Auto Scaling グループの希望する容量を増やすと、Auto Scaling は新しい希望する容量を満たすために追加のインスタンスの起動を試みます。デフォルトでは、Auto Scaling は、Auto Scaling グループ内の有効な各アベイラビリティーゾーン間で同じ容量を維持するために、バランスの取れた方法でインスタンスを起動します。
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 は、ゾーンシフトがアクティブの間に遅延したインスタンスの更新プロセスのタイムアウトを延長します。
次の表は、 でゾーンシフトがトリガーされたときの各オプションのヘルスチェック動作を示していますus-east-1a
。
アベイラビリティーゾーンのヘルスチェック動作選択の障害 | ヘルスチェックの動作 |
---|---|
異常を置き換える |
異常と思われるインスタンスは、すべてのアベイラビリティーゾーン ( |
異常を無視する |
異常と思われるインスタンスは、 |
ゾーンシフトを使用するためのベストプラクティス
ゾーンシフトを使用するときにアプリケーションの高可用性を維持するには、次のベストプラクティスをお勧めします。
-
EventBridge 通知をモニタリングして、進行中のアベイラビリティーゾーン障害イベントがあるかどうかを確認します。詳細については、「Auto Scaling イベントの処理に EventBridge を使用する」を参照してください。
-
適切なしきい値を持つスケーリングポリシーを使用して、アベイラビリティーゾーンの損失を許容するのに十分な容量があることを確認します。
-
インスタンスメンテナンスポリシーを最小正常率 100 に設定します。この設定では、Auto Scaling は、新しいインスタンスが使用できるようになるのを待ってから、異常なインスタンスを終了します。
プリスケーリングされたお客様は、以下もお勧めします。
-
障害イベント中に異常なインスタンスを置き換える必要がないため、障害のあるアベイラビリティーゾーンのヘルスチェック動作として異常を無視を選択します。
-
Auto Scaling グループの ARC でゾーンオートシフトを使用します。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
。
Auto Scaling グループでのゾーンシフトの使用の詳細については、Amazon EC2 Auto Scaling でのゾーンシフトを使用した