こんにちは、富士通クラウドダイレクトのMです。
最近、地震や台風などの自然災害が各地で猛威を振るっていますね。備えあれば患いなし、ということで、私は先日自宅の防災リュックの点検をしました。このように日頃から有事に備えておくことは大切ですが、それはシステムも同じです。
災害レベルでなくても、単純なハードウェア障害や従業員のうっかりミスからのセキュリティインシデントなど、障害の要因は日頃から身近に潜んでいます。
システムの停止は顧客満足度の低下や機会損失など、経営に大きな影響が出るリスクがあるため、適切な対策をしておくことが大切です。この対策のポイントとなるのが、有事の際もシステムを止めないよう、「可用性」を考慮したシステムを構築することです。
ただ、注意したいのが、オンプレミスとクラウドでは可用性の考え方が少々異なるということです。そのため、クラウド移行を少しでも検討している場合は、その違いについて事前に把握しておくのがおすすめです。
ということで今回は、オンプレミスとクラウドにおける可用性の考え方の違いについて、ポイントとなる「責任分界点」にも触れつつ解説します。
可用性とは?高可用性を実現する方法
本題に入る前に、そもそも「可用性」とは何か、おさらいしておきましょう。可用性とは、情報セキュリティの3要素であるConfidentiality(機密性)・Integrity(保全性)・Availability(可用性)のうちの1つで、「システムが停止せずに動き続ける能力」のことをいいます。
一般的に「稼働率」という数値で表され、システムが停止する頻度や時間が少ない状態(稼働率が高い状態)は、「高可用性(High Availability)」と呼ばれます。
「冗長化」を基本対策として可用性を高める
では、可用性を高めるためにはどうすればよいのでしょうか?ここでポイントとなるのが、「冗長化」です。
自社でハードウェアを運用管理するオンプレミスはもちろんですが、クラウドであっても、サービスの裏側にはハードウェアが存在します。そのため、クラウドでもハードウェアの故障などのシステムが停止する要因を、完全に排除することはできません。
そこで効果的なのが、故障は発生するという前提のもと、本番稼働しているシステムと同じ構成で予備のシステムをあらかじめ複数用意しておき、有事の際はその予備のシステムに切り替えて運用を継続する、といった構成にすることです。このような対策を、「冗長化」といいます。
どうやって冗長化するのか?
オンプレミスの場合、サーバーやストレージなどのハードウェアや、インターネット回線などを複数用意する、「HAクラスター構成」を組んで冗長化するのが一般的です。これにより、本番運用中のハードウェアに障害時も正常なハードウェアに切り替えられるため、影響を最小限にできます。
この「冗長化」そのものは、オンプレミスであってもクラウドであっても違いはありません。しかし、クラウドの場合はサービスの提供者であるクラウドベンダーとユーザーの間に「責任分界点」が設定されているという点が、注意すべきポイントです。
この責任分界点によって、オンプレミスとクラウドで可用性の考え方に違いが生じるため、詳しく解説します。
「責任分界点」とは?
責任分界点とは、設備などの運用管理について、ユーザーと事業者のそれぞれがどこからどこまで責任を負うのか、その線引きをした場所(境界)のことをいいます。
責任分界点が定められている場合、自分の責任範囲外の領域を操作・変更することはできません。そのため、ユーザーとクラウドベンダーは、お互いの責任範囲に対して手を加えることはできないことになっています。
障害が発生した場合も、責任分界点に基づき、障害の発生個所がユーザーとクラウドベンダーのどちらの責任範囲なのかによって対応が決まります。そのため、可用性対策もユーザーとクラウドベンダーが各自の責任範囲内において実施することが必要です。
ちなみに、こうした責任分界点をもとに役割と責任を分担し、それぞれの範囲で可用性対策などを行うという考え方は「共同責任モデル」と呼ばれ、FJcloud-Vをはじめ多くのクラウドベンダーで採用されています。
サービス形態によって責任分界点も異なる
クラウドにおける責任分界点は共同責任モデルに基づいて区分されますが、正確には以下のようにクラウドサービスの形態(IaaS/PaaS/SaaS)によって境界は異なります。
IaaSを例にすると、データセンターやハードウェアなどのサービス基盤に関する運用管理はクラウドベンダー、仮想サーバーのOSより上の領域(OS、ミドルウェア、アプリケーション)の管理はユーザーの責任範囲です。無論、可用性対策についてもこの責任範囲に基づいて行うことになります。
クラウドにすれば可用性対策の効率化も可能
オンプレミスの場合、ハードウェアからアプリケーションまでのすべてのレイヤーでユーザー側の対策が必要です。そのため、システムを構成するさまざまなリソースをすべて自社で冗長化しなければならず、単純計算でもコストは2倍以上に膨れ上がってしまいます。また、障害時の切り替えや復旧時の切り戻しなど、運用手順も複雑になりがちです。
一方で、クラウドは責任分界点に基づいて対策を考えるため、ハードウェアなどの基盤部分の可用性対策は、クラウドベンダーに任せることが可能です。そのため、すべてを管理しなければならないオンプレミスよりも低コストで効率的に可用性対策を実現できるという点は、大きなメリットです。
クラウドベンダーが行っている可用性対策
「クラウドなら、責任分界点をもとに可用性対策をクラウドベンダーと分担できる」といった説明をしてきましたが、ではクラウドベンダーは、各々の責任範囲となる部分の可用性向上に向けてどのような対策を行っているのでしょうか?
例えばFJcloud-Vの場合は、次のような対策を行っています。まず、サーバーやディスク、ネットワークなどの機器については、すべて完全二重化(冗長化)しています。特に、ストレージについてはRAID6相当の冗長化を行っています。そのため、FJcloud-V側でのメンテナンス時にお客様の仮想サーバーを停止することもありません。
また、万が一お客様の仮想サーバーを搭載した当社のデータセンターの物理サーバーが故障した場合、約5分以内にほかの物理サーバーへ切り換わり再起動される「自動フェイルオーバー(HA)機能」を標準実装しています。これにより、データや現在設定されているIPアドレス、付替IPアドレスなどは引き継がれるため、停止時間を最小限に抑えることが可能です。
なお、具体的にどのような範囲でどういった対策がされているかは、クラウドベンダーごとに異なる可能性があります。クラウドの導入を検討している場合は、自社のシステムが必要とする可用性の要件を、クラウドベンダーが提供する機能・サービスで満たせるかどうか、事前によく確認しておくこともポイントです。
さいごに
今回は責任分界点をもとに、オンプレミスとクラウドにおける可用性の考え方の違いについて解説しました。
前述のとおり、クラウドベンダーは責任分界点に基づき、可用性を高めるためにさまざまな対策を行っています。しかし、自動フェイルオーバーなどによりクラウド上に構築したシステムが瞬間的に停止することがあります。
基幹システムのようなわずかな停止も許容できないシステムのクラウド移行を検討している場合は、各クラウドベンダーが提供する機能やミドルウェア、アプリケーションの機能を使って、ユーザー側でもさらなる対策が必要です。
では、どのように対策すればよいのでしょうか?その点については以下のホワイトペーパーで解説をしていますので、ぜひ参考にしてみてください。