JavaおよびJavaアプリケーションのインストールのモニターおよび管理

Java Management Service (JMS)を使用して、環境(Oracle Cloud Infrastructure (OCI)、オンプレミスおよびサードパーティ・クラウドでのJavaおよびアプリケーションのインストール)でのJavaおよびJavaアプリケーションのインストールを監視および管理できます。 JMSは、管理対象インスタンスにインストールされたJava Runtime Environment (JRE)の詳細の表示、管理対象インスタンス内のアプリケーションによって使用されているJavaバージョンの表示、またはセキュリティ・ベースラインを下回る管理対象インスタンスのJREの表示などの基本機能を提供します。Oracle Java SEサブスクリプションがある場合は、Oracle Javaインストールの管理、Java Development Kit (JDK)フライト・レコーダの実行、アプリケーションの別のJREへの移行の評価、実行中のアプリケーションで使用されるJavaライブラリのスキャンなどのJMS拡張機能を使用できます。

開始する前に

このリファレンス・アーキテクチャでは、OCIに正常にオンボーディングされていることを前提としています。

JMSは、商用レルムおよび制限付きレルムにデプロイできるOCIネイティブ・サービスです。API (OCI Software Development Kit (SDK) for JMS)またはJMSコンソールからアクセスできます。

テナンシのコンパートメント内にJMSフリートを作成します。複数のJMSフリートおよびリソースを1つ以上の地理にまたがって設定できます。フリートを使用して、関連するリソースへのアクセスを制御し、企業内の部門に割り当てます。このアプローチにより、顧客企業の各部門が独自のフリートおよびリソースを制御できます。

JMSオンボーディングを完了するには、次の手順を実行します。

  1. JMS用のOracle Cloud Infrastructureの設定(手動ポリシーを管理するか、ウィザードを使用します)。
  2. JMSフリートを作成します
  3. エージェントをデプロイするか、エージェントを構成してJMSプラグインを有効にします。
  4. 管理対象インスタンスのJavaインストールおよびアプリケーションをモニターします。
  5. 必要に応じて、高度な機能操作を実行します。

詳細は、OCIドキュメントのJava管理サービスを参照してください。

アーキテクチャ

このアーキテクチャでは、JMSを使用して、管理対象インスタンス環境で実行されているJavaインストールおよびJavaアプリケーションに関するインサイトを収集する方法を示します。JMSはエージェントを使用して、環境内のJDK/JREを監視します。これらのJMSエージェントのインストール、構成および有効化の所有権を取得できます。

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-topology.pngの説明

jms-oci-topology-oracle.zip

次に、管理対象インスタンスにインストールされているJMSエージェントとOCI上のJMSサービス間のデータ・フローの概要を示します。

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

次の図に、JMSエージェントとOCIサービスの間のデータ・フローを示します。

jms-oci-workflow.pngの説明が続きます
図jms-oci-workflow.pngの説明

jms-oci-workflow-oracle.zip

JMSエージェントとOCIサービスの間のデータ・フローは次のとおりです。
  1. ユーザー: JMSエージェントにエージェントをインストールし、リクエストがJMSエージェント(リクエスト)に送信されます。
  2. JMSエージェント: 登録リクエストをOCIサービス(リクエスト)に送信します。
  3. OCIサービス: キーを検証し、メタデータおよび認証トークンを返し、JMSエージェント(レスポンス)に応答を送信します。
  4. JMSエージェント: エージェントが起動され、レスポンスがユーザー(レスポンス)に送信されます。
  5. JMSエージェント: リクエストされたプラグインをOCIサービス(リクエスト)にインストールします。
  6. JMSエージェント: 作業(リクエスト)のリクエストとしてOCIサービスをポーリングします。
  7. OCIサービス: 作業(レスポンス)のリクエストを送信します。
  8. JMSエージェント: エージェントはプラグイン・バンドルを取得し、インストールします(リクエスト)。
  9. JMSエージェント: 定期的にポーリングし、顧客テナンシ(リクエスト)のOCIサービスにインベントリを送信します。

次のネットワーク図は、ホスト・マシン(オンプレミス)にインストールされているJMSエージェントとOCIで実行されているJMSの間のトラフィック・フローの概要を示しています。OCIとJMSのホスト・マシン間で同様のトラフィック・パターンが発生します。

jms-oci-network-traffic.pngの説明が続きます
図jms-oci-network-traffic.pngの説明

jms-oci-network-traffic-oracle.zip

  • JMSエージェントは、ファイアウォール(443)で許可されているオープン・ポートを使用してOCIで自身を認証することにより、常にリクエストを開始します。
  • OCIの管理エージェントおよびJMSサービスは、エージェントにデータをプッシュしません。
  • JMSエージェントは、サービスで作業リクエストをポーリングします。
    • JMSエージェント作業リクエストのポーリング間隔は、30秒以下にできます。
    • JMSエージェントのポーリング間隔は構成可能で、最大ポーリング間隔は10分です。
  • 送信されるデータはTLSを使用して暗号化されます。
  • その後、OCIサービスは、接続が確立されると、これらのリクエストに応じてデータを返送します。

このアーキテクチャには、次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、長距離の場合は(複数の国または大陸にまたがって)分離できます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインには影響しません。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。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 Oracle Cloud Infrastructure 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 Oracle Cloud Infrastructure 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

    テナンシは、Oracle Cloud Infrastructureのサインアップ時にOracle Cloud内でOracleによって設定される、セキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は1つのテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、1つのテナンシは1つのサブスクリプションに関連付けられ、1つのサブスクリプションには通常、1つのテナンシのみが含まれます。

  • ロギング
    Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルな完全管理型のサービスです:
    • 監査ログ: 監査サービスによって発行されたイベントに関連するログ。
    • サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されるログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
  • モニタリング

    Oracle Cloud Infrastructure Monitoringサービスは、メトリックを使用してクラウド・リソースをアクティブおよびパッシブに監視し、リソースおよびアラームを監視して、これらのメトリックがアラーム指定のトリガーを満たしたときに通知します。

  • ポリシー

    Oracle Cloud Infrastructure Identity and Access Managementポリシーでは、誰がどのリソースにどのようにアクセスできるかを指定します。アクセス権はグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメント内またはテナンシへの特定のタイプのアクセス権をグループに付与するポリシーを記述できます。

  • Oracle Cloud Infrastructure Vault

    Oracle Cloud Infrastructure Vaultでは、データを保護する暗号化キーと、クラウド内のリソースへのアクセスを保護するために使用するシークレット資格証明を集中管理できます。Vaultサービスを使用して、ボールト、キーおよびシークレットを作成および管理できます。

    OCI Vaultは、ボールトおよびキーを管理するための豊富なRest APIセットも提供します。

  • ワークフロー

    Oracle Cloud Infrastructure Workflowサービスは、開発者およびアーキテクト向けのグラフィカル・フロー・デザイナを備えたサーバーレス・ワークフロー・エンジンです。OCI Functions、AI/MLなどのOCIサービスのオーケストレーションの作成と実行を加速し、エンタープライズ・ロジック、ITタスク、データ・ジョブを実行します。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • APIゲートウェイ

    Oracle Cloud Infrastructure API Gatewayでは、ネットワーク内からアクセスでき、必要に応じてパブリック・インターネットに公開できるプライベート・エンドポイントを含むAPIを公開できます。エンドポイントは、API検証、リクエストとレスポンスの変換、CORS、認証と認可およびリクエスト制限をサポートします。

  • Autonomous Database

    Oracle Autonomous Databaseは、トランザクション処理およびデータ・ウェアハウス・ワークロードに使用できる、完全管理型の事前構成済データベース環境です。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureは、データベースの作成、バックアップ、パッチ適用、アップグレードおよびチューニングを処理します。

  • 要塞ホスト

    要塞ホストは、クラウド外部からトポロジへのセキュアで制御されたエントリ・ポイントとして機能するコンピュート・インスタンスです。要塞ホストは、通常非武装ゾーン(DMZ)でプロビジョニングされます。機密リソースは、クラウドの外部から直接アクセスできないプライベート・ネットワークに配置することで保護できます。トポロジには、定期的にモニターおよび監査できる単一の既知のエントリ・ポイントがあります。そのため、トポロジへのアクセスを損なうことなく、より機密性の高いコンポーネントの公開を回避できます。

  • コンピュート

    Oracle Cloud Infrastructure Computeを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスの作成後は、セキュアにアクセスし、再起動、ボリュームのアタッチおよびデタッチ、および不要になったときに終了できます。

  • DNS

    Oracle Cloud Infrastructure Domain Name System (DNS)サービスは、拡張性の高いグローバル・エニーキャスト・ドメイン・ネーム・システム(DNS)ネットワークで、DNSのパフォーマンス、自己回復性およびスケーラビリティが向上し、エンド・ユーザーがどこからでもインターネット・アプリケーションに迅速に接続できるようにします。

  • Kafkaストリーム

    Kafka Streamsは、入力および出力データがKafkaクラスタに格納されるアプリケーションおよびマイクロサービスを構築するためのクライアント・ライブラリです。クライアント側で標準のJavaおよびScalaアプリケーションを記述およびデプロイする簡略性と、Kafkaのサーバー側クラスタ・テクノロジのメリットを組み合せます。

  • オブジェクト・ストレージ

    Oracle Cloud Infrastructure Object Storageでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。

  • 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が提供するデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプ、およびそれらに対して実行を許可するアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。

    クラウド・ガードをテナンシ・レベルで適用して、最も広い範囲をカバーし、複数の構成を維持する管理上の負担を軽減します。

    管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。

  • セキュリティ・ゾーン

    最大限のセキュリティーを必要とするリソースの場合、Oracleではセキュリティーゾーンを使用することをお勧めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースにパブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成および更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます。

  • ネットワーク・セキュリティ・グループ(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を機能させることは許容できる場合があります。

確認

  • 作成者: Atiq Ahamad
  • コントリビュータ: Amit Naik, Teck Kian Choo, Laura Hartman, Cindy Church