📝
耐久性ってなんだろ?
S3の耐久性はイレブンナインです。
よくある質問 - Amazon S3 |AWS
- Standard、Standard–IA、Intelligent-Tiering、1ゾーン–IA、Glacier、Glacier Deep Archiveは、所定の 1 年間にオブジェクトの 99.999999999% (イレブンナイン) のデータ耐久性を提供
- 0.000000001% のオブジェクトの平均年間予測消失率に相当
- 10,000,000 のオブジェクトが格納されている場合、1 つのオブジェクトで損失が起きる予測平均発生率は、10,000 年に 1 度
- 最低 3 つのアベイラビリティーゾーン (AZ) にわたる複数のデバイスに冗長に保存することで実現
情報資産管理マガジン|情報資産管理に役立つ情報を伝えるサイト
- 通常、耐久性とは時間経過による物理的な劣化に対してどのくらい長く使えるかを表す
- AWSの耐久性は、オブジェクト平均年間予測生き残り率
- 10,000 年の間、同じ運用が続く前提とも受け取れ、非現実的
- 1000万個のオブジェクトを保存している100社に1社は毎年オブジェクトを喪失する計算
耐久性以外の勉強
【説明できる?】信頼性、可用性、耐久性、耐障害性、冗長性など、IT関連の「◯◯性」の違いをまとめて整理 | 「そんなか」サイト
信頼性(Reliability)
- 平均故障間隔(Mean Time Between Failures)
- 「障害の発生のしにくさ」
- システムやサービスが使えなくなる頻度やその間隔を示す指標
- 時間 or %
- システムの連続稼働時間が長いほど優秀
- 故障した際にどれだけ復旧に時間がかかるかは問わない
可用性(Availability)
- 稼働率(稼働時間)
- 「システムやサービスが利用できる時間の割合」
- 使いたい時に使える確率
- %
- システムの停止時間が少ないほど優秀
- 稼働時間と停止時間の割合なので、頻繁に壊れても瞬く間に復旧するなら高可用性と言える
耐久性・永続性(Durability)
- データ持続性
- データの平均年間予測存続率
- 1からAFR(年間故障率)を引いた確率
- % / 年
- データを失わない確率
耐障害性
- フォールトトレランス(fault tolerance)
- どれだけ障害に備えてあるか
- 障害耐性を高める仕組み
- 障害発生時に機能制限なしで動かし続けるための仕組み(AWSはこれ)
- 障害が発生したとしてもSLAを守り続けられる構成
- 問題が起こったとしても、自動で復旧し、100%のサービスを維持する仕組み
- 問題が起こる前提 = Design for Failer
- 単一障害点SPOFを排除
障害回避
- フォールトアボイダンス(fault avoidance)
- 問題を発生させないための備え
- Design for Failerが前提のAWSでは出てこない概念
冗長性(Redundancy)
- 多重性
- コンピューターやシステムに障害が発生した場合に備えて、冗長な(=無駄な)予備装置を普段から配置、運用すること
- 2つ以上あれば、それは冗長性があると言える
- 単にバックアップと言った場合は、自動的に短時間で復旧する(切り替わる)場合のみ、冗長性があると言える
- 冗長性があれば、信頼性や可用性の向上に寄与する
- 耐障害性の必要条件となることも多い
堅牢性
- ハードウェアなどが丈夫で壊れにくい設計になっていること
- 予期しないエラーや障害やセキュリティ上のリスクなどに柔軟に対応できること
- 信頼性や可用性、耐障害性が総じて高いこと
保守性(Serviceability)
- 平均修理時間
- 障害復旧(メンテナンス)の容易さの度合いの
- 分
保全性・完全性(Integrity)
- 情報が矛盾を起こさずに一貫性を保てる度合い
安全性・機密性(Security)
- 情報の外部流出の起きにくさの度合い
結果整合性
- = 結果整合性モデル = 結果整合性のある読み込み
- 更新はそのうち全体に反映される
- データを保存した直後やデータの変更を行った直後に別のプロセスからそのデータにアクセスしようとすると、まだ保存されていない、あるいは変更されていない状態に見える可能性がある
- データの更新の際にDBをロックすることによってデータの一貫性(Consistency)を担保するが、その間他の人はDBにアクセス出来ないため、可用性(Availability)を犠牲にすることになる
強い一貫性(Strong Consistency)
- = 強い整合性のある読み込み = 強力な整合性のある読み込み = 強整合性 = 読み取り一貫性(Consistent Readオプション)
- データの追加や更新が行われれば、その直後から必ず追加後や更新後の状態が取得できるようになる
- 更新が反映された最新データの応答を返す
- ネットワークの遅延または停止があった場合には利用できなくなる可能性がある
- DBがロックされることはないため可用性とスケーラビリティを維持
- ノード間でのデータの一貫性はデータ複製にかかる時間に依存することになるため、必ずしも担保されない
まとめ
- 耐久性はどれぐらいデータを失わずに保持できるかの指標
- S3は99.999999999% (イレブンナイン)
Discussion