可用性とは?
可用性とは、なんらかの障害が発生しても安定してサービスの提供を維持でき、ユーザが使いたい時に問題なく利用できるかを示す指標のことです。
第三者にアクセスされない「機密性」、データの破損・改ざんのされにくさを表す「完全性」と合わせえて情報セキュリティマネジメントにおける3要素のうちの一つとなっており、品質を判断する一つの基準として用いられます。
昨今、企業経営におけるリスクを最小限に抑えるようBCP対策や災害対策の一環として、可用性が重視されるようになりました。
情報セキュリティの3要素
情報セキュリティは機密性・完全性・可用性の3要素が基準となっており、この3要素をそれぞれの頭文字から情報セキュリティの「CIA」といわれることもあります。
可用性の判断対象
可用性は、そのシステムを構成するハードウェアやネットワーク、アプリケーションなど、あらゆる要素を総合して評価されます。
可用性が高い状態を高可用性(High availability,HA)といいます。
可用性と信頼性の違いは?
信頼性は「壊れにくさ」の指標
信頼性(Reliability)は、機器やサービスの壊れにくさを示す指標です。平均故障間隔(分)で評価し、この値が大きいほど信頼性が高いことになります。
可用性は「利用したい時にできるか」の指標
可用性(Availability)は、前述したように使いたい時に使えるかを示す指標です。稼働率(%)で評価し、この値が大きいほど可用性が高いことになります。
可用性と信頼性の違いを具体例で示すと?
ここまでの説明のとおり、信頼性と可用性は似ているようで全くの別物です。
より明確にするため、具体例を挙げてみます。
(例)
「1000時間故障せず、正常に稼働するが、故障すると1000時間使えない機器A」と、「12時間故障せず、正常に稼働するが、故障すると12時間使えなくなる機器B」があるとします。この場合、それぞれの信頼性と可用性は以下のようになります。
機器A
平均故障間隔:1000時間→信頼性高い
稼働率:50%→可用性は低い
機器B
平均故障間隔:12時間→信頼性低い
稼働率:50%→可用性はユーザの利用時間による
機器Bの故障間隔が12時間であるのに対して機器Aは1000時間であるため、機器Aの方が信頼性が高いといえます。なぜなら、一度稼働し始めれば1000時間は正常に稼働してくれるからです。
一方で、稼働率はどちらも50%となっています。しかし、両者の可用性が同じというわけではありません。
なぜなら、たとえば、もし機器Bの壊れる時間帯が18時から6時だったとして、ユーザが機器Bを利用したい時間帯が9時~17時であれば全く問題なく、可用性は100%となります。
逆に、ユーザが機器Bを利用したい時間帯が18時~10時だとしたら、可用性は25%となってしまいます。
可用性を上げる「冗長化」
また、可用性を上げる方法も存在します。
それが「冗長化」という方法です。
冗長化とは、不測の事態に備えて予備を用意しておくことで、何かトラブルが発生した場合でも安定稼働を維持させるという狙いがあります。
たとえば、50%と可用性の低い機器Aですが、同じものをもう1台用意し、それらを交互に稼働させるとどうでしょうか。全体としては常に使える状態になっているため、可用性は100%と高くなります。このように、稼働させる機器を2台以上組み合わせることで、それ単体では信頼性の低い機器でも全体の可用性は高められます。
「RASIS」や「RAS」
可用性と信頼性はしばしばRASISや RASというようにくくられます。
これはシステムが期待された機能や性能をどの程度発揮できるかを評価する指標として代表的なもの5つを各評価指標の頭文字を並べたもので、「RAS」は定量的なもので「IS」については定性的なものになっています。
特に最初の「RAS」のは重視される傾向にあり、評価指標として用いられる場合も多くあります。
R(Reliability):信頼性
稼働の停止や性能低下の発生の頻度を表す指標で、平均故障間隔で表されることが多いです。
A(Availability):可用性
ユーザ稼働が期待される時間に対して実際に稼働した時間の割合で表す場合が多いです。
S(Serviceability)保守性
障害復旧やメンテナンスのしやすさを表す指標で、障害発生から復旧までの平均時間で表す場合が多いです。
I(Integrity):保全性または完全性
データの破壊や改ざんの起こりにくく、データの完全性の保てるかを表す指標です。定性的な評価となるため、数値で評価することはできません。
S(Security):機密性
第三者による不正アクセスのされにくさを表す指標です。定性的な評価となるため、数値で評価することはできません。
可用性を低下させる要因は?
可用性が下がることで、信用や信頼を失うのに加え、売り上げや機会損失につながってしまいます。では、可用性を低下させる原因は何なのでしょうか。
アクセスの集中
アクセスが集中すると1台のサーバでは処理しきれなくなり、サーバダウンによって可用性が下がってしまいます。予備サーバを導入して負荷分散するのが有効です。
災害
地震や落雷、洪水などの災害によってハードウェアが物理的に壊れると稼働しなくなります。この場合、バックアップしておらず、ゼロから環境するとなると復旧に長い時間を要します。BCP対策の一環としてぜひとも取り組みたい内容です。
稼働サーバとは別のサーバを用意し、リアルタイムでデータを同期・複製する「レプリケーション」を実施し、別のデータセンターやクラウドなど、稼働サーバとは物理的な距離がある場所に設置しましょう。
サイバー攻撃
DoS攻撃、DDoS攻撃、ランサムウェア攻撃などのサイバー攻撃の被害に遭った場合でも、復旧に時間がかかり、可用性が下がってしまう可能性があります。
予備サーバも感染している可能性が高いため、対策としては複数世代のバックアップデータを取得しておくことやセキュリティ対策を強化しておくことです。
可用性の高め方は?
銀行や医療分野など、多くの人の生活に大きく影響し、ライフラインとなっている分野では特に可用性を高める必要があります。また、通信を司るデータセンターやサーバに関しては、24時間365日体制で稼働することが前提で、たとえ数時間・数分使えない状態にあると大きな問題となってしまいます。
可用性を高めるには、先述したように冗長化や、そのほかにもいくつか方法があります。
ハードウェアを冗長化する
予備のハードウェアを用意することでメイン系統に何らかのトラブルが発生した場合に代わりに稼働する手法です。
冗長化には以下の2種類が存在します。
アクティブ・スタンバイ構成
アクティブ・スタンバイ構成は、同じハードウェアを2台以上用意し、一つを稼働させ、それ以外を待機させる仕組みです。
切り替え(フェイルオーバー)やデータの同期(リストア)に時間がかかる場合もありますが、運用コストは抑えられます。
アクティブ・アクティブ構成
アクティブ・アクティブ構成は、同じハードウェアを2台以上用意し、すべてを常時稼働させる仕組みです。こうすることで負荷が分散され、トラブルの発生リスクを軽減でき、そのうちのどれかでトラブルが発生した場合でも、ほかのハードウェアで処理できます。
リージョンやゾーンを分ける
クラウドサービスを利用する場合は、データセンターの設置エリアを分けることで万が一、特定のデータセンターが停止した場合でも稼働を止めずに済みます。
単一障害点を作らないようにシステムを設計する
単一障害点とは、ある一箇所に障害がおこり、停止すると全体が稼働停止してしまう箇所のことです。このような単一障害点を作らないよう設計するのが重要です。
また、ハードウェアを信頼性が高いものにしたり、定期的なメンテナンスをするという方法もあります。
ITスキルを習得するには?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。