Oracle Base Database Serviceを使用したAzure DevOps CI/CDパイプラインの構築
分割スタックは、ワークロードが両方のクラウド(この場合はMicrosoft Azure上のアプリケーション)にデプロイされ、Oracle DatabaseサービスがOracle Cloud Infrastructure (OCI)にデプロイされるときです。
アプリケーション・スタック間では、Azureのアプリケーションとデータベースで構成される1つのフル・スタックが、OCIに存在する別のフル・スタック(アプリケーションおよびOracle Database)と相互運用およびデータを共有します。
ビジネス上および技術的な様々な考慮事項については、Oracle CloudとMicrosoft Azureにクラウド・ワークロードを割り当てることを選択できます。セキュリティを確保し、レイテンシを最小限に抑えるために、Oracle Cloud環境とAzure Cloud環境間の安全な相互接続が必要です。
OracleとMicrosoftは、Oracle Cloud Infrastructureと特定のリージョンのMicrosoft Azureの間にプライベート・クロスクラウド接続(Oracle Interconnect for Microsoft Azure)を作成しました。Oracle Interconnect for Microsoft Azureでは、インターネットを経由するクラウド間のトラフィックなしでクロスクラウド・ワークロードを設定できます。
その結果、ユーザーはOracle Base Database Serviceを使用してAzure DevOps CI/CDパイプラインをOracle Cloud Infrastructureに構築およびデプロイし、サポートする仮想ネットワーキング・インフラストラクチャ・リソースを構成して、この分割スタック・デプロイメントで高パフォーマンスで高可用性ソリューションを実現できます。
ノート:
Oracle Database 23cは、Oracle Base Database Serviceで使用できるようになりました。Oracle Database 23cは、Oracleのミッションを加速し、すべてのデータ駆動アプリケーションの開発と実行を容易にします。主な焦点は、JSON、Graphs、Microservices、Developerの生産性です。
Oracle Database 23cは、開発者に力を与え、開発者の生産性を向上させるためにデータベースでの人工知能(AI)の使用を簡素化することを目指しています。また、非常に高い可用性、優れたパフォーマンス、堅牢なセキュリティ機能で知られるデータベースの様々な機能強化も実現しています。
アーキテクチャ
このリファレンス・アーキテクチャでは、Oracle Base Database ServiceでAzure DevOpsを使用してCI/CDパイプラインを構築およびデプロイします。
アプリケーションおよびデータベースのソース・コードは、Azure DevOpsコード・リポジトリまたはGithubなどでホストされます。ユーザーがコード・リポジトリに変更をコミットして、CIパイプラインをトリガーします。このフェーズには、ユニット・テストの実行、統合テスト、静的コード分析、およびデプロイメントの準備状況を確認するためのAzure Kubernetes Service (AKS)クラスタ内のコンテナのテストも含まれます。
テストが完了すると、ビルド・パイプラインによってDockerイメージが作成され、Azureコンテナ・レジストリにプッシュされます。これらのビルド・アーティファクトは、CDパイプラインを開始します。CDフェーズでは、アーティファクトはAKSにデプロイされ、エンドツーエンドおよびシステム・テストが実行されて、マイクロサービスがKubernetes環境およびOracle Database内で正しく動作することを保証します。その後、ブルー/グリーン・デプロイメントやカナリア・デプロイメントなどの戦略を使用してステージング環境と本番環境が開始され、停止時間なしで新しい変更をデプロイできます。
このアーキテクチャの主要コンポーネントは、Oracle Database Operatorです。Oracle Databaseのライフサイクルを管理し、プロビジョニング、スケーリング、バックアップ、更新、メンテナンスなどのタスクを自動化します。この統合により、AKSのマイクロサービスとOracle Databaseの間の効率的なデータベース管理とシームレスな相互作用が保証されます。マイクロサービスは、Azure ExpressRouteおよびOracle FastConnectを使用してインターコネクトを介してOracle Databaseに安全に接続し、Azure Key Vaultを介して管理される資格証明を使用して、安全で信頼性の高いデータベース接続を維持します。
CI/CDプロセス全体のメトリック、ログおよびトレースは、Azure Monitor、OCI、Oracle DatabaseのUnified Observability OpenTelemetryフレームワークなどのツールを使用して継続的に監視されます。このフレームワークは、Azure上に存在するアプリケーションのエントリ・ポイント、すべてのサブシステム、およびOracle Databaseへのトレースを提供し、マイクロサービスとデータベースの両方のパフォーマンスと信頼性を確保します。このアプローチにより、クラウドネイティブ環境で最新のアプリケーションをデプロイおよび管理するための堅牢で効率的かつスケーラブルなソリューションが保証されます。
次の図は、このリファレンス アーキテクチャを示しています。
oracle-base-database-azure-arch-oracle.zip
このアーキテクチャには、次のコンポーネントがあります。
- テナント
テナンシは、Oracle Cloud Infrastructureのサインアップ時にOracleがOracle Cloud内で設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。
- リージョン
Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、長距離では(複数の国または大陸にまたがる)、それらを分離できます。
- コンパートメント
コンパートメントは、Oracle Cloud Infrastructureテナンシ内のクロスリージョン論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成、リソースへのアクセスを制御および使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、1つの可用性ドメインでの障害がリージョン内の他の可用性ドメインに影響を及ぼすことはほとんどありません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、電源とハードウェアが独立しています。リソースを複数のフォルト・ドメインに分散すると、アプリケーションは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。VCNは、従来のデータ・センター・ネットワークと同様に、ネットワーク環境の完全な制御を可能にします。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバック・エンドの複数のサーバーへの自動トラフィック分散を提供します。
- セキュリティ・リスト
サブネットごとに、サブネットの内外で許可される必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- サービス・ゲートウェイ
サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and never traverses the internet.
- FastConnect
Oracle Cloud Infrastructure FastConnectでは、データ・センターとOracle Cloud Infrastructureとの間に、専用のプライベート接続を簡単に作成できます。FastConnectは、インターネット・ベースの接続と比較して、高帯域幅のオプションと、より信頼性の高いネットワーキング・エクスペリエンスを提供します。
- Oracle Base Database Service
Oracle Base Database Serviceは、仮想マシン上のフル機能のOracleデータベースの構築、スケーリングおよび管理を可能にするOracle Cloud Infrastructure (OCI)データベース・サービスです。Oracle Base Database Serviceは、ローカル・ストレージではなくOCI Block Volumesストレージを使用し、Oracle Real Application Clusters (Oracle RAC)を実行して可用性を向上できます。
- オブジェクト・ストレージ
オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、すべてのコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、シームレスにストレージを拡張できます。迅速、即時、頻繁にアクセスする必要のあるホット・ストレージには、標準ストレージを使用します。アーカイブ・ストレージは、長時間保持し、ほとんどまたはめったにアクセスしないコールド・ストレージに使用します。
- アイデンティティおよびアクセス管理(IAM)
Oracle Cloud Infrastructure Identity and Access Management (IAM)は、Oracle Cloud Infrastructure (OCI)およびOracle Cloud Applicationsのアクセス制御プレーンです。IAM APIおよびユーザー・インタフェースを使用すると、アイデンティティ・ドメインおよびアイデンティティ・ドメイン内のリソースを管理できます。各OCI IAMアイデンティティ・ドメインは、スタンドアロンのアイデンティティおよびアクセス管理ソリューションまたは異なるユーザー移入を表します。
- 監査
Oracle Cloud Infrastructure Auditサービスでは、Oracle Cloud Infrastructureのサポートされるすべてのパブリック・アプリケーション・プログラミング・インタフェース(API)エンドポイントへのコールがログ・イベントとして自動的に記録されます。現在、すべてのサービスがOracle Cloud Infrastructure Auditによるロギングをサポートしています。
このアーキテクチャは、次のMicrosoft Azureコンポーネントをサポートしています。
- Microsoft Azure VNetおよびサブネット
Microsoft Azure Virtual Network(VNet)は、Azureのプライベート・ネットワークの基本的な構成要素です。VNetを使用すると、Azure仮想マシン(VM)などの多くのタイプのAzureリソースで、相互にセキュアに通信し、インターネットおよびオンプレミス・ネットワークを使用できます。
VNetはAzureで定義します。VNetの作成後に追加できる重複しない複数のCIDRブロック・サブネットを持つことができます。VNetをサブネットにセグメント化して、リージョンまたは可用性ゾーンにスコープを設定できます。各サブネットは、VNet内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。VNetを使用して、Azureリソースをネットワーク・レベルで論理的に分離します。
- 仮想ネットワーク・ゲートウェイ
仮想ネットワーク・ゲートウェイでは、指定したゲートウェイ・タイプに応じて、パブリック・インターネットまたはExpressRouteを使用して、Azure VNetとAzure外部のネットワーク間のトラフィックが許可されます。このネットワーク・ゲートウェイは、Oracle Database Service for Microsoft Azureネットワーク・リンクには使用されません。かわりに、これを使用して、OracleDB for AzureをピアリングしたVNetでオンプレミスへのネットワークを管理できます。
- Microsoft Azureルート表(ユーザー定義ルート- UDR)
ルート表は、Azureサブネット、VNetsおよびAzure外部のネットワーク間のトラフィックを転送します。
仮想ルート表には、通常はゲートウェイを介して、サブネットからVNet外の宛先にトラフィックをルーティングするルールが含まれます。ルート表は、VNetのサブネットに関連付けられます。
- Microsoft Azure可用性ドメイン
Azure Availability Domain (可用性セット)は、仮想マシンの論理グループです。
レコメンデーション
- VCN
VCNを作成する場合、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
- セキュリティ
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前対策的にモニターおよびメンテナンスします。クラウド・ガードは、ユーザーが定義できるディテクタ・レシピを使用して、セキュリティの弱点についてリソースを調査し、リスクのあるアクティビティについてオペレータおよびユーザーをモニターします。構成の誤りまたは安全でないアクティビティが検出された場合、クラウド・ガードは、ユーザーが定義できるレスポンダ・レシピに基づいて、修正アクションを推奨し、それらのアクションの実行を支援します。
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成して更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
- クラウド・ガード
Oracleが提供するデフォルトのレシピをクローニングしてカスタマイズし、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピでは、警告を生成するセキュリティ違反のタイプと、それらに対して実行を許可するアクションを指定できます。たとえば、可視性がパブリックに設定されているオブジェクト・ストレージ・バケットを検出できます。
クラウド・ガードをテナンシ・レベルで適用して、最も広い範囲をカバーし、複数の構成を維持する管理負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースは、パブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成して更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- Infrastructure as Code(IaC)
Terraformを使用してInfrastructure as Codeを実装し、AzureリソースおよびOracle Base Database Serviceをデプロイすることを検討できます。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合、次の点を考慮してください。
- プロビジョニングの前に、適切なOracle Base Database Service制限およびOCIサービス制限があることを確認してください。詳細は、OCIサービス制限およびサービス制限の増加のリクエストを参照してください。
- ネットワーク・トポロジの計画:
- 対応するOCI Virtual Cloud Network (VCN)とペアリングできるAzure Virtual Network (VNet)が少なくとも1つ必要です。
- Azure VNetsおよびOCI VCNのCIDRブロックは重複できません。
- Oracle Interconnect for Microsoft Azureの前提条件:
- Oracle Cloudアカウント。アカウントがない場合は、Oracle Cloud Free Tierアカウントにサインアップできます。
- Azureアカウント。アカウントがない場合は、Azure無料アカウントにサインアップできます。
- このリファレンス・アーキテクチャで説明されているトポロジに従って、リソースをデプロイするために必要な権限およびリソース割当て制限。
- OCIリージョン、Azureリージョン、インターコネクト・リージョンおよびスループット要件を収集します。
- ネットワーキング
AzureのアプリケーションとOCIのOracle Databaseは、同じ地理的リージョンに存在する必要があります。たとえば、Azure西ヨーロッパ(オランダ、アムステルダム)のアプリケーションと、オランダ北西部(アムステルダム)のOCIのOracle Databaseです。1つのリージョンは、1つ以上の可用性ドメインで構成されるローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(複数の国または大陸にまたがる)それらを分離できます。
- 可用性
Oracle Base Database Serviceには、Oracleのベスト・プラクティス機能が組み込まれています。クラウドの自動化を使用して、最高のパフォーマンス、可用性およびセキュリティを実現するためにデータベースをデプロイします。システムは、最高のサービス・レベルを提供するように最適に構成されます。Oracle RACが自動的にデプロイされ、Oracle Base Database Serviceクラウド・プラットフォームで実行するようにチューニングされたスケーラブルで可用性の高いデータベースが提供されます。Oracle RACは、作業を複数のデータベース・インスタンスに分散することで、計画外の障害から保護します。また、オンラインのままの他のサーバーにメンテナンスを受けようとしている作業を自動的に移行することで、メンテナンス・アクティビティのダウンタイムを排除します。
Oracle Data Guardは、リアルタイムの障害保護を提供します。プライマリ・データベースまたはデータ・センターを失った場合は、Oracle Data Guardによって自動的にメンテナンスされるスタンバイ・サイトにワークロードをフェイルオーバーできます。Oracle Base Database Serviceを使用すると、クラウド自動化を使用して、UIで1回のAPIコールまたは数回のクリックでOracle Data Guardを簡単に有効化できます。同様に、自動化では、プライマリ・データベースの障害時リカバリ・サイトへの切替え、スイッチバック、フェイルオーバー後のプライマリ・データベースの再稼働などの重要なユースケースをサポートしています。
Oracle Base Database Serviceは、クラウド内のOracleデータベースの高可用性ブループリントを形成する、すべてのOracle Maximum Availability (MAA)テクノロジをサポートしています。