可用性とは?システムが止まらないための設計思想を解説

システム開発・テクノロジー
可用性とは?ざっくりと3行で
  • 必要なときにシステムを使える状態を維持し続ける能力のこと。英語でAvailabilityといい、情報セキュリティの三大要素(CIA)の一つに数えられる
  • 稼働率(アップタイム)の数値で表されることが多く、99.9%や99.99%といった数字がシステムの信頼性の指標になる
  • 冗長化・フェイルオーバー・ロードバランシングなど、可用性を高めるための技術要素は多岐にわたる。コストとのバランスを見ながら設計するのがインフラエンジニアの重要な仕事だ

【深掘り】これだけ知ってればOK!

情報セキュリティの世界ではCIA(機密性・完全性・可用性)という三大要素がある。Confidentiality(機密性)・Integrity(完全性)・Availability(可用性)の頭文字だ。セキュリティといえばCだけに注目されがちだが、Aを保てないシステムは使い物にならないという意味でAも同等に重要だ。

可用性を高めるための基本的なアプローチは冗長化だ。サーバー1台で運用すると、そのサーバーが壊れた瞬間にサービスが止まる。2台以上で同じ役割を担わせることで、1台が落ちても別の1台が処理を引き継ぐ構成が「可用性の高いシステム」の基本形だ。

可用性の指標として実務でよく使われる数値を整理しておこう。MTBF(平均故障間隔)はどのくらいの頻度で障害が起きるか、MTTR(平均復旧時間)は障害発生から復旧までにかかる時間だ。稼働率=MTBF÷(MTBF+MTTR)の式で計算でき、MTBFを延ばしMTTRを縮めることが可用性向上の基本戦略となる。

可用性を上げればコストも上がるというトレードオフは常に意識が必要だ。99.999%(ファイブナイン)の可用性を実現するには99.9%の10〜100倍のコストがかかることもある。「このシステムが1時間止まったときの損害はいくらか」を試算し、それを上回らないコストで可用性を確保するのが合理的な設計判断だ。

クラウド時代の可用性設計はマルチAZ(アベイラビリティゾーン)が基本だ。AWSではリージョン内に複数の物理データセンター(AZ)があり、複数AZにサーバーを分散配置することで、1つのデータセンターが壊滅的な障害を受けても他のAZで継続稼働できる。これが現代のクラウド設計における可用性の最小単位だ。

よくある誤解

可用性が高い=絶対に止まらないではない

どれだけ可用性を高めても、確率的にゼロにはならない。99.999%でも年間5分の停止は想定内だ。重要なのは停止したときにどう復旧するか、影響をどう最小化するかの仕組みを並行して整えることだ。

バックアップと冗長化は別のもの

バックアップはデータを別の場所に保存して災害時に復元するための仕組みだ。冗長化はシステムを複数構成にしてリアルタイムで継続稼働するための仕組みだ。どちらも必要だが役割が異なり、片方だけでは可用性は十分に確保できない。

会話での使われ方

ITKAGYO運営者のアイコン画像

このシステムの可用性要件は99.9%です。月に8時間のメンテナンス枠を含めてもその数字を守れるか確認してください。

要件定義MTGで顧客がベンダーに可用性要件を伝えている場面。

ITKAGYO運営者のアイコン画像

DBサーバーが1台構成なのは可用性的にまずいですね。マルチAZに変更するコストを見積もります。

システムレビューでインフラエンジニアが設計上の脆弱点を指摘している場面。

ITKAGYO運営者のアイコン画像

MTBFが伸びてMTTRが縮まれば稼働率が上がります。今月の障害対応の振り返りを可用性の観点でもまとめましょう。

月次の障害振り返りMTGでSREエンジニアがチームに提案している場面。

【まとめ】3つのポイント

  • 「必要なときに使えること」がシステムの基本義務:可用性は情報セキュリティのCIAの一要素で、どれだけ高機能でも止まれば意味をなさないという観点から設計に組み込む必要がある
  • MTBF×MTTRの改善が稼働率向上の基本戦略:障害頻度を下げ(MTBF増)、復旧時間を縮める(MTTR減)という2軸の継続的改善が可用性を高める現実的なアプローチだ
  • コストとのトレードオフを定量的に判断する:停止時の損害額から逆算して許容できる停止時間を決め、そこから必要な可用性レベルを設計するのが合理的な判断基準だ

よくある質問

Q
可用性を高めるために何をすればいいですか?
A

サーバーの冗長化・ロードバランサーの導入・マルチAZ構成・定期バックアップ・自動フェイルオーバーの設定が基本的な対策です。システムの重要度に合わせて段階的に対策を積み上げることが現実的なアプローチです。

Q
稼働率99.9%と99.99%では何が違いますか?
A

年間ダウンタイムが大きく異なります。99.9%(スリーナイン)は年間約8.7時間、99.99%(フォーナイン)は年間約52分が許容される停止時間です。決済・医療・金融などクリティカルなシステムではフォーナイン以上が要件になることが多いです。

Q
可用性とセキュリティはどちらが重要ですか?
A

どちらかが上という比較はできません。情報セキュリティの三大要素CIA(機密性・完全性・可用性)はすべて同列に重要です。セキュリティ対策を厳しくしすぎて利用できなくなれば可用性が損なわれます。両者のバランスを保つことがシステム設計の本質です。

Q
可用性と信頼性の違いは何ですか?
A

可用性はシステムが使える状態にある割合(稼働率)を表します。信頼性はシステムが正確に期待通りに動作する能力を表します。高可用性でも誤った結果を返せば信頼性が低いことになります。両者を区別して設計目標に組み込むことが重要です。

【出典】参考URL

https://e-words.jp/w/SLA.html :稼働率・MTBF・MTTRの解説
https://bcblog.sios.jp/what-is-sla/ :可用性とSLAの関係

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました