コントロールプレーンとデータプレーン - マルチ AZ の高度なレジリエンスパターン

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

コントロールプレーンとデータプレーン

アベイラビリティーゾーンの退避に使用できる実際のパターンについて説明する前に、コントロールプレーンとデータプレーンの概念について説明する必要があります。AWS は、サービスでコントロールプレーンとデータプレーンを区別します。コントロールプレーンは、システムに変更 (リソースの追加、削除、変更) を行い、これらの変更を必要な個所に伝播して ALB のネットワーク設定の更新や AWS Lambda 関数の作成などを行うために必要なメカニズムです。

データプレーンは、EC2 インスタンスの実行、Amazon DynamoDB テーブルからの項目の取得、同テーブルへの項目の追加など、これらのリソースの主な機能を担います。コントロールプレーンとデータプレーンの詳細については、「可用性ゾーンを使用した静的安定性」と「AWS 障害分離境界」を参照してください。

このドキュメントの目的において、コントロールプレーンは、データプレーンよりも変動要素と依存関係が多い傾向があることを考慮します。このため、データプレーンに比べてコントロールプレーンは障害を受ける可能性が統計的に高くなります。これは、Amazon EC2 や EBS などの AZI を提供するサービスに特に当てはまります。これらのサービスの一部には、ゾーンごとに独立しており、シングル AZ イベント中に影響を受ける可能性があるコントロールプレーンがあるためです。

以上の情報に基づいてコントロールプレーンのアクションを使用して AZI 退避を実行することはできますが、成功する確率は (特に障害発生時には) 低くなる可能性があります。影響の軽減に成功する確率を高めるには、2 つの異なるパターンを使用できます。最初のパターンでは、データプレーンのアクションのみに依存して、影響を受けたアベイラビリティーゾーンに作業がルーティングされないようにするか、影響を受けたアベイラビリティーゾーンでの作業を停止することで、影響を軽減します。次に、2 番目のパターンでは、コントロールプレーンのアクションでリソースの設定を更新することで、影響を受けたアベイラビリティーゾーンでの容量のプロビジョニングを阻止するとともに、そのアベイラビリティーゾーンと他のアベイラビリティーゾーンとの通信を停止できます。

このセクションで説明する復旧パターンは赤い緊急ボタンです。これは、組立ラインでのアンドンのひもを引っ張るのと同じように、大規模なアクションをすばやく実行するためのメカニズムです。このメカニズムでは、ワークロードが一時的なエラーを克服するために、コード内でジッターを伴うエクスポネンシャルバックオフによる再試行などの戦略を既に試行したことを前提としています。これは、分離されたアベイラビリティーゾーンの影響が検出された場合、可用性やレイテンシーに与える影響が深刻であり、影響を効果的に軽減するにはアベイラビリティーゾーンから退避する必要があることを意味します。