【情報Ⅰ#30】可用性(情報セキュリティの3要素)とは?|情報1動画教科書、勉強方法【高校授業・共通テスト対策】

  • 前回は完全性について解説しました。
    完全性とは、データが改ざんされず、正確な情報が保たれているということです。
    完全性の説明として、インターネット上の通信において改ざんされていないことを証明する「デジタル署名」を例に挙げて説明しました。
    本日は情報セキュリティの3要素の最後の1つである、可用性について、詳しく解説していきます。

①可用性とは

  • 可用性とは、情報やサービスをいつでも使える状態にしておくことです。
    例えば、TwitterやFacebookなどのSNSは24時間365日使うことができます。
    当たり前のように思うかもしれませんが、このような世界中で何億人というユーザが利用しているサービスを常に稼働し続けられるのは、とても凄いことなのです。
    また、火災や地震などによる停電が起こった際でも、サービスが稼働し続けられるように対応しておくことも重要です。
  • 今回はこの可用性がテーマなのね。
  • 情報セキュリティと言うと、安全に守るということばかりが重視されがちですが、情報を使った様々なサービスをいつでも使えるようにしておくということも、利便性を考える上では重要です。
    インターネットの出現によって、様々なサービスがいつでも使えるようになりましたね。
    昔は、映画やドラマを観たいときには、TSUTAYAなどのレンタルショップに行き、DVDを借りてこなければならず、一週間などの期限内に見て返却しなければなりませんでした。
    当然お店もいつでも開いているわけではなく、朝の10時から夜の10時くらいまでしか開いていませんので、その時間に間に合うように行く必要があります。
    ところが今は、Amazon PrimeやNetflixなどの動画サービスにより、いつでも好きな映画やドラマが見られます。
    私達は普段、それらサービスを当たり前のように使っていますが、インターネットのサービスには様々なことが起こります。
    例えば、多くの人が注目するサッカーワールドカップの試合を動画配信する際には、その試合が行われる時間に膨大なアクセスが瞬間的に集まります。
    しかも、生のスポーツ中継ですから途切れることなく、多くの人に動画データを届けなければなりません。
    また、このようなイベント的なアクセス集中だけでなく、悪意のある者によるDos攻撃と呼ばれるアクセス集中にも耐えなければなりません。
  • Dos攻撃って、フィッシングの問題動画で出てきたよね?
    どっきりレベルで多いさまざまな攻撃の略だっけ?
  • Denial of Service Attack(ディナイアル・オブ・サービスアタック)ですね。
    Dos攻撃とは、プログラムによって特定のWebサイトやサービスに対し、異常なアクセス集中を行い、意図的に過剰な負荷をかけてサーバをダウンさせる行為のことです。
    例えると、小学生がいたずらで他人の家のインターホンを押して逃げるピンポンダッシュや、SNSで炎上したお店に電話をかけまくる電凸に似ています。
    それを何百人、何千人で一斉に行うようなものです。
    また、サーバも機械なので、当然壊れたり、調子が悪くなることがあります。
    さらには地震などの天災によって停電が起こったときのことも考えなければなりません。
    このように「情報セキュリティに影響を及ぼすかもしれない予期しないトラブルや外部からの攻撃」のことをインシデントといいます。
    可用性とは、これらのインシデントに、いかに備えて、耐えて、何事もなかったかのようにサービスを提供し続けられる性能のことを言います。

②可用性を高める仕組み

  • では、どのようにして可用性を維持しているのかを次に説明します。
    ここでも身近な例を挙げて説明すると分かりやすいので、ラーメン屋のサービスを例にしてお話しましょう。
  • また、ラーメン?好きだねぇ。
  • はい、なかのりPGの身体の半分はラーメンでできているといっても過言ではないと言っていました。
    ラーメン屋では、いつどのくらいのお客さんが来るかわかりません。
    閑散としている時間帯もあれば、突然テレビで紹介されて、急に多くの人が来店するといったことも想定しておかなければなりません。
    また、シフトに入っていたスタッフが突然病気で来られなくなってしまったとしても、店を閉めるわけにはいきません。
    そのような場合にどうするかと言うと、出勤予定でなかったスタッフに急遽連絡して来てもらって対応します。
    インターネットで突然膨大なアクセスが押し寄せたときにも同じようにします。
    ラーメン屋では人でしたが、インターネットではサーバを増やすことで対応します。
    分かりやすく言うと、1台のサーバで1000/秒アクセス耐えられる場合、5000/秒アクセスが来たら、5台のサーバを用意すれば対応できますよね。
    このように、アクセス集中時に複数のサーバを用意して負荷を分散させる仕組みのことを、クラスタリングと言います。
  • また新しい用語・・・
  • このクラスタリングの良いところは、負荷を分散させられるだけでなく、1台のサーバが突然の故障などで調子が悪くなったとしても、他のサーバで稼働し続けられるといったメリットもあるのです。
    このように、あらゆるインシデントにおいても、システム全体の機能を維持し続けられるように、予備装置をバックアップとして配置し運用しておくことを、冗長化といいます。
    冗長とは、「無駄話が多く長たらしいこと」というネガティブな印象がありますが、可用性を考慮する中では非常に重要な考え方なのです。
    ラーメン屋にスタッフが3名いたとして、その3名に同じ仕事をさせるよりも、それぞれに役割分担させて、仕事をさせたほうが効率が良いですよね?
    例えば、ホール、キッチン、現場監督といった感じです。
    インターネットのサービスでも、アクセスを受け付けてそれに応答するサーバ(Webサーバ)、膨大なデータの入出力を行うサーバ(DBサーバ)、画像や動画の保管や管理を行うサーバ(イメージサーバ)など役割が分かれており、これによって効率よく処理を分散しています。
    このように本来1台で行うものを負荷分散のために3台で行っていることも冗長化の一つと言えます。
    また停電などにより、電気が止まってしまった場合。
    サーバを多くの企業に貸し出している、レンタルサーバ会社では、そのようなインシデントに対応できるよう自前の蓄電所を備えていて、1日か2日程度は電気の供給が止まったとしても、稼働し続けられる電力を保持しています。
    この蓄電に関しても、インシデントが起こらなければ全く必要がないので、これも冗長化の一つと言えます。
    日本だと、地震も心配ですよね。
    地震により停電だけでなく、サーバを保管しているデータセンター自体の稼働が止まってしまった。
    そのような場合に備え、レンタルサーバ会社では、日本の複数都市にデータセンターを構えています。
    例えば、北海道で大きな地震があって、データセンター自体の稼働ができなくなってしまった場合にも、もう一つの拠点である東京で稼働できるようにしているのです。
    この複数拠点に関しても、本来北海道だけでよいデータセンターをインシデントのために東京にも作っているという点で冗長化の一つと言えます。
    このように、企業活動においては、インシデントに備えてあらゆる冗長化を行い、可用性を確保しているのです。

③稼働率

  • はいはーい。
    そこまでして可用性を確保する必要なんてあるの?
    サービスが1日くらい使えなくたってそんなに困らないと僕は思うけどな。
  • では、ここで稼働率についてお話します。
    稼働率とは全時間帯で稼働している時間の割合のことです。
    例えば、私がよく使うスーパーは朝の10時に開いて、夜の10時に閉まります。
    24時間のうち、12時間サービスを提供していますので、稼働率は50%となります。
    では、レンタルサーバー会社のデータセンターではどのくらいの稼働率かご存知ですか?
    実は99.9%を保証しています。
    保証しているということはどういうことかと言うと、この99.9%の稼働率が達成できなければ、レンタル料の返金を行うことを約束しています。
  • すごいサービスだね。
  • ここで考えてほしいのは、年間で稼働率99.9%がどういうことかということです。
    稼働していない0.1%がどのくらいの時間かというと、365(日)×24(時間)=8760(時間)。
    8760(時間)×0.1(%)=8.76(時間)。
    つまり稼働率99.9%を達成するには、年間で8時間くらいしか止められないということです。
    逆に言うと8時間は止まっても良いということになります。
    大手ショッピングサイトの場合、1時間サービスが止まるだけでも1000万円くらいの損失が出ると言われていますから、99.9%の稼働率であっても、年間約1億円の機会損失が発生するということなのです。
    可用性を高くするということがいかに大事かということを改めて理解してほしいと思います。

まとめ

  1. 可用性とは、情報やサービスをいつでも使える状態にしておくこと。
  2. どのようなときでもシステム全体の機能を維持し続けられるように、予備装置をバックアップとして配置し運用しておくことを冗長化と言う。
  3. 可用性を測る指標として稼働率があり、高い稼働率を達成するために様々な冗長化を行っている。