Oracle Database@AzureでのOracle Exadata Database Serviceを使用したAzure DevOpsパイプラインの構築
開始する前に
- Microsoft Azure DevOps
- Microsoft Azureパイプライン
- バージョン管理システム: Azure Repos Git、GitHubおよびTFVC。
- Microsoft Azure Kubernetesサービス(AKS)
- 次を使用してOracle Database@Azureを構成します:
- Azureサブスクリプションおよびディレクトリへのアクセス
- Oracle Cloud Infrastructure (OCI)テナンシへのアクセス
- AzureクラウドとOracleクラウド間のアクティブなOracle Database@Azureマルチクラウド・リンク
Oracle Database@Azureをプロビジョニングする前に、適切なOracle Exadata Database Service制限およびOCIサービス制限があることを確認してください:
- OCIメニューで、「ガバナンスと管理」をクリックします。
- 「Tenancy Management」で、「Limits、 Quotas and Usage」をクリックします。
- 「サービス」ドロップダウン・メニューから「データベース」を選択します。
アーキテクチャ
アプリケーションおよびデータベースのソース・コードは、Microsoft AzureのDevOpsコード・リポジトリ(GitHubなど)でホストされます。ユーザーがコード・リポジトリに変更をコミットすると、継続的インテグレーション(CI)パイプラインがトリガーされます。このフェーズには、ユニット・テストの実行、統合テスト、静的コード分析、およびデプロイメントの準備状況を確認するためのAzure Kubernetes Service (AKS)クラスタ内のコンテナのテストも含まれます。
テストが完了すると、ビルド・パイプラインによってDockerイメージが作成され、Azureコンテナ・レジストリにプッシュされます。これらのアーティファクトは、継続的デリバリ(CD)パイプラインを開始します。CDフェーズでは、アーティファクトがAKSにデプロイされ、エンドツーエンドおよびシステム・テストが実行されて、マイクロサービスがKubernetes環境およびOracle Database内で正しく動作することが保証されます。その後、青/緑またはカナリア・デプロイメントなどの戦略を使用してステージング環境および本番環境が開始され、新しい変更のダウンタイムなしでデプロイされます。
Kubernetesクラスタには、それぞれ独自のプラガブル・データベース(PDB)に接続する複数のポッドを含めることができます。プライマリ・データベースのPDBは、Azure可用性ゾーンのOracle Exadata Database Service on Dedicated Infrastructureで実行されるOracle Database@Azureにデプロイされます。コンテナ・イメージはAzureコンテナ・レジストリに格納されます。ユーザーは、パブリック・ロード・バランサを介して外部からアプリケーションにアクセスします。
クラウドの自動化により、Oracle Exadata Cloud InfrastructureおよびOracleマルチテナント・データベース(CDB、PDB)のほとんどのライフサイクルおよび管理タスクが簡素化されます。たとえば、サーバーの追加とOCPUのスケール・アップとスケール・ダウン、データベースおよびデータベース・ホームの作成、インフラストラクチャ・メンテナンスのスケジュール、VMオペレーティング・システム、Oracle Grid Infrastructureおよびデータベースの更新とアップグレード、バックアップおよびリカバリ操作の実行、さらにはOracle Data Guardを介したディザスタ・リカバリ保護の有効化などです。
CI/CDプロセス全体のメトリック、ログおよびトレースは、Azure Monitor、Oracle Cloud Infrastructure (OCI)およびOracle Databaseの統合可観測性OpenTelemetryフレームワークなどのツールを使用して継続的に監視されます。このフレームワークは、Azureに存在するアプリケーションのエントリ・ポイントからのトレースを、すべてのサブシステム、およびOracle Databaseに提供し、マイクロサービスとデータベースの両方のパフォーマンスと信頼性を確保します。このアプローチにより、クラウドネイティブ環境で最新のアプリケーションをデプロイおよび管理するための堅牢で効率的かつスケーラブルなソリューションが保証されます。
次の図は、このリファレンス・アーキテクチャを示しています。

図exadata-database-service.pngの説明
exadata-database-service-oracle.zip
アーキテクチャには次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインをホストする1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(国または大陸にまたがって)分離できます。
Azureリージョンは、可用性ゾーンと呼ばれる1つ以上の物理Azureデータ・センターが存在する地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(国または大陸にまたがって)分離できます。
AzureリージョンとOCIリージョンはローカライズされた地理的領域です。Oracle Database@Azureの場合、AzureリージョンはOCIリージョンに接続され、Azureの可用性ゾーン(AZ)はOCIの可用性ドメイン(AD)に接続されます。距離とレイテンシを最小限に抑えるために、AzureとOCIのリージョンのペアが選択されています。
- Azure可用性ゾーン
可用性ゾーンは、使用可能でフォルト・トレラントになるように設計されたリージョン内の物理的に独立したデータ・センターです。アベイラビリティ・ゾーンは、他のアベイラビリティ・ゾーンへの低レイテンシ接続に十分近くなります。
サブネット委任とは、Microsoftがマネージド・サービス(特にPlatform-as-a-Serviceサービス)を仮想ネットワークに直接注入できることです。
- Microsoft Azure仮想ネットワーク
Microsoft Azure Virtual Network(VNet)は、Azureのプライベート・ネットワークの基本的な構成要素です。VNetを使用すると、Azure仮想マシン(VM)などの多くのタイプのAzureリソースが、相互に、インターネットおよびオンプレミス・ネットワークと安全に通信できます。
サブネット委任とは、Microsoftがマネージド・サービス(特にPlatform-as-a-Serviceサービス)を仮想ネットワークに直接注入できることです。
- Azureパイプライン
Azure Pipelinesは、Microsoft Azureが提供する Azure DevOpsサービスの一部であり、継続的インテグレーション、継続的テスト、継続的デリバリのためのコード プロジェクトを自動的に構築、テスト、およびデプロイします。(CI-CD)
- Azure Kubernetesサービス
Azure Kubernetes Service(AKS)は、Microsoft Azureが提供するマネージドKubernetesサービスで、コンテナ化されたアプリケーションをデプロイおよび管理します。Kubernetesクラスタには、複数のポッドを含めることができます。
- Kubernetes Control Plane
Kubernetesコントロール・プレーンは、Kubernetesクラスタ内のワーカー・ノードおよびポッドのリソースを管理します。コントロール・プレーン・コンポーネントは、イベントを検出して応答し、スケジューリングを実行し、クラスタ・リソースを移動します。
- Oracle Exadata Database Service on Dedicated Infrastructure
Oracle Exadata Database Serviceは、パブリック・クラウドで専用の最適化されたOracle Exadata Cloud Infrastructure上に、実績のあるOracle Database機能を提供します。組み込みのクラウド自動化、柔軟なリソーススケーリング、セキュリティ、およびOLTP、インメモリ分析、およびコンバージドOracle Databaseワークロードのための高速パフォーマンスにより、管理を簡素化し、コストを削減できます。
Oracle Exadata Cloud Infrastructureは、より多くのCPUコア、ストレージの増加、およびより高速なネットワーク・ファブリックをパブリック・クラウドにもたらします。Oracle Exadataストレージ・サーバーには、Exadata RDMA Memory (XRMEM)が含まれ、追加のストレージ層が作成され、システム全体のパフォーマンスが向上します。Exadataは、XRMEMと、ネットワークおよびI/Oスタックをバイパスする革新的なRDMAアルゴリズムを組み合せ、高価なCPU割込みやコンテキスト・スイッチを排除します。
Oracle Exadata Cloud Infrastructureは、コンバージド・イーサネット(RoCE)内部ネットワーク・ファブリックの100Gbpsアクティブ/アクティブ・リモート・ダイレクト・メモリー・アクセスのスループットを向上させ、すべてのコンピュート・サーバーとストレージ・サーバー間で非常に低レイテンシで、以前の世代よりも高速なインターコネクトを提供します。
- Oracle Database Autonomous Recovery Service
Oracle Database Autonomous Recovery Serviceは、Oracle Databasesをデータ損失やサイバー脅威から保護するように設計されたフルマネージド・サービスです。これにより、データベース・オーバーヘッドの削減、検証済みバックアップによる信頼性の高いリカバリ、およびリアルタイムの保護により、停止またはランサムウェア攻撃から1秒以内のリカバリが可能になります。Oracle Database Zero Data Loss Autonomous Recovery Serviceは、Autonomous Recovery ServiceのZero Data Lossオプションです。このサービスは、一元化されたデータ保護ダッシュボードを提供し、Oracle Databasesのバックアップに推奨されます。
- Oracle Database@Azure
Oracle Database@Azureは、Microsoft Azureデータ・センターにデプロイされたOracle Cloud Infrastructure (OCI)で実行されているOracle Databaseサービス(Oracle Exadata Database Service on Dedicated InfrastructureおよびOracle Autonomous Database Serverless)です。このサービスは、OCIで機能と価格を同等に提供します。Azure Marketplaceでサービスを購入します。
Oracle Database@Azureは、Oracle Exadata Database Service、Oracle Real Application Clusters (Oracle RAC)およびOracle Data GuardテクノロジをAzureプラットフォームに統合します。ユーザーは、AzureコンソールおよびAzure自動化ツールでサービスを管理します。サービスはAzure Virtual Network(VNet)にデプロイされ、Azure Identity and Access Managementシステムと統合されます。OCIおよびOracle Databaseの汎用メトリックおよび監査ログは、Azureでネイティブに利用できます。このサービスでは、ユーザーにAzureサブスクリプションとOCIテナンシが必要です。
- オブジェクト・ストレージ
OCIオブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにアクセスできます。インターネットまたはクラウド・プラットフォーム内から直接、データを安全かつセキュアに格納できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張できます。
迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。
- サービス・ゲートウェイ
サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- YAMLファイルを更新します
接続文字列を使用して、Azure Kubernetes ServiceデプロイメントのYAMLファイルを更新します。データベースへの接続文字列は、OCIコンソールで確認できます。
- パフォーマンス
-
Oracleマルチテナント・アーキテクチャは、マイクロサービス・アーキテクチャの永続性レイヤー、データのバインドされたコンテキスト分離、セキュリティ、および高可用性のために推奨されます。
Oracleマルチテナント・アーキテクチャでは、Oracle Databaseは、複数のプラガブル・データベース(PDB)を含むコンテナ・データベース(CDB)として機能できます。これにより、様々なデータ型とワークロードを持つマイクロサービスは、単一のコンバージド・コンテナ・データベースを使用できます。PDBを活用することで、OracleはCDB内のマイクロサービス分離データベースを提供し、物理コンテナ間でのPDBの移動を有効にできます。マイクロサービスは、Oracle Exadata Database Service on Dedicated Infrastructureで実行されているOracle Databaseインスタンスに接続できます。
-
- セキュリティ
- アプリケーションのデータベース接続情報、パスワードおよびウォレット(該当する場合)をAzure Kubernetes ServiceのKubernetesシークレットに格納するのではなく、ボールトを使用することを検討してください。
- ネットワーク
-
Oracle Databaseネットワーク・アタッチメントに委任されたサブネットを持つ、少なくとも1つのAzure Virtual Network (VNet)が必要です。
-
Microsoft Azure Kubernetes ServiceサブネットとOracle Exadata Database Service VMクラスタ・クライアント・サブネットを同じVNetにデプロイすることを検討してください。
-
- 可用性
-
ユニバーサル接続プール(UCP)、Oracle JDBCドライバおよびOracle RACを使用および構成して、Oracle Databaseの高可用性(HA)機能を利用して、アプリケーションの継続的な可用性を維持するための計画的および計画外の停止時間中に継続的なサービスを実現することを検討してください。
UCPでは、Oracle RAC、Oracle Data Guard、Oracle Sharding、非同期API、ランタイム・ロード・バランシング、XA、アプリケーション・コンティニュイティ、トランザクション・ガード、透過的アプリケーション・フェイルオーバー、単一クライアント・アクセス名(SCAN)、データベース常駐接続プール(DRCP)へのフロントエンドなど、すぐに利用できるすべてのOracle Database構成およびミッションクリティカル機能(可用性、スケーラビリティおよびロード・バランシング)がサポートされます。Oracle RACシステムでは、複数のサーバー・ノードからすべてのOracleデータベース・サービスに同等にアクセスできます。Oracle RACクラスタのノードまたはサブセットに障害が発生した場合や、メンテナンスのためにオフラインになった場合でも、残りのアクティブ・ノードからデータベースにアクセスできます。
-
Oracle Databaseでアプリケーション高可用性を実装するためのビルディング・ブロックを次に示します。
- データベース・サービスの使用
- 高可用性のURLまたは接続文字列の構成
- 高速アプリケーション通知(FAN)の有効化
- Javaアプリケーションのドレインと継続的なデータベース可用性の実現
-
Oracle Databaseのバックアップ保存先として推奨されるOracle Database Autonomous Recovery Serviceの使用を検討してください。
バックアップを格納するために使用可能な2つのオプションは次のとおりです。同じAzureリージョンにOracle Exadata Database Serviceが存在するか、Azureリージョンに関連付けられたデフォルトのOCIリージョンにあります
-
詳細の参照
Oracle Cloud Infrastructure(OCI)とMicrosoft Azureの詳細:
次の追加リソースを確認します。
- Oracle Cloud Infrastructureドキュメント:
- KubernetesおよびOracle Database Cloud Servicesを使用したAzure CI/CDパイプラインを使用したMultiCloud DevOpsの構築(ワークショップ)
- Oracle Cloud Infrastructure用のWell-architectedフレームワーク
- Oracle CloudのCost Estimator
- クラウド導入フレームワーク
- Oracle Cloud Free Tierアカウント(Oracle Cloud)
- Azure無料アカウント(Microsoft Azure)