皆さん、こんにちは! 富士通クラウドダイレクトの中の人Sです…。
先日一瞬で終わった某航空会社の一律¥6,600キャンペーンが再開するというニュースを見て、前回の失敗に対し技術的にどのような対策をしたのか気になって気になって仕方がないですが、皆さんはどうでしょうか?
前振り通りに、今回は「落ちないシステムの作り方」というテーマについて駄文を開陳します。
そもそもシステムが落ちるって何なの?
「システムが落ちる」「サイトが落ちる」という概念は、エンジニアではない一般の皆様でも雰囲気はわかっているけど、裏で何が起こっているかは実は判っていないのでは?
つまり、システムが落ちるに至った原因って実際のところ何?という話になります。
金融庁の「金融機関のシステム障害に関する分析レポート(PDF)」によると、このようなデータがあります。
「システムが落ちる」原因はさまざまですが、ソフトウェア障害とオペレーションミスが過半数を占めているようです。ハードウェア障害がもっと多いのかと思っていました。。
当初の予想よりも多くの利用者が殺到することを想定して、準備していたシステムの冗長構成が機能しなかったり、障害復旧手順・体制の不備で結局のところ待機系に切り替えることが出来ずに「落ちてしまう」というパターンも多いようです。
「落ちないようにする」=「システムが稼働し続ける状態を維持する」ということですが、情報セキュリティ的には、「可用性が高い」状態と言い換えられます。
可用性の概念
可用性(availability)とは、「システムが動き続けることができる能力」を指します。
情報セキュリティの3要素であるConfidentiality(機密性)、Integrity(保全性)、Availability(可用性)の1つです。
・・・などと、よどみなく語れるようになると、「この人なんかすごい?」とマウントを取ることができるようになるかもしれません。
すなわち、システムの可用性を高める方法を考えれば「落ちないシステムの作り方」につながるはずです。
可用性について、詳しくはこちらの記事を読んでみましょう。 pfs.nifcloud.com
可用性を高める方法
可用性を向上させるためには、単一障害点(Single Point Of Failure、その部分が停止するとシステム全体が停止してしまうようなポイント)の排除もしくは極小化するのが基本です。
本番稼働しているシステム(本番系)と同一構成の予備のシステムを複数用意しておき、万が一の障害発生時には待機している予備のシステム(待機系)に切り替えることで、サービスが停止している時間を極小に抑える対策などが考えられますが、こうした対策を「システムの冗長化」と呼びます。
このあたりは、物理サーバーを使用したシステムでも、クラウドでも基本的な考え方は変わりません。
サーバー、ストレージ、ネットワークなど、システムを構成する要素を、ハードウェア的に冗長化するかソフトウェア的に冗長化するかの違いです。
ただし、クラウドにおいては、複数のリージョンやゾーンという概念を利用することで、より高度な冗長化が可能という点は大きな違いがあります。
下記はニフクラ(FJcloud-V)における方法論になりますが、どのようなクラウドサービスでも基本的な考え方はおおむね同じです。
落ちないシステムの作り方って
あらゆるシステムにおいて、「サービスを止めたくない」「落ちないようにしたい」というのは誰もが望んでいることだと思います。クラウドは一般的に可用性が高いと認識されていますが、それでも多くのクラウドサービスで大規模な障害が発生していることでもわかるように、システムの障害を完全に防ぐことは出来ません。
可用性を意識したシステム構築を考えるのはもちろん、障害は発生してしまうという前提で「障害に強いシステム」にする方法を考える必要があります。
話が長くなりましたが、そういった「障害に強いシステムを作るための基礎知識」を、初心者エンジニアが学べる勉強会をご用意しています。
4月19日(水) 20:00~の開催になります。
下記のようなセッションをご用意しています。
『落ちないシステムって何?可用性の基本と仮想環境での可用性の高め方 』
『「落ちないシステム」実現に向けてアプリ開発でできる事って何だろう?』
『サービス依存度の高い環境でも安定稼働するポータルサイトの作り方』
『月1億PVのニュースサイトを落とさない技術』
※国産クラウド ニフクラ(FJcloud-V)の中の人や、ポータルサイト@ニフティの中の人が登壇します。
是非、お越しください。
最後に宣伝です。
FJcloud-V無料トライアル実施中!
ぜひ、この機会に国産クラウドFJcloud-Vをお試しください。
こちらをクリック↓↓↓↓↓↓↓