非常に高い信頼性

高可用性とディザスタ・リカバリの原則を使用して、非常に高い信頼性を実現するクラウド・アーキテクチャを設計します。

高可用性(HA)システムは、稼働時間とアクセシビリティを最大限実現できるように設計されています。HAを確保するには、コンポーネントに障害が発生してもアプリケーションが実行を続け使用可能になるように、単一障害点を排除します。

適切に設計したディザスタ・リカバリ(DR)計画を使用すると、障害から迅速にリカバリし、継続的にユーザーにサービスを提供できます。DRは、障害に対する準備および障害からのリカバリのプロセスです。障害とは、ネットワークの停止から機器やアプリケーションの障害、自然災害に至るまで、アプリケーションをリスクにさらすあらゆるイベントです。DRを考慮して設計するには、ミッションクリティカルなアプリケーションを複数のリージョンにデプロイし、リージョン間で非同期レプリケーションを使用します。ネットワーキング、コンピュート、オブジェクト・ストレージ、データベースおよびモニタリングを含む、スタックのすべてのレイヤーでDRを計画します。

非常に高い信頼性のためのアーキテクチャの推奨事項

非常に高い信頼性を実現するために段階的なアプローチをお薦めします。第1フェーズでは、可用性ドメイン内のフォルト・ドメインを利用して、HA機能を提供するアーキテクチャをデプロイします。より高いレジリエンシが必要な場合は、第2フェーズで、複数のリージョンにまたがるアーキテクチャをデプロイします。

リージョン、可用性ドメインおよびフォルト・ドメインの詳細は、リージョンおよび可用性ドメインを参照してください。

フェーズ1: フォルト・ドメイン間でのインスタンスの分散

高可用性システムは、単一障害点を回避するように設計されています。高可用性システムを設計するための重要な原則の1つは、インスタンスを複数のフォルト・ドメインに分散することです。フォルト・ドメインを適切に利用することで、Oracle Cloud Infrastructureで実行されるアプリケーションの可用性を向上させることができます。

フォルト・ドメインを使用してインスタンスを分離するかグループ化するかは、アプリケーションのアーキテクチャによって決まります。

シナリオA: 高可用性アプリケーションのアーキテクチャ

このシナリオでは、高可用性アプリケーションを扱います。たとえば、2つのWebサーバーと1つのクラスタ・データベースがあります。このシナリオでは、1つのWebサーバーと1つのデータベース・ノードを1つのフォルト・ドメインにグループ化し、もう一方のペアを別のフォルト・ドメインにグループ化する必要があります。この配置では、いずれかのフォルト・ドメインに障害が発生しても、アプリケーションが停止することはありません。

1つのWebサーバーと1つのデータベース・ノードを1つのフォルト・ドメインに配置し、もう一方のペアを別のフォルト・ドメインに配置した高可用性アーキテクチャを示す図。

シナリオB: 1つのWebサーバーとデータベース・インスタンスのアーキテクチャ

このシナリオでは、アプリケーション・アーキテクチャは高可用性を備えていません。たとえば、1つのWebサーバー・インスタンスと1つのデータベース・インスタンスがあります。このシナリオでは、顧客の停止を最小限に抑えるために、Webサーバーとデータベース・インスタンスの両方を同じフォルト・ドメインに配置する必要があります。この配置では、アプリケーションはその1つのフォルト・ドメインの障害の影響しか受けないため、アプリケーションの全体的な可用性が向上します。

障害の影響を最小限に抑えるために同じフォルト・ドメインに配置された1つのWebサーバーとデータベース・ノードを示す図。

複合SLA

サービスを組み合せて使用する場合、全体的なシステムの可用性は各サブシステムの可用性に依存します。複数のサブコンポーネントを持つシステムの可用性を最大限に高めるには、サブコンポーネントどうしの依存関係を最小限に抑える必要があります。つまり、リソースを複数の可用性ドメインに広げるのではなく、1つの可用性ドメイン内でフォルト・ドメインを利用することで、アプリケーション・アーキテクチャによっては、所定量の技術的努力に対して最大の信頼性を実現できます。

フェーズ2: 複数リージョンへのリソースのデプロイ

ワークロードのレジリエンシを最大限に高めるために、複数の可用性ドメインではなく複数のリージョンにクラウド・ワークロードをデプロイします。

リージョンの停止はそのリージョン内のすべての可用性ドメインに影響を及ぼす可能性があるため、複数のリージョンにデプロイすることにより、リージョンの停止に関連するリスクを最小限に抑えることができます。また、複数のリージョンにデプロイすると、ワークロードを複数のデータ・センターに配置するために投資する技術的努力の価値が最大化されます。

シナリオC: 複数リージョンのアーキテクチャ

このシナリオのアーキテクチャでは、同じスタックが2つのリージョンにレプリケートされます。

両方のリージョンに一貫性のあるデータ・ソースを提供するために、GoldenGate (データ・レイヤー用)、Autonomous Data Guard (データベース・レイヤー用)、リージョンとレプリケート先のバケットを識別するソース・バケットのオブジェクト・ストレージ・レプリケーション・ポリシーなどのレプリケーション機能を使用します。

フロントエンドおよびアプリケーション・レイヤーについて、両方のリージョン内の複数のフォルト・ドメインにデプロイされたバックエンド・リソース上にロード・バランサを作成し、ヘルス・チェック機能を構成します。新しいアプリケーションを本番にデプロイするたびに、アプリケーションを両方のリージョンのインスタンスにデプロイします。

最大限のレジリエンシを備えた複数リージョン・アーキテクチャを示す図。

詳細の参照

ドキュメント: