OCI APMサービスでの可用性モニタリングを使用したアプリケーションの問題の事前検出

本番環境では、アプリケーションが常に使用可能で機能している必要があります。ただし、問題が発生し、すぐに修正する必要があります。アプリケーションのステータスを継続的に監視することで、アプリケーションによって提供されるサービスの品質が保証されます。Oracle Cloud Infrastructure (OCI) Application Performance Monitoring (APM) サービスの可用性モニタリングは、可用性とパフォーマンスの問題をプロアクティブに検出してから、ビジネス・エクスペリエンスやユーザー・エクスペリエンスに影響を与えます。世界中の事前構成済の一連の場所から所定のモニターを実行し、テナンシにプライベートに設定されたセキュアな場所を実行することで、ユーザーがアプリケーションで経験する可能性のあるクリティカルなトランザクション・フローをシミュレートします。

アーキテクチャ

このリファレンス・アーキテクチャは、APMバンテージ・ポイントを設定して、企業ネットワーク内で実行されているアプリケーションを安全に監視するための2つのオプションを示しています。これは、パブリックAPMバンテージ・ポイントではアクセスできません。2つの方法は次のとおりです。

  • オンプレミス・バンテージ・ポイント

    最初のアプローチでは、オンプレミス・インフラストラクチャにオンプレミス・バンテージ・ポイント(OPVP)を設定します。企業ネットワークにOPVPをデプロイすることで、ファイアウォールの背後に実行されているアプリケーションのモニター・プライベート・エンドポイントを設定できます。

    OPVP構成の一部として、モニターを実行できる環境に可用性オンプレミス・バンテージ・ポイント・ワーカー(ワーカーとも呼ばれる)をデプロイする必要があります。ワーカーをデプロイするには、APMドメインのプライベート・データ・キーまたはAPMドメインの更新権限が必要です。デプロイメントは、スタンドアロンの計算、Kubernetesおよび複数のコンテナ・インスタンスでサポートされます。モニターが作成され、OPVPで実行するようにスケジュールされている場合、ワーカーはスケジュールされた間隔でモニターを実行します。モニターが起動されると、OPVPはAPMドメインと通信し、メトリック、ブラウザ・ログ、ネットワーク・トレース・データ、スクリーンショットおよびHARファイルを提供します。詳細は、次の「詳細」からアクセスできるOCIドキュメント「オンプレミス・バンテージ・ポイントの使用」を参照してください。

    次の例は、オンプレミス・ネットワークにデプロイされたOPVPを示していますが、オンプレミス環境またはセキュア・クラウド環境内の任意の環境内にOPVPをデプロイできます。


    opvp-arch.pngの説明が続きます
    図opvp-arch.pngの説明

    opvp-arch-oracle.zip

    この図のコールアウトは、次のことを示しています。
    • A:ヘルス・メトリックはOPVPワーカーによってアップロードされます。
    • B:メトリックHARファイルおよびスクリーンショットがAPMドメインに送信されます。
  • 専用のバンテージ・ポイント

    2つ目のアプローチでは、Oracleテナンシに専用のバンテージ・ポイントを設定します。専用バンテージ・ポイントをデプロイすると、Kubernetesクラスタがコンパートメント内に自動的にデプロイされます。これにより、アプリケーションが実行されているVCNに接続されます。デプロイメントには、専用のバンテージ・ポイント内の個々のモニターのデプロイメントを編成するデプロイメント・マネージャが含まれます。

    専用のバンテージ・ポイントで実行するようにモニターが作成およびスケジュールされると、スケジュールされた間隔でモニターを実行するDockerイメージが作成されます。モニターが実行されると、専用のバンテージ・ポイントはAPMドメインと通信し、メトリック、ブラウザ・ログ、ネットワーク・トレース・データ、スクリーンショットおよびHARファイルを提供します。


    synth-monitor-apm-arch.pngの説明が続きます
    図synth-monitor-apm-arch.pngの説明

    synth-monitor-apm-arch-oracle.zip

    この図のコールアウトは、次のことを示しています。
    • A: APMサービスは、OCIストリームにデータを送信します。
    • B:デプロイメント・マネージャは、OCIストリームからデータを取得します。
    • C:アップロードされたヘルス・モニタリング・メトリック。
    • D:メトリック、HARファイルおよびスクリーンショットがAPMドメインに送信されます。
    • E:トレース、スパンおよびメトリックはAPMドメインに送信されます(オプション)。
これらのアーキテクチャには、次のコンポーネントがあります。
  • リージョン

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

  • Tenancy

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

  • コンパートメント

    コンパートメントは、OCIテナンシ内のクロスリージョン論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成し、リソースへのアクセスを制御して、使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。

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

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

  • デプロイメント・マネージャ

    デプロイメント・マネージャを使用すると、宣言構成を使用してKubernetesリソースを作成、説明、更新および削除できます。この構成は、Kubernetesリソースを構成したり、JinjaマークアップまたはPythonスクリプトを含むYAMLファイル・テンプレートにパラメータを提供するYAMLファイルです。

  • Container Engine for Kubernetes

    Oracle Cloud Infrastructure Container Engine for Kubernetesは、コンテナ化されたアプリケーションをクラウドにデプロイするために使用できる、完全に管理されたスケーラブルで可用性の高いサービスです。アプリケーションで必要なコンピュート・リソースを指定すると、Container Engine for KubernetesはそれらをOCIの既存のテナンシにプロビジョニングします。Container Engine for KubernetesはKubernetesを使用して、ホストのクラスタ間でコンテナ化アプリケーションのデプロイメント、スケーリングおよび管理を自動化します。

  • 可用性オンプレミス・バンテージ・ポイント・ワーカー

    ワーカーとも呼ばれ、これは、ブラウザおよびスクリプト・エンジンのインストゥルメンテーションを処理して必要なコマンドを実行し、必要な可観測性データを収集してAPMコレクタに送信する、ユーザー管理Oracle固有のコンポーネントです。

  • 合成エージェント

    合成エージェントは、ブラウザおよびスクリプト・エンジンのインストゥルメンテーションを処理して目的のコマンドを実行し、必要な可観測性データを収集し、APMコレクタに送信する、Oracle管理独自のコンポーネントです。

  • Application Performance Monitoring

    Oracle Application Performance Monitoringは、エンド・ユーザーからアプリケーション・ログまで、アプリケーションのパフォーマンスに関する詳細な可視性を提供する、Platform as a Service (PaaS)ベースのソリューションです。このサービスは、ユーザー・エクスペリエンス情報、アプリケーション・メトリックおよびログ・データ分析を統合します。

    • APMドメイン

      APMドメインは、Application Performance Monitoringでモニターされているシステムを含むOCIリソース・タイプです。

      各APMドメインは標準のOCIコンパートメント内に作成されます。OCIアクセス制御ポリシーを定義して、特定のユーザー・セットに対してAPMドメインへのアクセス権を付与できます。

    • 可用性モニタリング

      可用性モニタリングは、プロアクティブなモニタリングを可能にします。これにより、開発者およびオペレータは、ユーザーが影響を受ける前に問題を防止できます。アプリケーションの可用性を確保するために、スケジュール済モニターを実行する機能が備わっています。

      可用性モニタリングを使用すると、ブラウザ、スクリプト・ブラウザ、RESTおよびスクリプト化されたRESTネットワーク、DNS、FTPおよびSQLの4つのタイプのモニターを作成できます。これらは、バンテージ・ポイントと呼ばれる様々な地理的な場所から実行できます。

    • バンテージ・ポイント
      バンテージ・ポイントは、可用性モニターを定義および実行できる場所です。バンテージ・ポイントには、次の3つのタイプがあります。
      • パブリック・バンテージ・ポイント

        世界中の多様な事前構成済ロケーションのセットで、モニターを実行できます。

      • 専用のバンテージ・ポイント

        モニターを安全に実行できるように、テナンシで設定できる場所。

      • オンプレミス・バンテージ・ポイント

        アプリケーションに対してモニターを安全に実行するために、オンプレミス環境またはセキュアなクラウド環境内の任意の環境にデプロイできる場所。

    • APMトレーサ

      APMトレーサは、OpenTracingスパンをアプリケーション・メトリックとともに記録し、スパンおよびメトリックをアプリケーションに送信します

.

レコメンデーション

可用性モニタリングを実装する際には、次の推奨事項を開始点として使用します。 実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • ウィザードを開始する前に、VCNの詳細、認証トークン、APMドメインOCID、APMドメインの秘密キーなどの重要な情報を収集します。
  • バンテージ・ポイントを実行するVCNでAPMドメイン・データ・エンドポイントへの直接通信が許可されているかどうかを確認します。そうでない場合は、通信を完了するために代理人情報も入力する必要があります。
  • 専用のバンテージ・ポイントを設定する場合は、DVPアーティファクトの自動アップグレード・オプションを有効にします。このオプションにより、専用バンテージ・ポイントが可用性コンポーネントの最新バージョンに更新され、パブリック・バンテージ・ポイントで使用されているものと同じ可用性エージェント・バージョンと同期されたままになります。このオプションは、スクリーンショットとともにブログの「可用性モニタリングで独自の専用バンテージ・ポイントを使用する方法」で説明されており、次の「詳細の確認」トピックからアクセスできます。
  • OPVPを使用する場合は、最新のOPVPバージョンを使用していることを確認してください。

考慮事項

OCI APM Serviceで可用性モニタリングを実装する場合は、次の点を考慮してください。

  • APMトレーサまたはAPMエージェントをアプリケーションにデプロイして、トレースおよびスパンを収集できます。問題が発生した場合は、失敗したモニター実行または遅いモニター実行からドリルダウンして、トレース・エクスプローラでコンテキスト内ビューを開くことができます。ここでは、監視中に収集された監視を確認できます。
  • インテグレータのエンドポイントに対してテストを実行できます。アプリケーションがサードパーティまたは内部Webサービスを呼び出す場合は、これらのエンドポイントを定期的にテストして、アプリケーションが全面的に機能していることを確認する必要があります。

デプロイ

専用のバンテージ・ポイントをデプロイするには、次の「詳細」トピックからアクセスできるOracle Cloud APMチュートリアル「DEMO: 合成モニタリング」で取得されたこのエンドツーエンドのデモを参照してください。

確認

  • 作成者: トゥカツユタカ
  • 貢献者: Rahul Chandok、Avi Huber、Jurgen Leijer、Mohammad Farooq Rahman、Anand Shivahare、

変更ログ

このログには、重要な変更が一覧表示されます。