自律型データベースに接続されたArmベースのAmpere A1コンピュートにApache Tomcatをデプロイします
Apache Tomcatは、オープン・ソースのJavaアプリケーション・サーバーです。Javaサーブレット、JavaServer Pages、Java式言語およびJava WebSocketテクノロジを実装します。
アーキテクチャ
これは、ロード・バランサ、Arm AArch64シェイプ(ArmベースのAmpere A1 Compute)上で実行されているApache Tomcatを含むアプリケーション層、およびx86上で実行されているOracle Autonomous Databaseを含むデータベース層を含む複数検索参照アーキテクチャです。
Java開発者は、この柔軟性を利用し、OCIのアーム形状のセキュリティとパフォーマンスを使用してTomcat Webアプリケーションをデプロイできます。このシナリオでは、アプリケーションの要件に基づいてコア数を変更できます。
コンポーネントは異なるサブネットにあります。ロード・バランサはパブリック・サブネット内にあります。Tomcatサーバーはプライベート・サブネットを共有し、データベースは独自のプライベート・サブネットにあります。すべての外部アクセスは、インターネット・ゲートウェイを介してロード・バランサを介して行われます。
データベースを使用したアプリケーション・セッション管理を示すサンプル・アプリケーションが含まれます。
次の図に、この参照アーキテクチャを示します。

図arch-tomcat-adb.pngの説明
architecture-deploy-tomcat-adb-oracle.zip
このアーキテクチャには次のコンポーネントがあります。
- リージョン
リージョンは、1つ以上の可用性ドメインで構成される、ローカライズされた地理的領域です。地域は他の地域から独立しており、広大な距離で(国または大陸間で)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。アベイラビリティ・ドメインは、電源や冷却などのインフラストラクチャや内部アベイラビリティ・ドメイン・ネットワークを共有しません。したがって、ある可用性ドメインで障害が発生しても、リージョン内の他の可用性ドメインには影響しません。
- フォルト・ドメイン
フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各可用性ドメインには、独立した電源とハードウェアを備えた3つのフォルト・ドメインがあります。コンピュート・インスタンスを複数のフォルト・ドメインに配置すると、アプリケーションは物理サーバー障害、システム・メンテナンス、および可用性ドメイン内の多くの一般的なネットワーキングや電源障害を許容できます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定するソフトウェア定義ネットワークです。VCNは、リージョンまたは可用性ドメインに固有のサブネットにセグメント化できます。リージョン固有のサブネットと可用性ドメイン固有のサブネットの両方を同じVCNに共存させることができます。サブネットはパブリックまたはプライベートにできます。
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingサービスは、あるエントリ・ポイントからVCNから到達可能な複数のサーバーへの自動トラフィック分散を提供します。アプリケーション・レイヤーをクラスタ・モードで作成する場合、Tomcatサーバー間でトラフィックを分散するようにロード・バランサを構成できます。ロード・バランサは、アプリケーション・サーバーにフロントエンドを提供し、内部レイヤーへの不要または不正なアクセスを分離および防止します。
- セキュリティ・リスト
サブネットごとに、サブネットの内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- ルート表
仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。
- インターネット・ゲートウェイ
インターネット・ゲートウェイでは、VCNとパブリック・インターネット間のトラフィックが許可されます。
- Tomcatサーバー
Tomcatサーバーは、Java Servlet、JavaServer Pages、Java式言語およびJava WebSocketsをホストします。Tomcatサーバーは、このアーキテクチャのArmベースのAmpere A1シェイプにインストールされます。
- データベース・サーバー
Tomcatは、JDBC Java Database Connectivityを提供する任意のデータベースに接続できます。このアーキテクチャでは、Oracle Autonomous Databaseを使用します。
- 要塞ホスト
要塞ホストは、クラウド外部からトポロジへのセキュアで制御されたエントリ・ポイントとして機能するコンピュート・インスタンスです。要塞ホストは通常、非武装地帯(DMZ)でプロビジョニングされます。これにより、クラウドの外部から直接アクセスできないプライベート・ネットワークに機密リソースを配置することで、機密リソースを保護できます。トポロジには、定期的に監視および監査できる単一の既知のエントリ・ポイントがあります。その結果、トポロジのより機密性の高いコンポーネントへのアクセスを損なうことなく、公開を回避できます。
お薦め
実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。次の推奨事項を開始点として使用します。
- VCN
VCNを作成するときに、各サブネットのクラウド・リソースに必要なIPアドレスの数を決定します。Classless Inter - Domain Routing (CIDR)表記を使用して、必要なIPアドレスに十分な大きさのサブネット・マスクおよびネットワーク・アドレス範囲を指定します。標準のプライベートIPアドレス・ブロック内のアドレス空間を使用します。
オンプレミス・ネットワークと重複しないアドレス範囲を選択して、必要に応じてVCNとオンプレミス・ネットワーク間の接続を設定できるようにします。
VCNの作成後は、そのアドレス範囲を変更することはできません。
サブネットを設計する場合は、機能およびセキュリティ要件を考慮してください。同じ層またはロール内のすべてのコンピュート・インスタンスを、セキュリティ境界として機能できる同じサブネットにアタッチします。
リージョナル・サブネットの使用。
- ロード・バランサ
このアーキテクチャでは、Always Freeの10 Mbpsロード・バランサを使用します。
非フリー・ロード・バランサのシェイプは100 Mbpsから始まります。必要な同時接続の数および合計スループットに応じて、より大きなシェイプを使用できます。
ロード・バランサのIPアドレスは予約できないため、DNS名を使用することをお薦めします。
- インスタンス
柔軟なシェイプの一部として、すべてのテナンシはAmpere A1コンピュート・シェイプの4コアを無料で、合計24 GBのメモリーを使用できます。
- データベース(DB)システム
すべてのテナンシは、Always FreeのOracle Autonomous Databaseを2つ取得します。Autonomous Databaseでは、Oracleがインフラストラクチャのプロビジョニングおよびメンテナンスを処理する共有Exadataインフラストラクチャが使用されます。
複数のデータベースが必要な場合は、無料でないOracle Autonomous Databaseを使用します。
- 記憶域
このアーキテクチャのインスタンスは通常のブロック・ストレージを使用するため、追加のパフォーマンスは必要ありません。
- ネットワーク接続性
サイト間VPNまたはFastConnectとの専用接続を使用して既存のオンプレミス・インフラストラクチャに接続することで、環境を管理できます。
環境を既存のインフラストラクチャから分離する必要がある場合、または外部からアクセスする必要がある場合は、要塞ホストで管理接続を保護できます。要塞ホストは通常、非武装地帯(DMZ)でプロビジョニングされます。機密リソースは、クラウドの外部から直接アクセスできないプライベート・ネットワークに配置することで保護されます。アクセスを損なうことなく、アーキテクチャのより機密性の高いコンポーネントを公開することを回避できます。
注意事項
この参照アーキテクチャをデプロイする際は、次の点を考慮してください。
- パフォーマンス
このアーキテクチャでは、Oracle Cloud InfrastructureのAlways Freeリソースを使用します。処理能力の制限のため、このアーキテクチャは本番用ではありません。より厳しいワークロードの場合は、インスタンス、ロード・バランサおよびデータベースの通常のシェイプを使用する必要があります。
- セキュリティ
要塞ホスト(存在する場合)およびロード・バランサを除き、すべてのコンポーネントはプライベート・サブネットに配置する必要があります。
- 可用性
ロード・バランサとデータベースは冗長であり、これらの機能を利用するための介入は必要ありません。Tomcatサーバーはペアとしてデプロイされ、ロード・バランサによってバランシングされます。さらにノードを追加できますが、Always Free層には含まれません。
- コスト
このアーキテクチャでは、Always Free層を使用します。標準のデプロイメント構成を使用する場合、コストはかかりません。
デプロイ
このリファレンス・アーキテクチャのTerraformコードは、GitHubで入手できます。シングルクリックでコードをOracle Cloud Infrastructure Resource Managerにプルし、スタックを作成してデプロイできます。または、GitHubからコンピュータにコードをダウンロードし、コードをカスタマイズし、Terraform CLIを使用してアーキテクチャをデプロイします。
- Oracle Cloud Infrastructure Resource Managerを使用したデプロイ:
をクリックします。
まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。
- 契約条件を確認して同意します。
- スタックをデプロイするリージョンを選択してください。
- 画面上のプロンプトと手順に従ってスタックを作成します。
- スタックの作成後、「Terraform処理」をクリックし、「プラン」を選択します。
- ジョブが完了するまで待機し、計画を確認します。
変更するには、「スタックの詳細」ページに戻り、「スタックの編集」をクリックして必要な変更を行います。その後、プラン処理を再度実行します。
- 追加の変更が必要ない場合は、スタックの詳細ページに戻り、「Terraformアクション」をクリックして「適用」を選択します。
- GitHubでTerraformコードを使用してデプロイします。
- GitHubに移動します。
- リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
README
ドキュメントの指示に従います。
詳細情報
このアーキテクチャの学習、変更、使用または実装に役立つ追加情報へのリンク。
-
TomcatをOracle Cloud Infrastructureに移行し、Autonomous Databaseに接続する、Oracle LiveLabsの無料の実践的なワークショップ。
-
JDBC、ユニバーサル接続プールおよび埋込みJVMを使用してOracle Databaseに接続する方法について説明する技術記事、ホワイト・ペーパー、コード・サンプル、FAQなど。
-
Oracle JDBCドライバを使用してOracle Databaseに接続するJava Servletのコード・サンプルを含むGitHub上のリポジトリ。