hogehoge
7月 222009
hugahuga
システム創造事業部
浅野 祐希

asano2.jpg

今日は、クラウドとディザスタリカバリのおいしい関係について考えてみたいと思います。

あの東日本を襲った大地震の後『ディザスタリカバリ』という言葉をよく聞くようになりましたね。

ディザスタリカバリとは「災害時の復旧」や「大規模システム障害」などの運用ができなくならないように、復旧や対策からシステムを回復させたり、予防させる事をいいます。

序章

4月に開催された「アマゾン・ウェブ・サービス クラウド・アドバンテージ・セミナー」ではAWSジャパンの玉川さんセッションでは、震災後に企業の合言葉で「夏までに作れ」というのが流行ったそうです。今までは、クラウドを使うと今までより安くなるからという理由で企業は検討を導入していたケースが多かったそうですが、本来のクラウドの特性を活かした導入推進に変わってきているとのお話されてました。

これは、すごいことだと思います。

  • 「ブレードを導入すると…」
  • 「アジャイルを導入すると…」
  • 「仮想化を導入すると…」

に通じる所があって、コストで判断するだけでなく、各特性を活かしてこその導入だと思います。きっかけというのは大事なもので、クラウド化に拍車がかかり当社も震災日の数日後に一部の社内インフラをクラウドに移行しました。

激震の再来

AWSやVPSなどのクラウド環境を提供しているサービスに一気にユーザがなだれ込んだけ結果。一部のVPSではリソースが足りず申し込み待ちの状態になります。

そんな中、4月の末にAWSの米国東リージョンに大規模障害が発生してしまいました。簡単に説明しますとデータを永続化するEBSに障害が発生しEC2とクラウド型RDBサービスRDSにまで影響しました。詳細な障害内容は下記レポートをご参照下さい。

米国東リージョンにおけるAmazon EC2とAmazon RDSのサービス障害の概要 (参考和訳)

http://aws.amazon.com/jp/messages/65648/

今回のAWSの障害はユーザ数が増えた事(トラフィック)とは直接的に関連せず、特定の障害が連鎖して大きなシステム障害至ってしまいました。AWSほどのSLAを誇るサービスでも、障害は発生するのだというのを身近なスマートフォンアプリやサービスが実はAWSを使っていて、使用できなくなった方は身に染みて体感したのではないでしょうか?

天変地異でデータセンターやサーバールームが使えなくなる事もあれば、大規模障害でクラウドサービスでも使えなくなってしまう事があります。

ディザスタリカバリに備えるには

AWSではリージョンごと(異なるデータセンターと思って頂ければ)サービス提供しています。複数リージョンにまたがってシステムを構成すれば、今回のように特定のリージョンでサービスを維持して提供ができることでしょう。そういう事を想定して複数のリージョンが提供されていますし、RDSでは複数のAvailability Zoneを利用したMulti-AZという最新のデータベース更新を保護しながらデータベースの可用性担保できる仕組みが供されています。AWSのサービスだけでなく、例えば、分散KVSのデータストアである「Cassandra」も複数のリージョンやAvailability Zoneに設定で分散できるように作れています。

これで、クラウドにだけ移行すれば「ディザスタリカバリに備えた事になる」とは言えない事が簡単にわかりますね。

上記のサービスや利用すればこれで完了でしょうか?

いえまだです。

私が考えるベターな対応

ここからは、システム規模・好み・完璧性・コスト・手間のバランスになりますが、こんな対応がいいのではないでしょうか。

ハイブリッド型
  • クラウドサービス + オンプレミス

企業に向いているタイプでは。プライベートクラウドとパブリックグラウドを組み合わせます。サービスをクラウドとオンプレミスの双方で提供する場合、クラウドが落ちた時にどのようにオンプレミスで継続させてサービスできるように切り替えれるようにするかということを予め色々と考えておく必要がありますね。

マルチクラウド型
  • AWS
  • Heroku
  • Rackspace
  • 他多数のPaas・Iaas

クラウドサービスのいい所はインフラ管理がとにかく楽なところですね。勘所がわかってくると手放せなくなります。ですが、特定のクラウドサービスだけ利用していると、リスクが高くなります。そういう時に、RightScaleのようなマルチクラウドマネージメントサービスを利用したり、同じような管理の仕組みを作ったりする事ですね。

サーバーテンプレートのような仕組みはとても便利で、1度書けば1台でも10台でも管理・構築が簡単にでき、マルチクラウドを意識したデプロイやサーバーテンプレートを作っておけば、リカバリ時にも役立ちますね。マルチクラウドを扱う事はリスクは減りますがコストが増大するので、信頼できるクラウドサービスであれば事前にリージョンを活用する例でほとんど事足りてしまうのです。

依存が嫌なのですよ。というケースや複数環境で動くようなシステムを意識するような人には向いているのかもしませんね。

まとめ
  • クラウドは便利だけど過信は禁物
  • 最低限の可用性は考えておこう
  • 方法は色々ある
    • サービスや会社など特性にあわせて整えよう
  • クラウドはおいしいよ

AWSとGAEを筆頭として日々進化しているクラウドプラットホームですが、クラウドの特性を活かすとコストやリスクを減らすだけでなく、すごく楽しいシステムが作れます。活用できそうなケースがあれば、波にのって色々なサービスで利用してみるといいと思います!

当社サイトのご利用について  |  Image: scottchan / FreeDigitalPhotos.net
© 2012 アジャイル開発 | Enterprise Java | 株式会社アットウェア Suffusion theme by Sayontan Sinha