JavaおよびJavaアプリケーションのインストールのモニターおよび管理
開始する前に
このリファレンス・アーキテクチャでは、OCIに正常にオンボーディングされていることを前提としています。
JMSは、商用レルムおよび制限付きレルムにデプロイできるOCIネイティブ・サービスです。API (OCI Software Development Kit (SDK) for JMS)またはJMSコンソールからアクセスできます。
テナンシのコンパートメント内にJMSフリートを作成します。複数のJMSフリートおよびリソースを1つ以上の地理にまたがって設定できます。フリートを使用して、関連するリソースへのアクセスを制御し、企業内の部門に割り当てます。このアプローチにより、顧客企業の各部門が独自のフリートおよびリソースを制御できます。
JMSオンボーディングを完了するには、次の手順を実行します。
- JMS用のOracle Cloud Infrastructureの設定(手動でポリシーを管理するか、ウィザードを使用します)。
- JMSフリートを作成します。
- エージェントをデプロイするか、エージェントを構成してJMSプラグインを有効にします。
- 管理対象インスタンスのJavaインストールおよびアプリケーションをモニターします。
- 必要に応じて、高度な機能操作を実行します。
詳細は、OCIドキュメントのJava管理サービスを参照してください。
アーキテクチャ
JMSエージェントは管理対象インスタンスにインストールされ、Java使用状況テレメトリおよびJava使用状況メタデータを収集します。テレメトリ・データは、プライバシ保護のためにテナンシに発行および格納されます。
Java使用メタデータは、テナンシにインストールされているエージェントによってテナンシから抽出されます。JMSは、このメタデータを使用して、Javaバージョン、セキュリティ・ベースライン、今後のJava更新、アプリケーション使用状況などのインサイトを生成します。これは、OCIコンソールにログオンしたときに表示されます。除外されたメタデータの処理を超えるOracleアクセスはありません。
JMSで使用可能な高度な機能を使用すると、Javaアプリケーション・サーバーの使用状況を分析し、環境で実行されているアプリケーションによって使用されるJavaライブラリ内の潜在的な脆弱性を識別し、Javaフライト・レコーダを使用してパフォーマンスおよび暗号分析を行い、環境内のOracle Javaランタイム(JDKバージョン)を管理できます。拡張機能を使用して、環境で実行されているJavaを管理できます。
次の図は、本番環境でのJMSサービスのトポロジを示しています。この図は、OCIで実行されているJava、オンプレミスのデスクトップ、ラップトップとサーバー、サードパーティのクラウド・サービスを追跡するためにデプロイされたエージェントを示しています。これらのエージェントは管理対象インスタンスにデプロイされ、テナンシ内に作成されたリソース(フリート)に関連付けられます。
次の図は、このリファレンス・アーキテクチャを示しています。

図jms-oci-topology.pngの説明
次に、管理対象インスタンスにインストールされているJMSエージェントとOCI上のJMSサービス間のデータ・フローの概要を示します。
- エージェントを管理対象インスタンスにインストールし、エージェントはOCIに登録します。
- JMSプラグインを構成または有効化します(JMSフリートをパラメータとして渡します)。JMSエージェントは、目的のJMSフリートに関連付けられます。
- 登録されたJMSエージェントは、JMSに作業をポーリングします。JMSは、適切な作業リクエストがある場合は、ポーリングに応答します。
- JMSエージェントは、管理対象インスタンスのJavaインストールまたは使用状況トラッカ内のエントリを定期的にスキャンし、JavaメトリックおよびJavaメタデータをOCIに送信します。
次の図に、JMSエージェントとOCIサービスの間のデータ・フローを示します。

図jms-oci-workflow.pngの説明
- ユーザー: JMSエージェントにエージェントをインストールし、リクエストがJMSエージェント(リクエスト)に送信されます。
- JMSエージェント: 登録リクエストをOCIサービス(リクエスト)に送信します。
- OCIサービス: キーを検証し、メタデータおよび認証トークンを返し、JMSエージェント(レスポンス)に応答を送信します。
- JMSエージェント: エージェントが起動され、レスポンスがユーザー(レスポンス)に送信されます。
- JMSエージェント: リクエストされたプラグインをOCIサービス(リクエスト)にインストールします。
- JMSエージェント: 作業(リクエスト)のリクエストとしてOCIサービスをポーリングします。
- OCIサービス: 作業(レスポンス)のリクエストを送信します。
- JMSエージェント: エージェントはプラグイン・バンドルを取得し、インストールします(リクエスト)。
- JMSエージェント: 定期的にポーリングし、顧客テナンシ(リクエスト)のOCIサービスにインベントリを送信します。
次のネットワーク図は、ホスト・マシン(オンプレミス)にインストールされているJMSエージェントとOCIで実行されているJMSの間のトラフィック・フローの概要を示しています。OCIとJMSのホスト・マシン間で同様のトラフィック・パターンが発生します。

図jms-oci-network-traffic.pngの説明
jms-oci-network-traffic-oracle.zip
- JMSエージェントは、ファイアウォール(443)で許可されているオープン・ポートを使用してOCIで自身を認証することにより、常にリクエストを開始します。
- OCIの管理エージェントおよびJMSサービスは、エージェントにデータをプッシュしません。
- JMSエージェントは、サービスで作業リクエストをポーリングします。
- JMSエージェント作業リクエストのポーリング間隔は、30秒以下にできます。
- JMSエージェントのポーリング間隔は構成可能で、最大ポーリング間隔は10分です。
- 送信されるデータはTLSを使用して暗号化されます。
- その後、OCIサービスは、接続が確立されると、これらのリクエストに応じてデータを返送します。
このアーキテクチャには、次のコンポーネントがあります。
- リージョン
OCIリージョンとは、可用性ドメインをホストする1つ以上のデータ・センターを含む、ローカライズされた地理的領域のことです。リージョンは他のリージョンから独立しており、長距離の場合は複数の国または大陸にまたがる領域を分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインには影響しません。
- コンパートメント
コンパートメントは、OCIテナンシ内のリージョン間論理パーティションです。コンパートメントを使用して、Oracle Cloudリソースの編成、アクセス制御および使用量割当て制限を設定します。特定のコンパートメントでは、アクセスを制御するポリシーを定義し、リソースの権限を設定します。
- 動的ルーティング・ゲートウェイ(DRG)
The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another OCI region, an on-premises network, or a network in another cloud provider.
- インスタンス・プール
インスタンス・プールは、同じインスタンス構成で作成され、グループとして管理されるリージョン内のインスタンスのグループです。
- オンプレミス・ネットワーク
これは、組織で使用されるローカル・ネットワークです。
- セキュリティ・リスト
サブネットごとに、サブネット内外で許可されるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。
- セキュリティ・ゾーン
セキュリティ・ゾーンは、データの暗号化やネットワークへのパブリック・アクセスの防止など、コンパートメント全体にポリシーを適用することで、Oracleセキュリティの主要なベスト・プラクティスを実装します。セキュリティ・ゾーンは、同じ名前のコンパートメントに関連付けられ、コンパートメントとそのサブコンパートメントに適用されるセキュリティ・ゾーン・ポリシー(レシピ)が含まれます。セキュリティ・ゾーン・区分に標準コンパートメントを追加したり、移動することはできません。
- 動的ルーティング・ゲートウェイ(DRG)
The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another OCI region, an on-premises network, or a network in another cloud provider.
- サービス・ゲートウェイ
サービス・ゲートウェイは、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.
- Tenancy
テナンシは、OCIへのサインアップ時にOracleがOracle Cloud内で設定する、セキュアで分離されたパーティションです。テナンシ内のOCI上でリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシの組織構造を反映させます。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションは通常、1つのテナンシのみを持ちます。
- OCIロギングOracle Cloud Infrastructure Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルで完全管理型のサービスです:
- 監査ログ: OCI監査によって生成されたイベントに関連するログ。
- サービス・ログ: OCI APIゲートウェイ、OCIイベント、OCIファンクション、OCIロード・バランシング、OCIオブジェクト・ストレージおよびVCNフロー・ログなどの個々のサービスによってパブリッシュされたログ。
- カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むロギング。
- OCIモニタリング
Oracle Cloud Infrastructure Monitoringは、クラウド・リソースをアクティブおよびパッシブに監視し、メトリックが指定されたトリガーを満たしたときにアラームを使用して通知します。
- ポリシー
Oracle Cloud Infrastructure Identity and Access Managementポリシーでは、誰がどのリソースにどのようにアクセスできるかを指定します。アクセス権はグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメント内またはテナンシへの特定のアクセス・タイプをグループに許可するポリシーを記述できます。
- OCI Vault
Oracle Cloud Infrastructure Vaultでは、データを保護する暗号化キーと、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を作成し、一元管理できます。デフォルトのキー管理は、Oracle管理キーです。OCI Vaultを使用する顧客管理キーを使用することもできます。OCI Vaultは、ボールトおよびキーを管理するための豊富なREST APIセットを提供します。
- OCIワークフロー
Oracle Cloud Infrastructure Workflowは、開発者およびアーキテクト向けのグラフィカル・フロー・デザイナを備えたサーバーレス・ワークフロー・エンジンです。これにより、OCI FunctionsやAI/MLなどのOCIサービスの作成、実行およびオーケストレーションが加速されます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
仮想クラウド・ネットワーク(VCN)は、ソフトウェアで定義されたカスタマイズ可能なネットワークであり、OCIリージョン内に設定します。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには、VCNの作成後に変更できる重複しない複数のクラスレス・ドメイン間ルーティング(CIDR)ブロックを複数含むことができます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- OCI APIゲートウェイ
Oracle Cloud Infrastructure API Gatewayでは、ネットワーク内からアクセスでき、必要に応じてパブリック・インターネットに公開できるプライベート・エンドポイントを含むAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可およびリクエスト制限をサポートします。
- Oracle Autonomous Database
Oracle Autonomous Databaseは、トランザクション処理およびデータ・ウェアハウス・ワークロードに使用できる、完全に管理された事前構成済のデータベース環境です。ハードウエアの構成や管理、ソフトウェアのインストールを行う必要はありません。OCIは、データベースの作成、バックアップ、パッチ適用、アップグレードおよびチューニングを処理します。
- 要塞ホスト
要塞ホストは、クラウド外部からトポロジへのセキュアで制御されたエントリ・ポイントとして機能するコンピュート・インスタンスです。要塞ホストは、通常非武装ゾーン(DMZ)でプロビジョニングされます。機密リソースは、クラウドの外部から直接アクセスできないプライベート・ネットワークに配置することで保護できます。トポロジには、定期的にモニターおよび監査できる単一の既知のエントリ・ポイントがあります。そのため、トポロジへのアクセスを損なうことなく、より機密性の高いコンポーネントの公開を回避できます。
- OCIコンピューティング
Oracle Cloud Infrastructure Computeを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスの作成後は、セキュアにアクセスし、再起動、ボリュームのアタッチおよびデタッチ、および不要になったときに終了できます。
- OCI DNS
Oracle Cloud Infrastructure Domain Name System (DNS)サービスは、拡張性の高いグローバル・エニーキャスト・ドメイン・ネーム・システム(DNS)ネットワークで、DNSのパフォーマンス、自己回復性およびスケーラビリティが向上し、エンド・ユーザーがどこからでもインターネット・アプリケーションに迅速に接続できるようにします。
- Kafkaストリーム
Kafka Streamsは、入力および出力データがKafkaクラスタに格納されるアプリケーションおよびマイクロサービスを構築するためのクライアント・ライブラリです。クライアント側で標準のJavaおよびScalaアプリケーションを記述およびデプロイする簡略性と、Kafkaのサーバー側クラスタ・テクノロジのメリットを組み合せます。
- OCIオブジェクト・ストレージ
OCIオブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージおよびビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データの大量へのアクセスを提供します。アプリケーションから直接、またはクラウド・プラットフォーム内から、安全かつ安全にデータを格納できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張することができます。
迅速、即時、頻繁にアクセスする必要のあるホット・ストレージに標準ストレージを使用します。長期間保存し、ほとんどまたはめったにアクセスしないコールド・ストレージにアーカイブ・ストレージを使用します。
- Oracle Management Agent
Oracle Management Agentは、Oracle Cloud Infrastructureとオンプレミス管理対象インスタンス間の低レイテンシの対話型通信およびデータ収集を提供するサービスです。管理エージェントは、監視するソースからデータを収集します。Oracle Cloud Serviceの管理エージェント・サービスは、管理エージェントのライフサイクルとサービスのプラグインを管理します。
- Oracle Cloud Agent
Oracle Cloud Agentは、OCI上のコンピュート・インスタンスで実行されているプラグインのライフサイクルを管理する軽量プロセスです。JMSプラグインは、OCIの管理対象インスタンスにデプロイされた環境からJavaメタデータを収集します。JMSプラグインは、このJavaメタデータをOCIのJMSサービスにエクスポートします。
- サービスとしてのキエフ(KaaS)
KaaSは、主にOCI上のコントロール・プレーン・サービスで使用されるフルマネージド・データ・プラットフォーム・サービスです。KaaSは、簡単に統合、シリアライズ可能なスキャン、変更フィード・ストリーミングなどの機能のための高レベルのNoSQL APIを提供します。KaaSは、Kievの上に構築されたサービスです。Kievは、利便性のためにミニトランザクションもサポートする「NoSQLキーバリュー・ストア」です。アプリケーションの同時実行性のバグを防ぐため、Kievのミニトランザクションは、OracleおよびMySQLで一般的に使用されるより弱い分離レベルよりも強力な保証を提供する強力な分離を備えています。Kievの可用性SLAは99.9%です。
レコメンデーション
- VCN
VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを、セキュリティ境界として機能できる同じサブネットにアタッチします。
リージョナル・サブネットを使用します。
- セキュリティ
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前にモニターおよびメンテナンスします。最大限のセキュリティのためにセキュリティ・ゾーンを使用します。
- クラウド・ガード
Oracleが提供するデフォルト・レシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプと、それらに対して実行できるアクションを指定できます。たとえば、可視性がパブリックに設定されているOCIオブジェクト・ストレージ・バケットを検出できます。
Oracle Cloud Guardをテナンシ・レベルで適用して、広範な範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティを必要とするリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースには、パブリック・インターネットからアクセスできない必要があり、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、OCIはレシピのポリシーに対して操作を検証し、いずれかのポリシーに違反する操作を防止します。
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGでは、VCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
- ロード・バランサの帯域幅
ロード・バランサの作成時に、固定帯域幅を提供する事前定義済シェイプを選択するか、帯域幅範囲を設定するカスタム(フレキシブル)シェイプを指定して、トラフィック・パターンに基づいて帯域幅を自動的にスケーリングできます。どちらのアプローチでも、ロード・バランサの作成後にいつでも帯域幅シェイプを変更できます。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- パフォーマンスオンプレミスの管理対象インスタンスでJavaインストールおよびjavaアプリケーションを検出および管理するためのリファレンス・アーキテクチャを実装する場合は、次の項目を考慮してください。
- JMSでは、エージェントを使用してJavaメタデータを抽出します(ネットワーク・トラフィックおよび慎重なファイアウォール構成が考慮されます)。
- エージェントでは、管理対象インスタンスで実行するために最新のJRE 8バージョンが必要です。
- エージェントは、管理対象インスタンスで512MBのヒープ・メモリーを解放する必要があります。
- エージェントは、管理対象インスタンスのCPUについてアプリケーションと競合します。
除外されたメタデータは、ログ・オブジェクトで使用できます。JMSはメタデータを処理してインサイトを生成します。これらのインサイトとメトリックは、サービス所有のOracle Autonomous Transaction Processingデータベースに格納されます。APIを使用して、環境にデプロイされたJavaに関する過去のインサイトについてサービスに問い合せることができます。JMSはリアルタイム・システムではありません。他の多数のカスタマ問合せによるサービスのロードにより、現在および過去のインサイトを提供するレイテンシが発生する可能性があります。
- セキュリティ
ポリシーを使用して、エンタープライズ内のOracle Cloud Infrastructure (OCI)リソースにアクセスできるユーザー、およびリソースにアクセスする方法を制限します。Javaメタデータは、企業が所有するログ・オブジェクトに環境から排出されます。JMSはこのメタデータを処理し、インサイトが表示されます。インサイトはOracle Autonomous Transaction Processingデータベースに格納されます。生成したレポートは、OCI Object Storageに格納されます。
暗号化はOCI Object Storageに対してデフォルトで有効になっており、オフにできません。
- 可用性
JMSは、公開されたサービス・レベル目標が3'9s (99.9)のカテゴリ10サービスとして指定されています。
- コスト
JMSは無料のサービスです。環境内のJavaに対するインサイトを監視および問い合せるための基本機能は、すべてのユーザーが使用できます。環境でのJavaの管理を含む高度な機能は、オンプレミス管理対象インスタンスを実行しているJava SEサブスクライバのみが使用できます。JMSの全機能バージョンは、OCIでワークロード全体を実行するときにも使用できます。
オンプレミス・マネージド・インスタンスがあり、最小限のJavaワークロードを使用する場合、(コンピュート、ストレージおよびネットワークのエグレス・コストの最小限の月額コストを回避して)OCIの無料層の制限内でJMSを機能させることは許容できる場合があります。
詳細の参照
「Oracle LinuxホストでのJavaの使用状況を監視するためのJava Management Serviceの設定」に移動して、Oracle LinuxマシンでJavaの使用状況の監視を設定および有効化します。