クラウド障害は、どの組織にとっても悪夢になり得ます。重要なアプリケーションやデータをクラウドでホストしている場合、予期せぬ障害によってビジネスが停止する可能性があります。クラウドプロバイダーは高可用性と稼働時間の確保に大きく前進してきましたが、障害は依然として現実に起こります。
その最もよく知られた例は、Amazon Web Servicesが2021年12月7日にインターネットを停止状態にしたことです。Associated Press、Netflix、PayPal、Shopify、Disneyなどの大手企業を含む複数の組織が影響を受けました。障害の復旧に5時間を要したためです。不幸にも、AWSではその月にさらに2件の障害が発生しました。
CloudOpsにプロアクティブなアプローチを取り、クラウド障害から組織を守る方法を紹介します。
リスク軽減策
Uptime InstituteがデータセンターおよびIT管理者を対象に実施した2020年の調査によると、回答者の半数以上が、障害によって少なくとも10万ドルの損失が発生したと回答し、3分の1は単一の障害で少なくとも100万ドルの損失を被ったと報告しています。障害のコストが高額になり得ることは明らかです。
しかし、障害のリスクを軽減するための計画をあらかじめ用意しておけば、クラウド障害のコストを最小限に抑えられます。実施できる対策には、次のようなものがあります。
高可用性クラスタアーキテクチャ
このクラウド管理アーキテクチャでは、複数のサーバーでアプリケーションとデータをホストします。そのため、1台のサーバーが停止しても、ほかのサーバーが処理を引き継げます。このアプローチは、ダウンタイムが許されないミッションクリティカルなアプリケーションでよく使われます。
この戦略には、次の4つの要素があります。
- ロードバランシング:クラスターノード間でクライアントからのリクエストを均等に分散するため、慎重に計画され、事前に設計されたロードバランシングの仕組みを用意することが不可欠です。ロードバランシングの仕組みには、フェイルオーバー手順を指定しておく必要があります。
- データのスケーラビリティ:クラウドアプリケーションは自動的にスケールできるよう設計し、必要に応じてインスタンスを増減できるようにする必要があります。1つの方法は、中央データベースを使用し、レプリケーションまたはパーティショニングによって高可用性を実現することです。別の方法として、各アプリケーションインスタンスに独自のデータストレージを持たせることもできます。
- 地理的分散:クラウドプロバイダーは世界各地にデータセンターを保有しています。複数のデータセンターを持つプロバイダーを利用すれば、アプリケーションとデータを複数の場所でホストできます。さらに、このアプローチは、自然災害など、単一のデータセンターに影響を及ぼす可能性のある事象による障害の防止にも役立ちます。
- バックアップと復旧:クラウドでホストするアプリケーションとデータについて、バックアップおよび復旧計画を用意することが不可欠です。これには、プライマリーデータとは異なる場所に保存する定期的なバックアップと、検証済みの災害復旧計画を含める必要があります。
マルチクラウド環境とハイブリッドクラウド環境も、単一のクラウドプロバイダーで障害が発生した場合に高可用性を実現する方法です。複数のクラウドプロバイダーを利用すれば、アプリケーションとデータを複数のデータセンターや場所でホストできます。
潜在的な障害や攻撃に対するインフラの耐性を定期的にテストする
潜在的な障害や攻撃に対するインフラの耐性を、定期的にテストすることが不可欠です。どの組織のインフラにも定期的な変更が加えられますが、それは単に新しいサーバーを追加するだけとは限りません。
こうした変更には、新規ユーザーの獲得、新たな接続の構築、新しい認証方式の導入なども含まれます。これらはいずれも攻撃対象領域と潜在的な攻撃の数を増加させます。分散型サービス拒否(DDoS)攻撃、コードインジェクション、インフラの脆弱性を悪用するその他の攻撃などがその例です。
インフラテストには、次の2種類があります。
- 内部ペネトレーションテスト:これらのテストはセキュリティチームが実施し、組織の内部システムとネットワークを対象とします。悪意のある内部関係者や、ネットワークへのアクセス権を得た外部者に悪用される可能性のある脆弱性を特定します。
- 外部ペネトレーションテスト:これらのテストは外部のセキュリティ企業が実施し、組織の外部公開システムとネットワークを対象とします。
詳しく読む:ペネトレーションテストと脆弱性テストの違い:重要なポイント
インフラテストを実施する際の一般的な手順は、次のとおりです。
- テスト用リソースを調達する:効果的なインフラテストを実施するには、適切なツールが必要です。これには、最新の攻撃ベクトルや脆弱性へのアクセスと、さまざまな脆弱性テストツールが含まれます。
- 脅威モデリング:このステップでは、保護対象の資産と、それらが直面する脅威を特定します。これにより、実行すべきテストの優先順位を付け、どの資産が最もリスクにさらされているかを判断できます。
- 優先順位、除外対象、依存関係を設定する:すべてのシステムと資産が同等に重要というわけではありません。そのため、まず優先順位を設定して最も重要なシステムに焦点を当て、テスト対象から除外するシステムや資産、ほかのシステムをテストする前にテストしなければならないシステムを決める必要があります。
- テストを実施する:特定した脆弱性の悪用を試みる、実際のテスト段階です。
- 報告と分析を行う:テストが完了したら、調査結果を詳しく記載した報告書を作成する必要があります。この報告書には、見つかったすべての脆弱性の一覧と、その修正方法に関する推奨事項を含める必要があります。
- 脆弱性の除去について相談する:すべての脆弱性を、パッチのインストールや設定の更新だけで修正できるとは限りません。場合によっては、脆弱性を最も効果的に除去する方法について専門家に相談する必要があります。
- 脆弱性が正しく除去されたことを確認する:適切な方法で露出を解消し、正しく除去されたことを確認します。再度テストを行うか、攻撃の兆候がないかセキュリティログを確認します。
3-2-1バックアップ戦略
この概念は、クラウド障害が発生した場合にデータを保護するのに役立つ、実績のある重要なバックアップ戦略であり、米国政府が推奨しています。基本的な考え方は、データのコピーを3つ作成し、2種類の異なる媒体に保存して、そのうち1つをオフサイトに置くことです。
この戦略にはほかにもバリエーションがありますが、重要なのは、データのコピーを少なくとも3つ作成し、異なる場所に保存することです。たとえば、1つをローカルサーバー、1つをリモートサーバー、もう1つをクラウドに保存します。
クラウドベースのバックアップを利用する場合のベストプラクティスは、次のとおりです。
- 復旧目標を理解する:これは、あらゆるバックアップ戦略における最初のステップです。何を、なぜ保護しようとしているのかを理解する必要があります。このアプローチにより、どのシステムとデータが最も重要かを判断できます。
- 組み込みの冗長性:これはあらゆるバックアップ戦略に不可欠ですが、クラウドベースのバックアップを利用する場合は特に重要です。個々の障害が発生しても、アーキテクチャ内に代替手段がなければなりません。冗長性があれば、障害発生時にも運用を継続できます。
- データ損失とダウンタイムの両方を考慮する:クラウド障害に備える際は、データ損失とダウンタイムの両方を考慮する必要があります。データ損失とは失われた情報量、ダウンタイムとはシステムが利用できない時間を指します。
- システムとデータのカテゴリーを考慮する:すべてのシステムが同等に重要というわけではありません。そのため、バックアップ戦略を策定する際は、さまざまなシステムとデータの重要性を考慮する必要があります。これにより、最も重要なシステムから優先して取り組めます。
- オンプレミスソリューションに復旧用クラウドを利用する:クラウドバックアップは、オンプレミスソリューションに適した選択肢です。障害から復旧するために必要な冗長性と柔軟性を提供できます。
常に備えを怠らない
クラウド障害は、いつでも、どのような理由でも発生する可能性があります。そのため、計画を用意して障害に備えることが重要です。この計画には、バックアップ戦略とリスク軽減策を含める必要があります。
インフラの最も重要なコンポーネントで最高水準のセキュリティとデータ可用性を確保するには、いくつかの要件に従う必要があります。その一部は、すぐに導入を始められます。あるいは、上記の対策をすべて熟練したクラウド専門家に任せることもできます。