可用性とSLAとは ― 稼働率の計算方法
稼働率
可用性とSLAとは
クラウドサービスの契約には、「稼働率99.9%」のような数字が並びます。この数字が表すのが可用性で、システムが止まらずに使える度合いのことです。英語ではavailabilityと呼びます。
可用性を数値で表した指標が稼働率です。SLAは、この稼働率などを事業者が利用者に約束する合意文書です。99.9%と99.99%は差が小さく見えますが、1か月に止まってよい時間は約43分と約4分で、10倍違います。
稼働率は、故障の間隔と修理にかかる時間からも、装置の組み合わせ方からも計算できます。どちらの式も、下の計算機で数字を変えて確かめられます。
稼働率の計算式
稼働率は、次の式で計算します。
稼働率 = 実際に正常稼働した時間 ÷ 稼働すべき時間
例えば、1か月(30日)稼働すべきシステムが、合計7.2時間止まったとします。1か月は720時間なので、正常稼働した時間は720−7.2で712.8時間です。稼働率は712.8÷720で0.99、つまり99%になります。
システムを評価する5つの項目を、まとめてRASISと呼びます。RASISは、信頼性・可用性・保守性・完全性・安全性の英語の頭文字です。稼働率は、このうち可用性を数値で表した指標です。処理の速さを表す性能の指標には、レスポンスタイムやターンアラウンドタイムがあります。
MTBF・MTTRとは
MTBFは、修理が終わってから次に故障するまでの、動いている時間の平均です。平均故障間隔と訳します。MTTRは、故障してから修理が終わるまでの平均時間です。平均修復時間と訳します。
稼働率は、このMTBFとMTTRから、次の式でも計算できます。
稼働率 = MTBF ÷ (MTBF + MTTR)
MTBFは動いている時間の平均、MTTRは止まっている時間の平均です。2つを足した時間のうち、MTBFが占める割合が稼働率になります。
次の計算機で、MTBF・MTTRから稼働率を求める計算と、稼働率から1か月・1年の停止許容時間を求める計算の両方を確かめられます。
- 稼働率
- 90%
- 1か月(30日)の停止許容時間
- 3日0時間0分0秒
- 1年(365日)の停止許容時間
- 36日12時間0分0秒
稼働率 = MTBF ÷ (MTBF + MTTR) = 450 ÷ (450 + 50) = 90%
初期値はMTBF450時間・MTTR50時間で、稼働率は450÷500で90%です。計算機は、求めた稼働率に当たる1か月・1年の停止許容時間も同時に表示します。稼働率90%では、1か月30日のうち72時間(3日分)まで止まってよい計算です。
バスタブ曲線は、時間の経過に伴う故障率の変化を表したグラフです。使い始めの初期故障期は故障率が高く、その後の偶発故障期は故障率が低く安定し、寿命が近づく摩耗故障期で再び故障率が上がります。この形が浴槽の断面に似ていることから、この名前で呼ばれます。
直列構成と並列構成の稼働率
複数の装置を組み合わせたシステムの稼働率は、組み合わせ方によって変わります。どちらの装置も動いていないと使えない組み合わせを直列構成、どちらか1台でも動いていれば使える組み合わせを並列構成と呼びます。
直列構成の全体の稼働率は、各装置の稼働率の積です。
直列構成の稼働率 = 稼働率A × 稼働率B
並列構成の全体の稼働率は、両方同時に止まる割合を1から引いた値です。
並列構成の稼働率 = 1 − (1 − 稼働率A) × (1 − 稼働率B)
どちらの式も、装置どうしの故障が互いに影響しない場合の計算です。システムを2組用意して並列構成にする方式の違いは、デュアルシステムとデュプレックスシステムの記事で比べています。
次の計算機で、2台の装置の稼働率を入力し、直列・並列それぞれの全体の稼働率を確かめられます。
- 全体の稼働率
- 81%
全体の稼働率 = 稼働率A × 稼働率B = 90% × 90% = 81%
初期値は、装置A・装置Bとも稼働率90%です。直列構成では0.9×0.9で81%、並列構成では1−(1−0.9)×(1−0.9)で99%になります。同じ2台の装置でも、組み合わせ方だけで全体の稼働率が18ポイント変わります。ELBとAuto Scalingの記事で説明した、複数のEC2インスタンスに負荷分散する構成は、この並列構成の考え方に当たります。ディスクを2台にして同じデータを書くRAIDの構成も、並列構成として計算できます。1台が壊れても動き続けるように作る設計の考え方には、フォールトトレラントやフェールセーフがあります。
SLAとは
SLA(Service Level Agreement)とは、サービスレベル合意書です。事業者と利用者の間で、サービスの内容と合意した性能を定めた文書です。稼働率などの目標値を、事前に数値で約束します。
SLAの中では、約束する目標値をSLO(Service Level Objective:サービスレベル目標)と呼びます。SLOの達成度を実際に測る指標をSLI(Service Level Indicator:サービスレベル指標)と呼びます。稼働率は、SLIの代表的な例の1つです。
Googleが運用の考え方をまとめたSRE本は、SLOをSLIで測る値の目標と定めています。SREでは、顧客と約束しない社内の目標もSLOと呼びます。SREのSLOとエラーバジェットは、SLA・SLO・SLIの記事で計算できます。
ここまでの稼働率の計算方法は、事業者に依りません。各クラウド事業者が約束している稼働率の数値や、達成できなかった場合の補償内容は、事業者が公開しているSLAの文書に書かれています。
稼働率が示すのは、止まらずに使える度合いです。実際に障害でシステムが止まったとき、どこまでデータを戻し、どれくらいの時間で復旧させるかという基準は、BCPとDRの記事で扱うRPO・RTOという別の指標で決めます。
稼働率ごとの停止許容時間
稼働率が99%台でも、小数点以下の桁が1つ増えるだけで、停止許容時間は大きく変わります。1か月=30日と仮定して計算すると、次のようになります。
| 稼働率 | 1か月の |
|---|---|
| 99% | 7時間12分0秒 |
| 99.9% | 43分12秒 |
| 99.99% | 4分19.20秒 |
| 99.999% | 25.92秒 |
稼働率99%は1か月あたり7時間12分まで止まってよい計算ですが、稼働率99.999%になると 1か月あたり25.92秒しか止まれません。稼働率の表記を「ナイン」の数で呼ぶことがあり、99.999%は「ファイブナイン」と呼ばれます。
練習問題(全5問)
正解:稼働すべき
稼働率は、
解説記事:稼働率の
正解:90%
稼働率は、
解説記事:MTBF・MTTRの
正解:81%
直列構成では、
解説記事:直列構成と
正解:99%
並列構成では、
解説記事:直列構成と
正解:SLAは
SLA
解説記事:SLAの
選んでから「採点する」を押すと、解説つきで答え合わせができます。