翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
フレームワークの概要
耐障害性分析フレームワークは、ワークロードの望ましい耐障害性を特定することで開発されました。希望するプロパティは、システムについて真にしたいものです。耐障害性は通常、可用性によって測定されるため、可用性の高い分散システムの特性は、冗長性、十分な容量、タイムリーな出力、正しい出力、障害分離の 5 つです。これらのプロパティを次の図に示します。
-
冗長性 – 単一障害点 (SPOFs。冗長性は、ワークロード内のスペアコンポーネントからアプリケーションスタック全体のフルレプリカまで多岐にわたります。アプリケーションの冗長性を考慮するときは、使用するインフラストラクチャ、データストア、依存関係によって提供される冗長性のレベルを考慮することが重要です。例えば、Amazon DynamoDB と Amazon Simple Storage Service (Amazon S3) は、リージョン内の複数のアベイラビリティーゾーンにデータをレプリケートすることで冗長性を提供し、複数のアベイラビリティーゾーン内の複数のワーカーノードで関数 AWS Lambda を実行します。使用するサービスごとに、サービスによって提供されるものと、設計する必要があるものを考慮してください。
-
十分な容量 – ワークロードには、意図したとおりに機能するのに十分なリソースが必要です。リソースには、メモリ、CPU サイクル、スレッド、ストレージ、スループット、サービスクォータなどが含まれます。
-
タイムリーな出力 – お客様がワークロードを使用する場合、妥当な時間内に意図した機能を実行することが期待されます。サービスがレイテンシーに関するサービスレベルアグリーメント (SLA) を提供しない限り、その期待は一般的に経験的証拠、つまり独自の経験に基づいています。この平均的なカスタマーエクスペリエンスは通常、システム内のレイテンシーの中央値 (P50) と見なされます。ワークロードに予想以上に時間がかかる場合、このレイテンシーはカスタマーエクスペリエンスに影響を与える可能性があります。
-
正しい出力 – 意図した機能を提供するためには、ワークロードのソフトウェアの正しい出力が必要です。正しくない、または不完全な結果は、応答がない場合よりも悪くなる可能性があります。
-
障害分離 – 障害分離は、障害が発生したときに意図した障害コンテナへの影響の範囲を制限します。これにより、ワークロードの特定のコンポーネントが一緒に失敗し、障害が他の意図しないコンポーネントにカスケードされるのを防ぐことができます。また、ワークロードの顧客への影響の範囲を制限するのにも役立ちます。障害分離は、障害が既に発生しているが、封じ込める必要があることを受け入れるため、前の 4 つのプロパティとは若干異なります。インフラストラクチャ、依存関係、ソフトウェア機能で障害分離を作成できます。
目的のプロパティに違反すると、ワークロードが使用できなくなるか、使用できなくなる可能性があります。これらの望ましいレジリエンス特性と多くの AWS お客様との作業経験に基づいて、単一障害点、過剰な負荷、過剰なレイテンシー、設定ミスとバグ、共有された運命の 5 つの一般的な障害カテゴリを特定しました。これらは SEEMS と省略されます。これらは潜在的な障害モードを分類するための一貫した方法を提供し、次の表で説明します。
失敗カテゴリ |
違反 |
定義 |
|---|---|---|
単一障害点 (SPOFs) |
冗長性 |
単一のコンポーネントで障害が発生すると、コンポーネントの冗長性がないため、システムが中断されます。 |
過剰な負荷 |
十分な容量 |
過剰な需要やトラフィックによるリソースの過剰消費により、リソースは期待される機能を実行できなくなります。これには、リクエストのスロットリングと拒否を引き起こす制限とクォータに達することが含まれます。 |
過剰なレイテンシー |
タイムリーな出力 |
システム処理またはネットワークトラフィックのレイテンシーが、予想される時間、サービスレベル目標 (SLOs)、またはサービスレベルアグリーメント (SLAs) を超えています。 |
設定ミスとバグ |
正しい出力 |
ソフトウェアのバグやシステムの設定ミスにより、出力が不正確になります。 |
共有された運命 |
障害の分離 |
以前の障害カテゴリのいずれかに起因する障害は、意図した障害分離の境界を越え、システムの他の部分または他の顧客にカスケードされます。 |