ひとことで言うと
可用性は、サービスやシステムが「使いたいときに使える」状態をどれだけ維持できているかを表す指標や性質です。
可用性が高いほど、障害やメンテナンスで止まる時間が少なく、ユーザーがいつアクセスしても動いている状態に近づきます。 「99.9%の可用性」のように数値で表されることが多く、この数字が何を意味するかを知っておくとSLAやサービス契約の読み方が変わります。
たとえ話でもう少し詳しく
可用性は、お店の営業状況に近いです。
- 24時間365日営業の店は可用性が高い
- 年に数日だけ臨時休業する店は少し低い
- 頻繁に「ただいま準備中」になる店は可用性が低い
ユーザーは「使いたいときに使えること」を当然のように期待しています。 その期待に応えられる割合が可用性です。
「ナイン(9)」で語られる可用性
可用性はよく「9の数」で語られます。
| 表現 | 年間の停止許容時間 |
|---|---|
| 99%(ツーナイン) | 約87時間 |
| 99.9%(スリーナイン) | 約8.7時間 |
| 99.99%(フォーナイン) | 約52分 |
| 99.999%(ファイブナイン) | 約5.2分 |
「99.9%でも十分高い」と感じるかもしれませんが、年間8時間以上止まりうるということです。 決済や医療など止まると困るシステムほど、高い可用性が求められます。
よく出る場面・使いどころ
- クラウドサービスや外部APIの契約(SLA)で可用性の保証値を確認するとき
- 障害が起きたとき「どれだけ早く復旧できるか」を設計するとき
- 複数のサーバーを組み合わせて「1台が落ちても止まらない」構成を作るとき
- 定期メンテナンスの影響を最小限にしたいとき
似た言葉との違い
- 稼働率(アップタイム)
- サービスが稼働していた時間の割合
- 可用性と同じ意味で使われることが多いが、可用性はより広い概念(設計上の性質も含む)
- モニタリング
- システムの状態を常時観察する仕組み
- モニタリングで問題を早期検知することが、可用性の維持につながる
- ヘルスチェック
- サーバーが正常に動いているかを定期確認する仕組み
- ヘルスチェックで異常を検知し、自動的に切り替えることで可用性を保てる
実務で気にするポイント
- 単一障害点(1か所が止まるとサービス全体が落ちる箇所)を減らす設計をする
- 障害が起きることを前提に、素早く復旧できる手順と体制を用意する
- メンテナンス時間も停止時間に含まれるため、無停止でのデプロイ方法を検討する
- 可用性の目標値(SLO)をチームで合意し、それを達成するための設計と運用を逆算する
注意: 可用性を高めるほど設計・運用のコストも上がります。「絶対に止まってはいけない」システムと「多少止まっても許容できる」システムでは必要な投資が大きく違います。求められる可用性に見合った設計をすることが大切です。