REL 10: ワークロードを保護するために障害分離をどのように使用しますか?
障害部分を分離した境界は、ワークロード内の障害の影響を限られた数のコンポーネントに限定します。境界外のコンポーネントは、障害の影響を受けません。障害部分を切り離した境界を複数使用すると、ワークロードへの影響を制限できます。
リソース
AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications
(ARC209-R2)
Shuffle-sharding: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
AWS re:Invent 2018: How AWS Minimizes the Blast Radius of Failures (ARC338)
AWS re:Invent 2019: Innovation and operation of the AWS global network infrastructure
(NET339)
What is AWS Outposts?
Global Tables: Multi-Region Replication with DynamoDB
AWS Local Zones FAQ
AWS Global Infrastructure
The Amazon Builders' Library: Workload isolation using shuffle-sharding
ベストプラクティス:
-
複数の場所にワークロードをデプロイする: ワークロードデータとリソースを複数のアベイラビリティーゾーンに分散するか、必要に応じて複数の AWS リージョンにかけて分散します。これらのロケーションは、必要に応じて多様化できます。
-
単一のロケーションに制約されるコンポーネントのリカバリを自動化する: ワークロードのコンポーネントが 1 つのアベイラビリティーゾーンまたはオンプレミスのデータセンターでのみ実行できる場合は、定義された復旧目標内でワークロードを全面的に再構築する機能を実装する必要があります。
-
バルクヘッドアーキテクチャを使用する: 船の隔壁のように、このパターンは、障害がリクエスト/ユーザーの小さなサブセットに確実にとどまるようにすることで、障害のあるリクエストの数が制限され、ほとんどがエラーなしで続行できるようにします。データの隔壁は通常パーティションまたはシャードと呼ばれ、サービスの隔壁はセルと呼ばれます。
改善計画
複数の場所にワークロードをデプロイする
- リージョンサービスは初めからアベイラビリティーゾーンにデプロイされます。
- これには、Amazon S3、Amazon DynamoDB、AWS Lambda (VPC に接続されていない場合) が含まれます。
- コンテナ、インスタンス、機能ベースのワークロードを複数のアベイラビリティーゾーンにデプロイします。キャッシュを含め、マルチゾーンデータストアを使用する: EC2 Auto Scaling、ECS タスク配置、VPC で実行する AWS Lambda 関数の設定、および ElastiCache クラスターの機能を利用します。
- Auto Scaling グループをデプロイするときには、アベイラビリティーゾーンの異なるサブネットを使用します。
Example: Distributing instances across Availability Zones
Amazon ECS task placement strategies
Configuring an AWS Lambda function to access resources in an Amazon VPC
Choosing Regions and Availability Zones - Auto Scaling グループをデプロイするときには、アベイラビリティーゾーンの異なるサブネットを使用します。
Example: Distributing instances across Availability Zones - タスク配置パラメータを使用して、DB サブネットグループを指定します。
Amazon ECS task placement strategies - VPC で実行する関数を設定するには、複数のアベイラビリティーゾーンでサブネットを使用します。
Configuring an AWS Lambda function to access resources in an Amazon VPC - ElastiCache クラスターには複数のアベイラビリティーゾーンを使用します。
Choosing Regions and Availability Zones
- Auto Scaling グループをデプロイするときには、アベイラビリティーゾーンの異なるサブネットを使用します。
AWS re:Invent 2018: Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)
- 別の AWS リージョンにバックアップすると、必要なときにデータが利用可能になるという保証のレイヤーを追加できます。
- ワークロードによっては、マルチリージョン戦略の使用を必要とする規制要件があります
What is AWS Outposts?
AWS Local Zones FAQ
単一のロケーションに制約されるコンポーネントのリカバリを自動化する
- 単一インスタンス IP アドレスや、プライベート IP アドレス、Elastic IP アドレス、インスタンスメタデータを必要としないインスタンスとコンテナのワークロードには、Auto
Scaling グループを使用します。
What Is EC2 Auto Scaling?
Service automatic scaling- 起動設定ユーザーデータを使用して、ほとんどのワークロードを自己修復できる自動化を実装できます。
- 単一インスタンス IP アドレスや、プライベート IP アドレス、elastic IP アドレス、インスタンスメタデータを必要とするワークロードには、EC2 インスタンスの自動復旧機能を使用します。
Recover your instance.- 自動復旧は、インスタンスの障害が検出されると、復旧ステータスアラートを SNS トピックに送信します。
- 自動スケーリングや EC2 の復旧機能を利用できない場合は、EC2 インスタンスのライフサイクルイベントや ECS イベントを利用して、自己修復を自動化します。
EC2 Auto Scaling lifecycle hooks
Amazon ECS events- 必要なプロセスロジックに従ってコンポーネントを修復する自動化を呼び出すには、イベントを利用します。
Recover your instance.
- 自動復旧は、インスタンスの障害が検出されると、復旧ステータスアラートを SNS トピックに送信します。
EC2 Auto Scaling lifecycle hooks
Amazon ECS events
- 必要なプロセスロジックに従ってコンポーネントを修復する自動化を呼び出すには、イベントを利用します。
バルクヘッドアーキテクチャを使用する
Shuffle-sharding: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
AWS re:Invent 2018: How AWS Minimizes the Blast Radius of Failures (ARC338)
- Colm MacCarthaigh は、その AWS ブログの記事で、Amazon Route 53 がシャッフルシャーディングの概念を用いて顧客のリクエストをシャードに分離する方法を説明しています
Shuffle Sharding: Massive and Magical Fault Isolation