本記事は、 Cyber Trus ブログ “ The Importance of Planning for Services Failure in the Cloud ” (2012 年 9 月 21 日公開) を翻訳した記事です。
クラウド サービスに関して言えば、サービス障害は起こるもので、生じるかどうかという問題ではなく、いつ生じるかという問題だと思っています。事態が複雑になるほど、障害を想定したり予測することが難しくなります。そのため、信頼を構築してお客様との長期的な関係を維持するためには、障害に耐えうるサービスを設計し、サービスを速やかに復旧させるためのプランを整えておくことが極めて重要です。
私の経験上 (英語)、基本的にクラウド サービスの障害の主な原因には、次の 3 点が挙げられます。
- 人為的なミス
- デバイスやインフラストラクチャの障害
- ソフトウェアの脆弱性
こうした障害は必ず起こるものと想定する一方で (実際、上記の 3 つは恒常的な脅威です)、過去の記事 (英語)で説明したような組織の目標を堅持していれば、自ずとサービス障害に備えることがいかに大切かが見えてきます。クラウド サービス プロバイダーは、障害が起きたときのお客様への影響を最小限に抑えるために万策と尽くす必要があります。
復旧指向コンピューティング (ROC) (英語) では、上記の 3 点に起因する潜在的な問題を軽減するためにクラウド サービスの設計および実装に適用される研究分野として、次の 6 つを定義しています。
- 復旧プロセスの訓練: 開発時と実運用時の両方で、復旧プロセスの訓練を日常的に実施して修復メカニズムをテストする。
- 診断補助: 診断補助を使用して障害の根本的な原因を分析する。
- 障害ゾーン: クラウド サービスを障害ゾーンに分離して障害を封じ込め、速やかに復旧できるようにする。
- 自動ロールバック : 運用のさまざまな面で自動ロールバックが実行されるシステムを構築する。
- 多層防御: 多層防御アプローチを採用して、障害が最初の保護層に隔離されなくても、封じ込められるようにする。
- 冗長性: システムに障害を乗り切る冗長性を構築する。冗長システムが障害を速やかに検出し、復旧中はその障害を隔離する FailFast コンポーネントを設計する。
サービスの信頼性に関する最近のホワイトペーパーをダウンロードして、これらの信頼性のトピックの詳細を確認することをお勧めします。
デビッド・ビルズ 信頼できるコンピューティング、信頼性主任ストラテジスト