REL 11: コンポーネントの障害に耐えるようにワークロードを設計するにはどうすればよいですか?

高い可用性と低い平均復旧時間 (MTTR) の要件を持つワークロードは、高い弾力性があるように設計する必要があります。

リソース

Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
AWS OpsWorks: Using Auto Healing to Replace Failed Instances
What Is Amazon EventBridge?
Amazon Route 53: Choosing a Routing Policy
What Is AWS Global Accelerator?
The Amazon Builders' Library: Static stability using Availability Zones
The Amazon Builders' Library: Implementing health checks
Well-Architected lab: Level 300: Implementing Health Checks and Managing Dependencies to Improve Reliability
The Berkeley/Stanford Recovery-Oriented Computing (ROC) Project
Multiple data center HA network connectivity
AWS Marketplace: products that can be used for fault tolerance
APN Partner: partners that can help with automation of your fault tolerance

ベストプラクティス:

改善計画

ワークロードのすべてのコンポーネントをモニタリングしてエラーを検知する

  • 復旧の目標に基づいて、コンポーネントの収集間隔を決定します。
  • コンポーネントの詳細モニタリングを設定します。
  • ビジネス主要業績評価指標 (KPI) を測定するカスタムメトリクスを作成する : ワークロードは主要なビジネス機能を実装します。これらの関数は、いつ間接的な問題が発生したのかを特定するのに役立つ KPI として使用される必要があります。
    Publishing Custom Metrics
  • ユーザーのカナリアでユーザーエクスペリエンスをモニタリングする: 顧客の行動を実行およびシミュレートできる合成トランザクションテスト (「カナリアテスト」とも呼ばれますが、カナリアデプロイと混同しないでください) は、最も重要なテストプロセスの 1 つです。さまざまなリモートロケーションからワークロードエンドポイントに対してこれらのテストを常に実行します。
    Amazon CloudWatch Synthetics enables you to create user canaries
  • ユーザーのエクスペリエンスを追跡するカスタムメトリクスを作成する: 顧客のエクスペリエンスを測定できる場合は、コンシューマーエクスペリエンスが低下するタイミングを判断できます。
    Publishing Custom Metrics
  • ワークロードの一部が正常に動作していないことを検出し、リソースを Auto Scaling するタイミングを示すアラームを設定します。 : アラームはダッシュボードに視覚的に表示したり、SNS または E メールでアラートを送信したり、Auto Scaling と連携してワークロードのリソースをスケールアップまたはスケールダウンしたりできます。
    Using Amazon CloudWatch Alarms
  • ダッシュボードを作成してメトリクスを視覚化する: ダッシュボードは、傾向や異常値などの潜在的な問題の指標を視覚的に確認したり、調査対象となり得る問題の存在の示唆を与えたりするために使用できます。
    Using CloudWatch Dashboards
  • 正常なリソースにフェイルオーバーする

  • 正常なリソースにフェイルオーバーする: リソース障害の発生時に、正常なリソースが引き続きリクエストに対応できるようにします。ロケーション障害 (アベイラビリティーゾーンや AWS リージョンなどにおける障害) に対しては、障害のないロケーションの正常なリソースにフェイルオーバーするシステムを用意します。
  • すべてのレイヤーの修復を自動化する

  • Auto Scaling グループを使用してアプリケーションに階層をデプロイする: Auto Scaling は、ステートレスなアプリケーションで自己修復を実行し、キャパシティーを追加および削除できます。
    How AWS Auto Scaling Works
  • 複数のロケーションにデプロイできないアプリケーションがデプロイされている EC2 インスタンスに自動復旧を実装し、障害時の再起動を許容できます。 : 自動復旧は、アプリケーションが複数のロケーションにデプロイできない場合に、障害が発生したハードウェアを交換してインスタンスを再起動するために使用できます。 インスタンスメタデータおよび関連する IP アドレスは保持されます。また、Amazon EBS ボリュームと Elastic File Systems for Lustre and Windows へのマウントポイントも保持されます。
    Amazon EC2 Automatic Recovery
    Amazon Elastic Block Store (Amazon EBS)
    Amazon Elastic File System (Amazon EFS)
    What is Amazon FSx for Lustre?
    What is Amazon FSx for Windows File Server?
  • 自動スケーリングまたは自動復旧を使用できない場合、または自動復旧が失敗した場合は、AWS Step Functions と AWS Lambda を使用して自動復旧を実装します。 : 自動スケーリングを使用できず、さらに、自動復旧が使用できないか、自動復旧が失敗した場合は、AWS Step Functions と AWS Lambda を使用してヒーリングを自動化できます。
    What is AWS Step Functions?
    What is AWS Lambda?
  • 静的安定性を使用してバイモーダル動作を防止する

  • 静的安定性を使用してバイモーダル動作を防止する: バイモーダル動作とは、たとえばアベイラビリティーゾーンに障害が発生した場合に新しいインスタンスの起動に依存するなど、通常モードと障害モードでワークロードが異なる動作を示す場合をいいます
    The Amazon Builders' Library: Static stability using Availability Zones
    Static stability in AWS: AWS re:Invent 2019: Introducing The Amazon Builders’ Library (DOP328)
  • イベントが可用性に影響する場合に通知を送信する

  • ビジネスの主要業績評価指標が低いしきい値を超えた場合のアラーム: ビジネス KPI のアラームのしきい値を低く設定すると、ワークロードが利用不可または機能していない場合にそれを認識できます。
    Creating a CloudWatch Alarm Based on a Static Threshold
  • ヒーリングオートメーションを呼び出すイベントがあった場合にアラームを送信する: SNS API を直接呼び出して、作成したオートメーションで通知を送信できます。
    What is Amazon Simple Notification Service?