フレームワークの概要 - AWS 規範ガイダンス

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

フレームワークの概要

レジリエンス分析フレームワークは、ワークロードに必要なレジリエンス特性を特定することで開発されました。望ましいプロパティとは、システムについて真に当てはまることを指します。耐障害性は一般に可用性によって測定されるため、可用性の高い分散システムには、冗長性、十分な容量、タイムリーな出力、正しい出力、障害の切り分けという 5 つの特性があります。これらのプロパティを次の図に示します。

必要なレジリエンス特性の関係
  • 冗長性— 単一障害点 (SPOF) を排除する冗長性により、耐障害性が実現されます。冗長性は、ワークロード内のスペアコンポーネントから、アプリケーションスタック全体の完全なレプリカまで多岐にわたります。アプリケーションの冗長性を検討する際には、使用するインフラストラクチャ、データストア、依存関係によって提供される冗長性のレベルを考慮することが重要です。たとえば、Amazon DynamoDB と Amazon シンプルストレージサービス (Amazon S3) は、1 つのリージョン内の複数のアベイラビリティーゾーンにデータを複製することで冗長性を実現し、AWS Lambda複数のアベイラビリティーゾーンの複数のワーカーノードで関数を実行します。使用する各サービスについて、そのサービスが提供するものと設計する必要があるものを考慮に入れてください。

  • 十分な容量— ワークロードが意図したとおりに機能するには十分なリソースが必要です。リソースには、メモリ、CPU サイクル、スレッド、ストレージ、スループット、サービスクォータなど、さまざまなものがあります。

  • タイムリーな出力— 顧客はワークロードを使用するときに、妥当な時間内に意図した機能を実行することを期待します。サービスがレイテンシーに関するサービスレベル契約 (SLA) を定めていない限り、顧客の期待は一般的に経験的証拠、つまり顧客自身の経験に基づいています。これは平均的な顧客体験通常、システム内のレイテンシの中央値 (P50) とみなされます。ワークロードに予想よりも時間がかかる場合、このレイテンシーはカスタマーエクスペリエンスに影響を及ぼす可能性があります。

  • 正しい出力— ワークロードが意図した機能を実現するには、ワークロードのソフトウェアの正しい出力が必要です。不正確または不完全な結果は、まったく応答がないより悪い場合があります。

  • 障害の切り分け— 障害分離は、障害発生時の影響範囲を意図した障害コンテナに限定します。これにより、ワークロードの特定のコンポーネントが同時に障害を起こし、障害が意図しない他のコンポーネントに連鎖的に影響することを防ぎます。また、ワークロードの顧客への影響範囲を限定するのにも役立ちます。障害の切り分けは、障害がすでに発生していても封じ込める必要があることを受け入れるため、前述の 4 つのプロパティとは多少異なります。インフラストラクチャ、依存関係、ソフトウェア機能から障害分離を行うことができます。

目的のプロパティに違反すると、ワークロードが使用できなくなったり、使用できなくなったりする可能性があります。これらの望ましいレジリエンス特性と、当社が多数の製品を扱ってきた経験に基づいています。AWSお客様から、シングルポイント障害、過剰負荷、過度の遅延、設定ミスやバグ、および運命の共有という 5 つの一般的な障害カテゴリを特定しました。これらを省略して SEEMS と呼んでいます。これらは潜在的な障害モードを分類するための一貫した方法であり、以下の表で説明しています。

障害カテゴリ

違反

定義

シングルポイント障害 (SPOF)

冗長性

1 つのコンポーネントに障害が発生すると、そのコンポーネントの冗長性が失われるため、システムが停止します。

過剰な負荷

十分な容量

過剰な需要やトラフィックによってリソースが過剰に消費されると、そのリソースは期待した機能を果たせなくなります。これには、制限やクォータに達することが含まれ、それによってスロットリングやリクエストの拒否が発生することがあります。

過度のレイテンシー

タイムリーな出力

システム処理またはネットワークトラフィックの遅延が、予想時間、サービスレベル目標 (SLO)、またはサービスレベル契約 (SLA) を超えている。

設定ミスやバグ

正しい出力

ソフトウェアのバグやシステムの設定ミスにより、出力が不正確になります。

日付を共有

障害分離

前述の障害カテゴリのいずれかが原因で発生した障害は、意図した障害分離の境界を越え、システムの他の部分や他の顧客へと波及します。