AWS での高可用性分散システムの設計 - 可用性およびその他:AWS の分散システムの回復力の理解と向上

AWS での高可用性分散システムの設計

これまでのセクションでは、主にワークロードの理論的な可用性と、それによって実現できることについて説明しました。これらは、分散システムを構築する際に覚えておくべき重要な概念です。依存関係の選択プロセスや冗長性の実装方法を知るのに役立ちます。

これまで、MTTD、MTTR、MTBF と可用性の関係について説明しました。このセクションでは、これまでの理論に基づいた実践的なガイダンスを紹介します。つまり、高可用性を実現するためのエンジニアリングワークロードは、MTBF を増やし、MTTR と MTTD を減らすことを目的としています。

障害をすべて無くすことが理想的ですが、これは現実的ではありません。依存関係が深く積み重なっている大規模な分散システムでは、障害が発生することがあります。「壊れないものはない」(Amazon.com 最高技術責任者、Werner Vogels、「Amazon Web Services の 10 年間の経験から得た 10 の教訓」を参照)、「障害を法律で規定することはできません。だから迅速な検出と対応に重点を置くべきです」 (ARC335 Amazon EC2 チーム創設メンバーの Chris Pinkham 氏、「障害に備える設計:AWS での耐障害性の高いシステムの設計」を参照)

障害が発生するかどうかを制御できないことは頻繁にあります。制御できるのは、障害をどれだけ早く検出して対処するかです。そのため、MTBF の増加は依然として高可用性の重要な要素ですが、MTTD と MTTR の削減は、カスタマーが制御できる最も大きな変更です。