Oracle Cloud Infrastructure APIゲートウェイのディザスタ・リカバリ・ソリューションのデプロイ

Oracle Cloud Infrastructure API Gatewayは、サービス・レベル・アグリーメント(SLA)によって管理されるOCIリージョンで使用できます。このリファレンス・アーキテクチャでは、OCI API Gatewayのクロスリージョンの顧客管理ディザスタ・リカバリ・ソリューションの実装の基礎となるアーキテクチャについて説明します。

このディザスタ・リカバリ・ソリューションは、次のものをサポートします。
  • 「アクティブ- パッシブ」トポロジ。両方のゲートウェイが稼働中であると想定されていても、1つのゲートウェイだけが負荷全体を処理します。アクティブゲートウェイは、その状態(アクティブ/削除済み/更新中)ではなく、トラフィックが転送され、すべての機能を実行できるようになっているゲートウェイによって決定されます。
  • OCI API Gatewayカテゴリの顧客管理レプリケーション(APIデプロイメント、使用プラン、APIサブスクライバなど)。
プライマリとセカンダリの両方のOCI API Gatewayで同じAPIカテゴリおよび認可プロバイダが使用されている場合は、スイッチオーバー後に、リージョン間で同じ方法でAPIにアクセスできます。

開始する前に

統合用のディザスタ・リカバリ構成の構成を開始する前に、次のことを行う必要があります。
  • 別のOCIリージョンに2番目のOCI API Gatewayをプロビジョニングします。
  • カスタムDNS/ホスト名(選択したドメイン内)および関連付けられたSSL証明書を取得します。

アーキテクチャ

OCI API Gatewayのリファレンス・アーキテクチャは、2つの異なるクラウド・リージョンにある2つのOCI API Gatewayで構成され、単一のカスタム・エンドポイント(URL)を使用してアクセスされます。単一のカスタム・エンドポイントを実装するには、OCIドメイン・ネーム・システム(DNS)ゾーンを使用してカスタム・エンドポイント名を解決します。

これらのカスタムURLをOCI APIゲートウェイのエントリ・ポイントとして使用できます(たとえば、api.mycompany.com)。カスタム・エンドポイントの構成の詳細は、後述の「詳細」からアクセスできる「DNSサービス・ゾーンの管理」を参照してください。

アーキテクチャの2つのOCI API Gatewayはプライマリおよびセカンダリとして指定され、両方のゲートウェイが同時に実行されますが、トラフィックを受信するゲートウェイは1つのみです。最初は、プライマリ・ゲートウェイがトラフィック・フローを受信します。プライマリ・リージョンが使用できなくなった場合、DNSレコードを更新して、トラフィックをセカンダリ・リージョンにルーティングできます。

次の図は、パブリック・ゲートウェイ(OCI API Gatewayのランディング・ゾーン・パターン)に対するこのリファレンス・アーキテクチャを示しています:


apigw-oci-customer-managed-dr-topology.pngの説明が続きます
図apigw-oci-customer-managed-dr-topology.pngの説明

apigw-oci-customer-managed-dr-topology-oracle.zip

これらのアーキテクチャには、次のコンポーネントがあります。
  • Tenancy

    テナンシは、Oracle Cloud InfrastructureにサインアップしたときにOracle Cloud内でOracleが設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は1つのテナンシを持ち、そのテナンシ内に組織構造を反映させます。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。

  • リージョン

    Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(国または大陸にまたがって)分離できます。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。コンパートメントを使用して、Oracle Cloudリソースの編成、アクセス制御および使用割当てを設定します。特定のコンパートメントでは、アクセスを制御し、リソースの権限を設定するポリシーを定義します。

  • 可用性ドメイン

    可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインに影響を与えないでください。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • ルート表

    仮想ルート表には、通常ゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。

  • セキュリティ・リスト

    サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

  • Oracle Cloud Infrastructure DNSサービス

    パブリックDNSゾーンには、OCIのネーム・サーバーに存在する認可DNSレコードが保持されます。インターネット上でアクセス可能なパブリックに使用可能なドメイン名を持つパブリック・ゾーンを作成できます。詳細は、後述の「詳細を見る」からアクセスできる「DNSの概要」を参照してください。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイは、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックを許可します。

  • Oracle Cloud Infrastructure Web Application Firewall (WAF)

    WAFは、クラウドベースのPCI準拠のグローバルWebアプリケーション・ファイアウォール・サービスを使用して、悪意のある不要なインターネット・トラフィックからアプリケーションを保護します。OCI Flexible Network Load Balancerで脅威インテリジェンスと一貫したルール適用を組み合せることで、Oracle Cloud Infrastructure Web Application Firewallは防御を強化し、インターネットに直接接続されているアプリケーション・サーバーと内部アプリケーションを保護します。(このコンポーネントはオプションです)

  • フレキシブル・ロード・バランサ

    ロード・バランサは、パラレルに動作するアプリケーション・サービス間でリクエストを指示することで、リソース使用率を向上させます。需要が増加すると、アプリケーション・サービスの数を増やすことができ、ロード・バランサはそれらを使用してリクエストの処理のバランスをとります。(このコンポーネントはオプションです)

  • 要塞サービス

    Oracle Cloud Infrastructure Bastionは、パブリック・エンドポイントがなく、ベア・メタルや仮想マシン、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine (OKE)、およびSecure Shell Protocol (SSH)アクセスを許可するその他のリソースなど、厳密なリソース・アクセス制御を必要とするリソースへの制限付きで時間制限付きのセキュアなアクセスを提供します。OCI Bastionサービスを使用すると、ジャンプ・ホストをデプロイおよびメンテナンスせずにプライベート・ホストへのアクセスを有効にできます。さらに、アイデンティティベースの権限と一元化された監査済みの期限付きSSHセッションにより、セキュリティ・ポスチャが向上します。OCI Bastionは、要塞アクセスのパブリックIPの必要性をなくし、リモート・アクセスを提供する際の手間と潜在的な攻撃対象領域を排除します。

  • APIゲートウェイ

    Oracle Cloud Infrastructure API Gatewayでは、ネットワーク内からアクセスでき、必要に応じてパブリック・インターネットに公開できるプライベート・エンドポイントを含むAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可およびリクエスト制限をサポートします。

  • 「アナリティクス」

    Oracle Analytics Cloudは、スケーラブルでセキュアなパブリック・クラウド・サービスであり、データ準備、ビジュアライゼーション、エンタープライズ・レポート、拡張分析、自然言語処理および生成のための最新のAI駆動のセルフサービス分析機能をビジネス・アナリストに提供します。Oracle Analytics Cloudには、迅速なセットアップ、簡単なスケーリングとパッチ適用、自動ライフサイクル管理など、柔軟なサービス管理機能も用意されています。

  • アイデンティティおよびアクセス管理(IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM)は、Oracle Cloud Infrastructure (OCI)およびOracle Cloud Applicationsのアクセス制御プレーンです。IAM APIおよびユーザー・インタフェースを使用すると、アイデンティティ・ドメインおよびアイデンティティ・ドメイン内のリソースを管理できます。各OCI IAMアイデンティティ・ドメインは、スタンドアロンのアイデンティティおよびアクセス管理ソリューション、または異なるユーザー集団を表します。

  • アイデンティティ・ドメイン(IDom)

    IAM uses Identity Domains (IDom) to provide identity and access management features such as authentication, single sign-on (SSO), and identity lifecycle management for Oracle Cloud as well as for Oracle and non-Oracle applications, whether SaaS, cloud hosted, or on premises.

  • ポリシー

    Oracle Cloud Infrastructure Identity and Access Managementポリシーは、誰がどのリソースにアクセスできるか、およびどのようにアクセスできるかを指定します。アクセス権はグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメント内またはテナンシ内の特定のタイプのアクセス権をグループに付与するポリシーを作成できます。

  • 監査

    Oracle Cloud Infrastructure Auditサービスでは、ログ・イベントとして、Oracle Cloud Infrastructureのサポートされるすべてのパブリック・アプリケーション・プログラミング・インタフェース(API)エンドポイントへのコールが自動的に記録されます。すべてのOCIサービスは、Oracle Cloud Infrastructure Auditによるロギングをサポートしています。

  • ロギング
    Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルな完全管理型のサービスです:
    • 監査ログ: 監査サービスによって発行されたイベントに関連するログ。
    • サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されるログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
  • ログ分析

    Logging Analyticsは、オンプレミス環境およびマルチクラウド環境からのすべてのログ・データをモニター、集計、索引付けおよび分析する機械学習ベースのクラウド・サービスです。ユーザーは、このデータを検索、調査および関連付けて、問題のトラブルシューティングと解決を迅速に行い、インサイトを導き出して、より適切な運用上の意思決定を行うことができます。

レコメンデーション

OCI API Gatewayのディザスタ・リカバリ・ソリューションをデプロイする際には、次の推奨事項を開始点として使用します。 実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • VCN

    VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。

    プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。

    VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。

    サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能できる同じサブネットにアタッチします。

    リージョナル・サブネットを使用します。

  • 接続(プライベートAPIゲートウェイ)

    リソースをOCIにデプロイする場合、オンプレミス・ネットワークへの単一の接続で小規模から開始できます。この単一の接続は、OCI FastConnectまたはIPSec VPNを介して行うことができます。冗長性を計画するには、オンプレミス・ネットワークとOCIの間のすべてのコンポーネント(ハードウェア・デバイス、設備、回路および電源)を考慮します。また、施設がパス間で共有されないように、多様性を考慮してください。

考慮事項

OCI API Gatewayのディザスタ・リカバリ・ソリューションをデプロイする場合は、次の要因を考慮してください。

  • OCI DNS管理ゾーンの使用

    OCI API GatewayのDNSレコードを構成します。OCI DNSゾーンを使用して、DNSレコードを管理し、OCI API Gatewayのホスト名解決を提供できます。

    APIゲートウェイのドメイン(またはサブドメイン)を取得したら、OCIコンソールまたはAPIを介してOCI DNSゾーンを追加します。OCI DNSゾーンの作成とそのゾーンへのレコードの追加の詳細は、後述の「詳細」からアクセスできるDNSサービス・ゾーンの管理に関する項を参照してください。
    • ゾーンで、OCI API Gatewayのカスタム・ホスト名をCNAMEレコードとして追加します。
    • ゾーンの変更を正常に公開したら、OCI DNSネーム・サーバーを使用するようにドメインを更新します。
  • セキュリティ

    OCI Identity and Access Management (IAM)ポリシーを使用して、クラウド・リソースにアクセスできるユーザー、および実行できる操作を制御します。OCIクラウド・サービスは、OCI API Gatewayによる関数の呼出しを許可するなどのIAMポリシーを使用します。OCI APIゲートウェイは、OAuth認証および認可を使用してアクセスを制御することもできます。IAMでは、IAMを介してフェデレートできる認証および認可が可能です。その結果、OCI API Gatewayには、様々なサービスおよび認証設定に対して認証する機能があります。

  • パフォーマンスとコスト

    OCI API Gatewayは、バックエンド・サービスの不要な負荷を回避するのに役立つ外部キャッシュ・サーバー(RedisやKeyDBサーバーなど)と統合することで、レスポンス・キャッシュをサポートします。同様のリクエストが受信された場合、レスポンスがキャッシュされると、バックエンド・サービスにリクエストを送信するのではなく、レスポンス・キャッシュからデータを取得することでレスポンスを完了できます。これにより、バックエンド・サービスの負荷が軽減され、パフォーマンスが向上し、コストが削減されます。OCI API Gatewayでは、(TTLを離れる時間に基づいて)認可トークンもキャッシュされるため、アイデンティティ・プロバイダへの負荷が軽減され、パフォーマンスが向上します。

  • 可用性

    デプロイメント要件およびリージョンに基づいて、高可用性オプションの使用を検討してください。オプションには、リージョン内の複数の可用性ドメインにリソースを分散したり、可用性ドメイン内のフォルト・ドメインにリソースを分散したりすることが含まれます。

  • モニタリングとアラート

    APIゲートウェイのメトリックにモニタリングとアラートを設定します。

デプロイ

このリファレンス・アーキテクチャは、次のステップを実行してOracle Cloud Infrastructureにデプロイできます。

Terraformコードoci_apigateway_apiは、GitHubにあります。リンクについては、下の「詳細」を参照してください。

  1. Oracle Cloud資格証明を使用してOracle Cloud Infrastructureコンソールにサインインします
  2. アーキテクチャ図に示すように、必要なセカンダリ・サイト・ネットワーク・インフラストラクチャを設定します。これには、VCN、サブネット、DRG/Internet Gateway (プライベート/パブリックAPIゲートウェイ)、セキュリティ・リスト、ルーティング表、サービス・ゲートウェイ、FastConnect/VPNおよびCPE、DNSパブリック・ゾーンが含まれます
  3. OCI APIゲートウェイを作成します。OCI APIゲートウェイ・インスタンスを準備および作成するには、「APIゲートウェイの作成」の手順を参照してください。このドキュメントには、次の「詳細」からアクセスできます。
  4. 必要に応じて、セキュリティ・リスト、ルーティング表およびネットワーク・セキュリティ・グループを構成して、APIゲートウェイにアクセスできるネットワークを制限します。
  5. デプロイメントの同期を自動化します。このステップでは、CI/CDを使用して、APIデプロイメント、API使用計画およびAPIサブスクリプションのスタックがプライマリ・インスタンスとスタンバイ・インスタンス間で定期的に同期されます。

    ノート:

    OCI API管理リソースのAPIデプロイメント、API使用計画およびAPIサブスクリプション上でのすべての構成および変更は、Terraformスタックとして保存および管理できます。スタックは、OCI DevOpsを使用してセカンダリ側にアップロードすることも、別のサイトに適用することもできます。
  6. フェイルオーバー・タスクを実行します。
    • ディザスタ・リカバリ環境に切り替えます。
    • 停止中にプライマリ・インスタンスからスタンバイ・インスタンスに切り替えるには、DNSプロバイダまたはOCI DNSゾーンのDNSレコードを更新して、APIゲートウェイを介してトラフィックをセカンダリ・サイトにルーティングします。これは、OCIコンソールから手動で、またはOCI REST APIを使用して実行できます。フェイルオーバー・プロセスの後、スタンバイ/セカンダリ・サイトのAPI GatewayがプライマリAPI Gatewayになり、以前にプライマリとして指定されていたAPI Gatewayが新しいスタンバイAPI Gatewayになります。

確認

  • 作成者: Peter Obert
  • コントリビュータ: Robert Wunderlich