Metrics Insights クエリに基づく CloudWatch アラームの作成 - Amazon CloudWatch

Metrics Insights クエリに基づく CloudWatch アラームの作成

CloudWatch Metrics Insights クエリは、SQL のような構文を使用してメトリクスを大規模にクエリするのに役立ちます。複数の時系列を返すクエリを含む、任意の Metrics Insights クエリでアラームを作成できます。この機能は、モニタリングオプションを大幅に拡張します。Metrics Insights クエリに基づいてアラームを作成すると、モニタリング対象グループへのリソースの追加または削除に応じてアラームが自動的に調整されます。アラームを 1 回作成すると、クエリ定義とフィルターに一致するリソースは、対応するメトリクスが利用可能になった時点でアラームモニタリングスコープに加わります。複数時系列クエリの場合、返される各時系列がアラームのコントリビューターになり、より詳細で動的なモニタリングが可能になります。

CloudWatch Metrics Insights アラームの 2 つの主なユースケースは以下のとおりです。

  • 外れ値の検出と集計モニタリング

    単一の集約された時系列を返す Metrics Insights クエリにアラームを作成します。このアプローチは、インフラストラクチャまたはアプリケーション全体で集約されたメトリクスをモニタリングする動的アラームに適しています。例えば、すべてのインスタンスの最大 CPU 使用率をモニタリングし、フリートのスケーリング時にアラームを自動的に調整できます。

    集計モニタリングアラームを作成するには、以下のクエリ構造を使用します。

    SELECT FUNCTION(metricName) FROM SCHEMA(...) WHERE condition;
  • リソースごとのフリートのモニタリング

    複数の時系列をモニタリングするアラームを作成します。各時系列は、独自の状態を持つコントリビューターとして機能します。アラームは、コントリビューターが ALARM 状態になるとアクティブ化され、リソース固有のアクションがトリガーされます。例えば、複数の RDS インスタンス間のデータベース接続をモニタリングして、接続が拒否されないようにします。

    複数の時系列をモニタリングするには、以下のクエリ構造を使用します。

    SELECT AVG(DatabaseConnections) FROM AWS/RDS WHERE condition GROUP BY DBInstanceIdentifier ORDER BY AVG() DESC;

    複数時系列アラームを作成するときは、クエリに 2 つのキー句を含める必要があります。

    • 時系列を構造化する方法を定義し、クエリが生成する時系列の数を決定する GROUP BY

    • メトリクスの決定的なソートを確立し、アラームが最も重要なシグナルを最初に評価できるようにする ORDER BY

    これらの句は、適切なアラーム評価に不可欠です。GROUP BY 句はデータを別々の時系列 (インスタンス ID など) に分割し、ORDER BY 句はアラーム評価中にこれらの時系列を一貫して優先的に処理します。

Metrics Insights クエリに基づいてアラームに適用される制限

CloudWatch Metrics Insights アラームを使用する場合は、以下の機能制限に注意してください。

  • この構文を使用できるアラーム数は、アカウントごと、リージョンごとに最大 200 個まで

  • アラームの状態の評価に使用できるのは、直近 3 時間のデータのみです。ただし、アラームの詳細ページグラフでは最大 2 週間のデータを視覚化できます

  • 複数の時系列を評価するアラームは、同時移行のレートを 100 に制限します

  • 分析または返される時系列の最大数に関する Metrics Insights の制限が適用されます

CloudWatch の Service Quotas の詳細については、「CloudWatch サービスクォータ」を参照してください。

前提条件

CloudWatch Metrics Insights アラームを作成する前に、以下を確認してください。

  • CloudWatch アラームを作成および管理するための適切な IAM アクセス許可

  • モニタリングするリソースの AWS アカウントで使用できるメトリクス

  • SQL クエリ構文の基本的な理解