RubyのPaaS(Platform as a Service)として有名な「Heroku」による障害報告ページの要約を翻訳したものです。2011年4月21日にAmazon EC2をはじめとするAWS(Amazon Web Services)の各サービスにて大規模な障害が発生しました。AWSを利用したサービスは多く、Q&Aサービスの「Quora」や位置情報連動ソーシャルサービスの「Foursquare」など、有名どころが次々に利用不可能になるなどの問題が発生しました。そしてHerokuも例外に漏れず、最大3日間以上に渡って提供機能に影響を及ぼしてしまいました。この障害の詳しい経緯について、「Amazon側を責めるつもりはなく、Herokuに100%の責任がある」ことを前提に説明しています。
最初に監視システムからのアラートにてAWSにエラーが起きていることに気づきました。EC2の復旧を試みたところ、データベース用途に利用しているEBS(Elastic Block Store)についてもおかしな挙動になっていることがわかり、長い間復旧しなかったことでデータベースを利用する多くのアプリケーションが実質的に利用不可能な状態が続きました。障害が起きている間、Herokuのスタッフは24時間体制で復旧に取り組み、障害報告ページに状況を更新していきました。
Herokuは、今回の大規模な障害を経験したことで次の点について学んだと述べています。
- 可用性の点において複数リージョンへの分散を行うべき
- EBSは物理的な場所に依存するためクラウド向きの技術ではない
- すべてのデータベースに対して連続的にバックアップをとる
今回のAWSの障害や3月に起きた震災により、世間ではシステムを複数のリージョンに分散させるBCP(Business Continuity Plan)への関心が高まってきています。費用対効果のバランスを念頭に置きつつ、いつどんな事態が発生したときにシステムがどうあるべきかについて考えるよい機会ですし、Herokuのこのような情報を公開する姿勢について見習う点は多いです。
URL:http://journal.sooey.com/130