Amazon CloudWatch Application Insights とは - Amazon CloudWatch

Amazon CloudWatch Application Insights とは

CloudWatch Application Insights は、他のアプリケーションリソースとともに Amazon EC2 インスタンスを使用するアプリケーションをモニターリングするのに役立ちます。アプリケーションのリソース全体およびテクノロジースタック (Microsoft SQL Server データベース、ウェブ (IIS) サーバー、アプリケーションサーバー、OS、ロードバランサー、キューなど) で主要なメトリクス、ログ、およびアラームを特定して設定します。メトリクスとログを継続的にモニターリングし、異常やエラーを検出して相互に関連付けます。エラーや異常が検出されると、Application Insights は CloudWatch Events を生成します。これを使用して、通知を設定したり、アクションを実行したりできます。トラブルシューティングに役立てるために、検出した問題の自動ダッシュボードを作成します。このダッシュボードには、相互に関連付けられた異常とログエラー、さらに根本原因を示唆する追加のインサイトが示されます。自動ダッシュボードを使用すると、是正措置を簡単に実行してアプリケーションを正常な状態に保ち、アプリケーションのエンドユーザーへの影響を防止できます。OpsItems も作成されるため、AWS SSM OpsCenter を使用して問題を解決できます。

ミラーリングされた書き込みトランザクション/秒、リカバリキューの長さ、トランザクション遅延などの重要なカウンター、CloudWatch での Windows イベントログを設定できます。SQL HA ワークロードでフェイルオーバーイベントや問題 (ターゲットデータベースのクエリに対するアクセスの制限など) が発生した場合、CloudWatch Application Insights は自動化されたインサイトを提供します。

CloudWatch Application Insights は AWS Launch Wizard との統合により、SQL Server HA ワークロードを AWS にデプロイするためのモニターリングを 1 回のクリック操作で設定できます。Launch Wizard コンソールの Application Insights でモニターリングおよびインサイトを設定するオプションを選択すると、CloudWatch Application Insights は関連するメトリクス、ログ、アラームを CloudWatch で自動的に設定し、新しくデプロイされたワークロードのモニターリングを開始します。自動化されたインサイトと検出された問題は、SQL Server HA ワークロードのヘルスとともに CloudWatch コンソールで確認できます。

機能

Application Insights には、次の機能があります。

アプリケーションリソースのモニターリングの自動設定

CloudWatch Application Insights を使用すると、アプリケーションのモニターリングの設定にかかる時間が短縮されます。CloudWatch Application Insights for.NET and SQL Server は、アプリケーションリソースをスキャンして推奨されるメトリクスとログのリスト (カスタマイズ可能) を提供し、CloudWatch でこのメトリクスやログを設定することで、Amazon EC2 および Elastic Load Balancing (ELB) などのアプリケーションリソースに必要な可視性を提供します。また、モニターリングしたメトリクスに対して動的なアラームを設定します。アラームは、過去 2 週間に検出された異常に基づいて自動的に更新されます。

問題の検出と通知

CloudWatch Application Insights は、メトリクスの異常やログエラーなど、アプリケーションの潜在的な問題の兆候を検出します。これらの監視結果を相互に関連付けることで、アプリケーションの潜在的な問題を表面化させます。次に、CloudWatch Events を生成します。これらのイベントは、通知を送信するか、アクションを実行するように設定できます。これにより、メトリクスやログエラーごとに個別のアラームを作成する必要がなくなります。

トラブルシューティング

CloudWatch Application Insights は、検出された問題用の CloudWatch 自動ダッシュボードを作成します。このダッシュボードには、問題に関する詳細として、トラブルシューティングに役立つ関連メトリクスの異常やログエラーなどが表示されます。また、異常やエラーの根本原因を示唆する追加のインサイトも示されます。

概念

以下の概念は、Application Insights によるアプリケーションのモニターリング方法を理解するうえで重要です。

コンポーネント

アプリケーションを構成する類似リソースの自動グループ化、スタンドアロン、またはカスタムグループ化。モニターリングを向上させるために、類似したリソースをカスタムコンポーネントとしてグループ化することをお勧めします。

監視結果

アプリケーションやアプリケーションリソースで検出された個別のイベント (メトリクスの異常、ログエラー、または例外)。

問題

問題は、関連する監視結果の相互関連付け、分類、およびグループ化によって検出されます。

CloudWatch Application Insights に関する他の主要な概念の定義については、「 Amazon CloudWatch の概念」を参照してください。

料金

CloudWatch Application Insights は、検出した問題を通知するために CloudWatch メトリクス、CloudWatch Logs、および CloudWatch Events を使用して、選択したアプリケーションリソースに推奨されるメトリクスとログを設定します。これらの機能は、CloudWatch の料金に基づいて AWS アカウントに請求されます。検出した問題については、Application Insights によって SSM OpsItem も作成され、ユーザーはその問題に関する通知を受け取ることができます。さらに、Application Insights は、SSM パラメータストアのパラメータを作成して、インスタンスで CloudWatch エージェントを設定します。Amazon EC2 Systems Manager の機能は SSM の料金に従って課金されます。セットアップの支援、モニターリング、データ分析、または問題の検出には料金がかかりません。

CloudWatch Application Insights のコスト

Amazon EC2 のコストには、次の機能の使用が含まれます。

  • CloudWatch エージェント

    • CloudWatch エージェントロググループ

    • CloudWatch エージェントメトリクス

    • Prometheus ロググループ (JMX ワークロード用)

すべてのリソースのコストには、次の機能の使用が含まれます。

  • CloudWatch アラーム (大部分のコスト)

  • SSM OpsItems (最低コスト)

コスト計算例

この例のコストは、次のシナリオに従って考慮されます。

次を含むリソースグループが作成されました。

  • SQL Server がインストールされている Amazon EC2 インスタンス。

  • アタッチされた Amazon EBS ボリューム。

このリソースグループに CloudWatch Application Insights をオンボードすると、Amazon EC2 インスタンスにインストールされている SQL Server ワークロードが検出されます。CloudWatch Application Insights は、次のメトリクスのモニターリングを開始します。

SQL Server インスタンスでは、次のメトリクスがモニターリングされます。

  • CPUUtilization

  • StatusCheckFailed

  • Memory % Committed Bytes In Use

  • Memory Available Mbytes

  • Network Interface Bytes Total/sec

  • Paging File % Usage

  • Physical Disk % Disk Time

  • Processor % Processor Time

  • SQLServer:Buffer Manager cache hit ratio

  • SQLServer:Buffer Manager life expectancy

  • SQLServer:General Statistics Processes blocked

  • SQLServer:General Statistics User Connections

  • SQLServer:Locks Number of Deadlocks/sec

  • SQLServer:SQL Statistics Batch Requests/sec

  • System Processor Queue Length

SQL Server インスタンスにアタッチされたボリュームについては、以下のメトリクスがモニターリングされます。

  • VolumeReadBytes

  • VolumeWriteBytes

  • VolumeReadOps

  • VolumeWriteOps

  • VolumeTotalReadTime

  • VolumeTotalWriteTime

  • VolumeIdleTime

  • VolumeQueueLength

  • VolumeThroughputPercentage

  • VolumeConsumedReadWriteOps

  • BurstBalance

このシナリオでは、コストは CloudWatch の料金ページと SSM の料金ページに従って計算されます。

  • カスタムメトリクス

    このシナリオでは、CloudWatch エージェントを使用して、上記のメトリクスのうち 13 個が CloudWatch に発行されます。これらのメトリクスは、カスタムメトリクスとして処理されます。各カスタムメトリクスの月額コストは 0.3 USD です。これらのカスタムメトリクスの合計コストは、13 個 x 0.3 USD = 3.90 USD/月です。

  • アラーム

    このシナリオでは、CloudWatch Application Insights は合計 26 個のメトリクスをモニターリングし、26 個のアラームが作成されます。各アラームの月額コストは 0.1 USD です。アラームの合計コストは、26 個 x 0.1 USD = 2.60 USD/月です。

  • データインジェストとエラーログ

    データインジェストのコストは 1 GB あたり 0.05 USD で、SQL Server エラーログ用ストレージのコストは 1 GB あたり 0.03 USD です。データインジェストとエラーログの合計コストは、1 GB あたり 0.08 USD (0.05 USD + 0.03 USD) です。

  • Amazon EC2 Systems Manager OpsItems

    SSM OpsItem は、CloudWatch Application Insights が検出した問題ごとに作成されます。アプリケーションの問題が n 件発生した場合、合計月額コストは 0.00267 USD x n で求めることができます。

CloudWatch Application Insights は以下のサービスと併用されます。

関連 AWS サービス
  • Amazon CloudWatch。リソースの使用状況、アプリケーションのパフォーマンス、および運用状態についてシステム全体の可視性を提供します。メトリクスの収集と追跡、アラーム通知の送信、定義したルールに基づくモニターリング対象リソースの自動更新を行います。また、ユーザー独自のカスタムメトリクスもモニターリングできます。CloudWatch Application Insights は、CloudWatch (具体的には CloudWatch のデフォルトのオペレーションダッシュボード内) から開始します。詳細については、Amazon CloudWatch ユーザーガイドを参照してください。

  • CloudWatch Container Insights は、コンテナ化されたアプリケーションおよびマイクロサービスのメトリクスとログを収集、集約、要約します。Container Insights を使用して、Amazon EC2 の Kubernetes プラットフォーム、Amazon Elastic Kubernetes Service、Amazon ECS をモニターリングできます。Container Insights または Application Insights コンソールで Application Insights が有効になっている場合、Application Insights により、検出された問題が Container Insights ダッシュボードに表示されます。詳細については、「Container Insights」を参照してください。

  • Amazon DynamoDB はフルマネージド型の NoSQL データベースサービスです。これを使用すると、分散データベースの運用とスケーリングに伴う管理作業をまかせることができるため、ハードウェアのプロビジョニング、設定と構成、レプリケーション、ソフトウェアパッチ適用、クラスタースケーリングなどを自分で行う必要はなくなります。また、DynamoDB も保管時の暗号化を提供し、機密データの保護における負担と複雑な作業を解消します。

  • Amazon EC2 は、AWS クラウド内でスケーラブルなコンピューティング性能を提供します。Amazon EC2 を使用すると、必要な数 (またはそれ以下) の仮想サーバーを起動して、セキュリティおよびネットワーキングを構成し、ストレージを管理できます。要件の変更や需要増に対応してスケールアップまたはスケールダウンできるため、トラフィック予測を軽減できます。詳細については、Linux インスタンス用の Amazon EC2 ユーザーガイドまたは Windows インスタンス用の Amazon EC2 ガイドを参照してください。

  • Amazon Elastic Block Store (Amazon EBS) は、Amazon EC2 インスタンスで使用するためのブロックレベルのストレージボリュームを提供します。Amazon EBS ボリュームの動作は、未初期化のブロックデバイスに似ています。これらのボリュームは、デバイスとしてインスタンスにマウントできます。インスタンスにアタッチした Amazon EBS ボリュームは、インスタンスの有効期間とは無関係に存続するストレージボリュームとして公開されます。これらのボリューム上にファイルシステムを構築できます。または、これらのボリュームをブロックデバイス (ハードドライブなど) を使用する場合と同じ方法で使用できます。インスタンスにアタッチされているボリュームの設定は動的に変更できます。詳細は、Amazon EBS ユーザーガイドをご覧ください。

  • Amazon EC2 Auto Scaling は、アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるようにします。詳細については、Amazon EC2 Auto Scaling ユーザーガイドを参照してください。

  • Elastic Load Balancing は、受信したアプリケーションまたはネットワークトラフィックを複数のアベイラビリティーゾーンの複数のターゲット (EC2 インスタンス、コンテナ、IP アドレスなど) に分散させます。詳細については、Elastic Load Balancing ユーザーガイドを参照してください。

  • IAM は、AWS リソースへのユーザーアクセスを安全に管理するウェブサービスです。IAM により、どのユーザーがお客様の AWS リソースを使用できるか (認証)、それらのユーザーがどのリソースをどのような方法で使用できるか (承認) をコントロールできます。詳細については、「Amazon CloudWatch に対する認証とアクセスコントロール」を参照してください。

  • AWS Lambda を使用すると、イベントによってトリガーされる関数で構成されたサーバーレスアプリケーションを構築し、これらを CodePipeline や AWS CodeBuild を使用して自動的にデプロイできます。詳細については、「AWS Lambda アプリケーション」をご参照ください。

  • AWS Launch Wizard for SQL Server は、SQL Server 高可用性ソリューションをクラウドにデプロイする所要時間を短縮します。パフォーマンス、ノード数、サービスコンソールの接続を含むアプリケーションの要件を入力すると、AWS Launch Wizard は、SQL Server Always On アプリケーションをデプロイおよび実行するための適切な AWS リソースを識別します。

  • AWSResource Groupsは、アプリケーションを構成するリソースを整理するのに役立ちます。Resource Groups を使用すると、大量のリソースのタスクを一度に管理および自動化できます。アプリケーションごとに登録できるリソースグループは 1 つだけです。詳細については、AWSResource Groups ユーザーガイドを参照してください。

  • Amazon SQS。分散されたソフトウェアシステムとコンポーネントを統合および分離できる、安全性、耐久性、可用性に優れたホストされたキューを提供します。詳細については、Amazon SQS ユーザーガイドを参照してください。

  • AWS Step Functions はサーバーレス関数作成ツールであり、AWS 関数を含むさまざまな AWS Lambda のサービスとリソースを、構造化された視覚的なワークフローに順序付けすることができます。詳細については、AWS Step Functions ユーザーガイドをご参照ください。

  • AWS SSM OpsCenter では、各 OpsItem、関連する OpsItems、関連リソースに関するコンテキスト調査データを提供しながら、サービス全体で OpsItems を集約および標準化します。OpsCenter には Systems Manager Automation ドキュメント (ランブック) も用意されており、問題をすばやく解決できます。検索可能なカスタムデータを OpsItem ごとに指定することができます。OpsItems に関する自動的に生成された概要レポートは、ステータスおよびソース別に表示することもできます。詳細については、AWS Systems Manager ユーザーガイドを参照してください。

  • Amazon API Gateway は、あらゆる規模の REST、HTTP、および WebSocket API を作成、公開、維持、モニターリング、およびセキュア化するための AWS サービスです。API 開発者は、AWS または他のウェブサービス、AWS クラウドに保存されているデータにアクセスする API を作成できます。詳細については、Amazon API Gateway ユーザーガイドを参照してください。

    注記

    Application Insights は REST API プロトコル (API Gateway サービスの v1) のみをサポートします。

  • Amazon Elastic Container Service (Amazon ECS) は、フルマネージド型のコンテナオーケストレーションサービスです。Amazon ECS を使用して、最も機密性の高いミッションクリティカルなアプリケーションを実行できます。詳細については、Amazon Elastic Container Service デベロッパーガイドを参照してください。

  • Amazon Elastic Kubernetes Service (Amazon EKS) は、お客様独自の Kubernetes コントロールプレーンまたはノードをインストール、運用、保守管理することなく、AWS で Kubernetes を実行できるマネージドサービスです。Kubernetes は、コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースシステムです。詳細については、Amazon EKS ユーザーガイドをご覧ください。

  • Kubernetes on Amazon EC2。Kubernetes は、コンテナ化アプリケーションを大規模にデプロイおよび管理するのを支援するオープンソースソフトウェアです。Kubernetes では、デプロイ、メンテナンス、スケーリングのプロセスにより、Amazon EC2 コンピューティングインスタンスのクラスターを管理し、これらのインスタンスでコンテナを実行します。Kubernetes では、同じツールセットを使用して、オンプレミスやクラウド上で、すべてのタイプのコンテナ化アプリケーションを実行できます。詳細については、「Kubernetes ドキュメント:開始方法」を参照してください。

  • Amazon FSxは、AWS によって完全に管理される一般的なファイルシステムの起動と実行に役立ちます。Amazon FSx を使用すると、一般的なオープンソースおよび商用ライセンスのファイルシステムの機能セットとパフォーマンスを活用して、時間のかかる管理タスクを回避できます。詳細については、「Amazon FSx のドキュメント」参照してください。

  • Amazon Simple Notification Service (SNS) は、アプリケーション間およびアプリケーションと人間の通信の両方に対応するフルマネージド型のメッセージングサービスです。Amazon SNS は、Application Insights によるモニターリング用に設定できます。Amazon SNS がモニターリング用のリソースとして設定されている場合、Application Insights は SNS のメトリクスを追跡して、SNS メッセージにおける問題の発生や失敗の理由を判定するのに役立ちます。

  • Amazon Elastic File System (Amazon EFS) は、AWS クラウド のサービスやオンプレミスのリソースで使用できるフルマネージド型の伸縮性の高い NFS ファイルシステムです。アプリケーションを中断することなく、必要に応じてペタバイト規模まで拡張することを目的に構築されています。ファイルの追加や削除に応じて自動的に拡張/縮小されるため、拡張に対応するための容量のプロビジョニングや管理は不要になります。詳細については、Amazon Elastic File System のドキュメントを参照してください。

関連するサードパーティーのサービス
  • Application Insights でモニターリングされるいくつかのワークロードとアプリケーションについては、Prometheus JMX Exporter は AWS Systems Manager Distributor を使用してインストールされるため、CloudWatch Application Insights は Java 固有のメトリクスを取得できます。Java アプリケーションのモニターリングを選択すると、Application Insights によって Prometheus JMX Exporter が自動的にインストールされます。

サポートされるアプリケーションコンポーネント

CloudWatch Application Insights は、リソースグループをスキャンしてアプリケーションコンポーネントを識別します。コンポーネントは、スタンドアロン、自動グループ化 (Auto Scaling グループ内のインスタンスやロードバランサーの背後のインスタンスなど)、またはカスタム (個々の Amazon EC2 インスタンスのグループ化) のいずれかになります。

CloudWatch Application Insights でサポートされるコンポーネントは以下のとおりです。

AWS コンポーネント
  • Amazon EC2

  • Amazon EBS

  • Amazon RDS

  • Elastic Load Balancing: Application Load Balancer と Classic Load Balancer (これらのロードバランサーのすべてのターゲットインスタンスが特定および設定されます)。

  • Amazon EC2 Auto Scaling グループ: AWS Auto Scaling (Auto Scaling グループは、すべてのターゲットインスタンスに対して動的に設定されます。アプリケーションがスケールアップすると、CloudWatch Application Insights は新しいインスタンスを自動的に設定します)。Auto Scaling グループは、CloudFormation のスタックベースのリソースグループではサポートされません。

  • AWS Lambda

  • Amazon Simple Queue Service (Amazon SQS)

  • Amazon DynamoDB テーブル

  • Amazon S3 バケットメトリクス

  • AWS Step Functions

  • Amazon API Gateway REST API ステージ

  • Amazon Elastic Container Service (Amazon ECS): クラスター、サービス、およびタスク

  • Amazon Elastic Kubernetes Service (Amazon EKS): クラスター

  • Amazon EC2 での Kubernetes: EC2 で実行されている Kubernetes クラスター

  • Amazon SNS トピック

その他すべてのコンポーネントタイプのリソースは、現在 CloudWatch Application Insights によって追跡されていません。サポートされているコンポーネントタイプが Application Insights アプリケーションに表示されない場合、そのコンポーネントは登録済みで、お客様が所有する別のアプリケーションで管理され、Application Insights によってモニターリングされている可能性があります。

サポートされるテクノロジースタック

CloudWatch Application Insights を使用して、以下のいずれかのテクノロジーについて、アプリケーション層ドロップダウンメニューオプションを選択すると、Windows Server および Linux オペレーティングシステムで実行されているアプリケーションをモニターリングできます。

  • フロントエンド: Microsoft Internet Information Services (IIS) ウェブサーバー

  • ワーカー層:

    • .NET Framework

    • .NET Core

  • アプリケーション:

    • Java

    • SAP NetWeaver の標準、分散型、および高可用性デプロイ

  • アクティブディレクトリ

  • SharePoint

  • データベース:

    • Amazon RDS または Amazon EC2 で実行されている Microsoft SQL Server (SQL Server High Availability の設定を含みます。コンポーネント設定の例 を参照してください。)

    • Amazon RDS、Amazon Aurora、Amazon EC2 上で実行されている MySQL

    • Amazon RDS または Amazon EC2 上で実行されている PostgreSQL

    • Amazon DynamoDB テーブル

    • Amazon RDS または Amazon EC2 上で実行されている Oracle

    • 単一の Amazon EC2 インスタンスおよび複数の EC2 インスタンス上の SAP HANA データベース

    • クロス AZ SAP HANA データベースの高可用性セットアップ。

    • 単一の Amazon EC2 インスタンス上のSAP Sybase ASE データベース。

    • クロス AZ SAP Sybase ASE データベースの高可用性セットアップ。

上に示したテクノロジースタックのいずれもアプリケーションリソースに該当しない場合は、[Manage Monitoring] ページのアプリケーション層のドロップダウンメニューから [Custom] を選択して、アプリケーションスタックをモニターリングできます。