Autonomous Databaseに接続されたWildFlyのデプロイ
WildFlyでは、JAX- RS 2やJSON- Pなど、RESTベースのデータ・アクセスの最新標準がサポートされます。B
WildFlyは、以前はJBossアプリケーション・サーバーと呼ばれていましたが、Jakarta EE 8/9およびJava EE 8仕様に準拠したオープンソース・アプリケーション・サーバーです。これには、UndertowというWebサーバー・コンポーネントが含まれます。アプリケーション・サーバーは、マルチサーバー・トポロジを実行および管理するように構成することも、スタンドアロン・サーバーとして構成することもできます。WildFlyでは、JAX- RS 2やJSON- Pなど、RESTベースのデータ・アクセスの最新標準がサポートされます。プラガブル・サブシステムに基づく効率的なメモリー管理を提供します。WildFlyを使用すると、使いやすいArquillianフレームワークにより、開発サイクルを短縮できます。
アーキテクチャ
このリファレンス・アーキテクチャには、ロード・バランサ、WildFlyマルチサーバー・アーキテクチャのアプリケーション層、Oracle Autonomous Transaction Processingのデータベース層、およびWildFly管理コンソールへの安全なアクセスのための要塞ホストが含まれます。
コンポーネントは異なるサブネットにあります。ロード・バランサおよび要塞ホストはパブリック・サブネット内にあります。WildFlyサーバーはプライベート・サブネットを共有し、高可用性のために、プライベート・サブネットを許可するリージョン内の可用性ドメイン間およびフォルト・ドメイン間で分散されます。
データベースは独自のプライベート・サブネットにあります。アプリケーション・サーバーへの外部アクセスはインターネット・ゲートウェイを介したロード・バランサを介して行われ、管理コンソールへのアクセスは要塞ホストを介して行われます。
次の図は、この参照アーキテクチャを示しています。

図Architecture- wildfly- oci.pngの説明
Architecture- wildfly- oci- oracle.zip
アーキテクチャには、次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却などのインフラストラクチャや内部可用性ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインに影響する可能性はほとんどありません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各可用性ドメインには、独立した電源とハードウェアを持つ3つのフォルト・ドメインがあります。リソースを複数のフォルト・ドメインに分散する場合、アプリケーションはフォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、CNはネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNをサブネットにセグメント化できます。これは、リージョンまたは可用性ドメインにスコープを設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックでもプライベートでもかまいません。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへの自動トラフィック分散を提供します。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- ルート表
仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。
- WildFlyサーバー
WildFlyサーバーは、アプリケーションをホストします。
- Autonomous Databaseシステム
WildFlyは、Java Database Connectivity (JDBC)を提供する任意のデータベースに接続できます。このアーキテクチャでは、Oracle Autonomous Databaseをプロビジョニングするオプションが提供されます。
推奨事項
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。
- VCN
VCNを作成する際、VCNのサブネットにアタッチする予定のリソース数に基づいて、必要なCIDRブロックの数および各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計する際には、トラフィック・フローとセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能する同じサブネットにアタッチします。
- ロード・バランサの帯域幅
ロード・バランサの作成時に、固定帯域幅を提供する事前定義済のシェイプを選択するか、帯域幅範囲を設定するカスタム(柔軟性のある)シェイプを指定して、トラフィック・パターンに基づいて帯域幅を自動的にスケーリングできます。どちらの方法でも、ロード・バランサの作成後にいつでもシェイプを変更できます。
- コンピュート・インスタンス
すべてのテナントは、このアーキテクチャで使用できる2つのAlways Free Compute仮想マシン(VM)インスタンスを取得します。
より多くの処理能力が必要な場合は、異なる形状を選択できます。
- データベース・システム
すべてのテナンシは、2つのAlways Free Oracle Autonomous Databaseを取得します。Autonomous Databaseは、Oracleがインフラストラクチャのプロビジョニングおよびメンテナンスを処理する共有Exadataインフラストラクチャを使用します。
複数のデータベースが必要な場合は、空いていないOracle Autonomous Databaseを使用します。 - ブロック・ストレージ
このアーキテクチャのインスタンスは、通常のブロック・ストレージを使用します。追加のパフォーマンスは必要ありません。
- ネットワーク接続性
サイト間VPNまたはFastConnectとの専用接続を使用して既存のオンプレミス・インフラストラクチャに接続することで、環境を管理できます。
環境を既存のインフラストラクチャから分離する必要がある場合、または外部からアクセスする必要がある場合、要塞ホストは管理接続を保護できます。要塞ホストは通常、非武装地帯(DMZ)でプロビジョニングされます。機密リソースは、クラウドの外部から直接アクセスできないプライベート・ネットワークに配置することで保護されます。アクセスを損なうことなく、アーキテクチャのより機密性の高いコンポーネントを公開することを回避できます。
注意事項
この参照アーキテクチャをデプロイする場合は、次の点を考慮してください。
- パフォーマンス
このアーキテクチャでは、Oracle Cloud InfrastructureのAlways Freeリソースを使用できます。Always Free層の処理能力の制限のため、本番用ではありません。より厳しいワークロードの場合は、インスタンス、ロード・バランサおよびデータベースの通常のシェイプを使用する必要があります。
- SECURITY
要塞ホストとロード・バランサを除き、すべてのコンポーネントはプライベート・サブネットに配置する必要があります。
- 可用性
ロード・バランサとデータベースは冗長であり、これらの機能を利用するための介入は必要ありません。WildFlyサーバーはペアとしてデプロイされ、ロード・バランサによってバランシングされます。さらにノードを追加できますが、Always Free層には含まれません。
- コスト
このアーキテクチャでは、Always Free層を使用できます。ただし、無償の階層リソースは本番ワークロードには適していない場合があり、その場合はコンピューティング・リソースおよびサービスを定期的にプロビジョニングする必要があります。
デプロイ
このリファレンス・アーキテクチャのTerraformコードは、Oracle Cloud Infrastructure Resource Managerのサンプル・スタックとして使用できます。GitHubからコードをダウンロードし、特定の要件にあわせてカスタマイズすることもできます。
- Oracle Cloud Infrastructure Resource Managerを使用してデプロイします。
をクリックします。
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 条件を確認し、受け入れます。
- スタックをデプロイするリージョンを選択します。
- 画面に表示されるプロンプトと指示に従ってスタックを作成します。
- スタックの作成後、「Terraformアクション」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、プランをレビューします。
変更するには、「Stack Details」ページに戻り、「Edit Stack」をクリックして、必要な変更を行います。次に、プラン処理を再実行します。
- これ以上変更が必要ない場合は、「Stack Details」ページに戻り、「Terraform Actions」をクリックして「Apply」を選択します。
- GitHubのTerraformコードを使用してデプロイします。
- GitHubに移動します。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの指示に従います。