

# ウィザードによる事前構築済みのデータソースへの接続
<a name="CloudWatch_MultiDataSources-Connect"></a>

 このトピックでは、ウィザードを使用して CloudWatch を以下のデータソースに接続する手順について説明します。
+ Amazon OpenSearch Service
+ Amazon Managed Service for Prometheus
+ Amazon RDS for MySQL
+ Amazon RDS for PostgreSQL
+ Amazon S3 CSV ファイル
+ Microsoft Azure Monitor
+ Prometheus

 このトピックのサブセクションでは、こうした各データソースを管理およびクエリする際の注意事項を説明します。

**データソースへのコネクタを作成するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで **[設定]** を選択します。

1. **[メトリクスのデータソース]** タブを選択します。

1. **[データソースを作成]** を選択します。

1. 目的のソースを選択し、**[次へ]** を選択します。

1. データソースの名前を入力します。

1. 選択したデータソースに応じて、その他の必要な情報を入力します。例えば、データソースにアクセスするための認証情報が必要になることもあれば、Prometheus ワークスペース名、データベース名、Amazon S3 バケット名といったデータソース識別情報が必要になることもあります。AWS サービスの場合、ウィザードがリソースを検出して選択ドロップダウンに入力します。

   現在使用中のデータソースに関するその他の注意事項については、この手順に続く各セクションを参照してください。

1. CloudWatch を VPC 内のデータソースに接続するには、**[VPC を使用]** を選択し、使用する VPC を選択します。次に、サブネットとセキュリティグループを選択します。

1. **[CloudFormation が IAM リソースを作成することを承認します]** を選択します。このリソースは Lambda 関数実行ロールです。

1. **[データソースを作成]** を選択します。

   先ほど追加した新しいソースは、CloudFormation スタックでの作成が完了するまで表示されません。進行状況を確認するには、**[CloudFormation スタックのステータスを見る]** を選択します。あるいは、更新アイコンを選択して、このリストを更新することもできます。

   新しいデータソースがこのリストに表示されたら、使用する準備ができたことになります。**[CloudWatch メトリクスからクエリ]** を選択して、クエリを開始できます。詳細については、「[別のデータソースにあるメトリクスのグラフ化](graph_a_metric.md#create-metric-graph-multidatasource)」を参照してください。

## Amazon Managed Service for Prometheus
<a name="MultiDataSources-Amazon_Managed_Prometheus"></a>

**データソース設定の更新**
+ データソースを手動で更新する場合は、次の操作を実行します。
  + Amazon Managed Service for Prometheus ワークスペース ID を更新するには、データソースコネクタ Lambda 関数の `AMAZON_PROMETHEUS_WORKSPACE_ID` 環境変数を更新します。
  + VPC 設定を更新する場合は、「[VPC アクセスの設定 (コンソール)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)」で詳細を確認してください。

**データソースのクエリ**
+ Amazon Managed Service for Prometheus をクエリする場合は、**[マルチソースクエリ]** タブでデータソースを選択し、Amazon Managed Service for Prometheus コネクタを選択した後で、**クエリヘルパー**を使用してメトリクスとラベルを検出し、簡単な PromQL クエリを実行できます。また、PromQL クエリエディタを使用して PromQL クエリを作成することもできます。
+ CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

## Amazon OpenSearch Service
<a name="MultiDataSources-Amazon_OpenSearch"></a>

**データソースの作成**

OpenSearch ドメインが FGAC で有効になっている場合、コネクタ Lambda 関数の実行ロールを OpenSearch Service 内のユーザーにマッピングする必要があります。詳細については、OpenSearch Service ドキュメントの「[Managing permissions](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html#fgac-access-control)」の「**Mapping users to roles**」セクションを参照してください。

OpenSearch ドメインが Virtual Private Cloud (VPC) 内のみでアクセス可能である場合は、`AMAZON_OPENSEARCH_ENDPOINT` と呼ばれる Lambda 関数に新しい環境変数を手動で追加する必要があります。この変数の値は、OpenSearch エンドポイントのルートドメインにする必要があります。このルートドメインは、OpenSearch Service コンソールに一覧表示されているドメインエンドポイントから `https://` と `<region>.es.amazonaws.com` を削除することで取得できます。例えば、ドメインエンドポイントが `https://sample-domain.us-east-1.es.amazonaws.com` の場合、ルートドメインは `sample-domain` になります。

**データソースの更新**
+ データソースを手動で更新する場合は、次の操作を実行します。
  + OpenSearch Service ドメインを更新するには、データソースコネクタ Lambda 関数の `AMAZON_OPENSEARCH_DOMAIN_NAME` 環境変数を更新します。
  + VPC 設定を更新する場合は、「[VPC アクセスの設定 (コンソール)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)」で詳細を確認してください。

**データソースのクエリ**
+ OpenSearch Service をクエリする場合は、**[マルチソースクエリ]** タブでデータソースを選択した後で、以下の操作を実行します。
  + クエリするインデックスを選択します。
  + メトリクス名 (ドキュメント内の任意の数値フィールド) と統計を選択します。
  + 時間軸 (ドキュメント内の任意の日付フィールド) を選択します。
  + 適用するフィルター (ドキュメント内の任意の文字列フィールド) を選択します。
  + **[グラフクエリ]** を選択します。

## Amazon RDS for PostgreSQL と Amazon RDS for MySQL
<a name="MultiDataSources-Amazon_RDS_PostGre_SQL"></a>

**データソースの作成**
+ データソースが VPC 内でのみアクセス可能な場合は、「[ウィザードによる事前構築済みのデータソースへの接続](#CloudWatch_MultiDataSources-Connect)」で説明しているように、コネクタの VPC 設定を含める必要があります。認証情報を取得するためにデータソースを VPC に接続しなければならない場合は、VPC にエンドポイントを設定する必要があります。詳細については、「[AWS Secrets Manager VPC エンドポイントの使用](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)」を参照してください。

  さらに、Amazon RDS サービスの VPC エンドポイントを作成する必要があります。詳細については、「[Amazon RDS API とインターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/vpc-interface-endpoints.html)」を参照してください。

**データソースの更新**
+ データソースを手動で更新する場合は、次の操作を実行します。
  + データベースインスタンスを更新するには、データソースコネクタ Lambda 関数の `RDS_INSTANCE` 環境変数を更新します。
  + Amazon RDS への接続に使用するユーザー名とパスワードを更新するには、AWS Secrets Manager を使用します。データソースに使用されるシークレットの ARN は、データソース Lambda 関数の環境変数 `RDS_SECRET` で確認できます。AWS Secrets Manager でシークレットを更新する方法の詳細については、「[Modify an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)」を参照してください。
  + VPC 設定を更新する場合は、「[VPC アクセスの設定 (コンソール)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)」で詳細を確認してください。

**データソースのクエリ**
+ Amazon RDS をクエリする場合は、**[マルチソースクエリ]** タブでデータソースを選択し、Amazon RDS コネクタを選択した後で、データベースディスカバラーを使用して、使用可能なデータベース、テーブル、列を表示できます。また、SQL エディタを使用して、SQL クエリを作成することもできます。

  作成した SQL クエリでは、以下の変数を使用できます。
  + `$start.iso` - ISO 日付形式の開始時刻
  + `$end.iso` - ISO 日付形式の終了時刻
  + `$period` - 選択した期間 (秒)

  例えば、`SELECT value, timestamp FROM table WHERE timestamp BETWEEN $start.iso and $end.iso` というクエリを実行できます。
+ CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

**注記**  
結果に日付フィールドがない場合は、各数値フィールドの値が合計されて 1 つの値になり、指定された時間範囲にわたってプロットされます。タイムスタンプが CloudWatch で選択された期間と一致しない場合、データは `SUM` を使用して自動的に集計され、CloudWatch の期間に合わせて調整されます。

## Amazon S3 CSV ファイル
<a name="MultiDataSources-Amazon_S3_CSV"></a>

**データソースのクエリ**
+ Amazon S3 CSV ファイルをクエリする場合は、**[マルチソースクエリ]** タブでデータソースを選択し、Amazon S3 コネクタを選択した後で、Amazon S3 バケットとキーを選択します。

  CSV ファイルの形式は、次のようにする必要があります。
  + タイムスタンプは最初の列である必要があります。
  + テーブルにはヘッダー行が必要です。ヘッダーは、メトリクスに名前を付けるために使用されます。タイムスタンプ列のタイトルは無視され、メトリクス列のタイトルのみが使用されます。
  + タイムスタンプは ISO 日付形式である必要があります。
  + メトリクスは数値フィールドである必要があります。

  ```
  Timestamp, Metric-1, Metric-2, ...
  ```

  以下に例を示します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/CloudWatch_MultiDataSources-Connect.html)

**注記**  
タイムスタンプが指定されていない場合は、各メトリクスの値が合計されて 1 つの値になり、指定された時間範囲にわたってプロットされます。タイムスタンプが CloudWatch で選択された期間と一致しない場合、データは `SUM` を使用して自動的に集計され、CloudWatch の期間に合わせて調整されます。

## Microsoft Azure Monitor
<a name="MultiDataSources-Azure_Monitor"></a>

**データソースの作成**
+ Microsoft Azure Monitor に接続するには、テナント ID、クライアント ID、クライアントシークレットを指定する必要があります。認証情報は、AWS Secrets Manager に保存されます。詳細については、Microsoft のドキュメントの「[Create a Microsoft Entra application and service principal that can access resources](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal)」を参照してください。

**データソースの更新**
+ データソースを手動で更新する場合は、次の操作を実行します。
  + Azure Monitor への接続に使用されるテナント ID、クライアント ID、クライアントシークレットを更新するには、データソースに使用されるシークレットの ARN を確認します。これは、データソース Lambda 関数で `AZURE_CLIENT_SECRET` 環境変数として使用されています。AWS Secrets Manager でシークレットを更新する方法の詳細については、「[Modify an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)」を参照してください。

**データソースのクエリ**
+ Azure Monitor をクエリする場合は、**[マルチソースクエリ]** タブでデータソースを選択し、Azure Monitor コネクタを選択した後で、Azure のサブスクリプション、リソースグループ、リソースを指定します。次に、メトリクス名前空間、メトリクス、集計を選択し、ディメンションでフィルタリングします。

## Prometheus
<a name="MultiDataSources-Prometheus"></a>

**データソースの作成**
+ Prometheus エンドポイントのほか、Prometheus をクエリするために必要なユーザーとパスワードを指定する必要があります。認証情報は、AWS Secrets Manager に保存されます。
+ データソースが VPC 内でのみアクセス可能な場合は、「[ウィザードによる事前構築済みのデータソースへの接続](#CloudWatch_MultiDataSources-Connect)」で説明しているように、コネクタの VPC 設定を含める必要があります。認証情報を取得するためにデータソースを接続しなければならない場合は、VPC にエンドポイントを設定する必要があります。詳細については、「[AWS Secrets Manager VPC エンドポイントの使用](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html)」を参照してください。

**データソース設定の更新**
+ データソースを手動で更新する場合は、次の操作を実行します。
  + Prometheus エンドポイントを更新するには、データソース Lambda 関数で `PROMETHEUS_API_ENDPOINT` 環境変数として新しいエンドポイントを指定します。
  + Prometheus への接続に使用されるユーザー名とパスワードを更新するには、データソースに使用されるシークレットの ARN を確認します。これは、データソース Lambda 関数で `PROMETHEUS_API_SECRET` 環境変数として使用されています。AWS Secrets Manager でシークレットを更新する方法の詳細については、「[Modify an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html)」を参照してください。
  + VPC 設定を更新する場合は、「[VPC アクセスの設定 (コンソール)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-configuring)」で詳細を確認してください。

**データソースのクエリ**

**重要**  
Prometheus メトリクスタイプは CloudWatch メトリクスとは異なり、Prometheus で使用できるメトリクスの多くはその仕様上累積的です。Prometheus メトリクスをクエリするときに、データに追加で何らかの変換が適用されることはありません。メトリクス名またはラベルのみを指定した場合は、累積された値が表示されます。詳細については、Prometheus ドキュメントの「[Metric types](https://prometheus.io/docs/concepts/metric_types/)」を参照してください。  
Prometheus メトリクスデータを CloudWatch メトリクスのように個別の値として表示するには、クエリをその実行前に編集する必要があります。例えば、場合によっては Prometheus メトリクス名よりも先に rate 関数への呼び出しを追加する必要があります。rate 関数とその他の Prometheus 関数のドキュメントについては、Prometheus ドキュメントの「[rate()](https://prometheus.io/docs/prometheus/latest/querying/functions/#rate)」を参照してください。

CloudWatch データソースコネクタでは、複数行にわたるクエリはサポートされていません。そうしたクエリを実行するか、そうしたクエリでアラームやダッシュボードウィジェットを作成すると、すべてのラインフィードがスペースに置き換えられます。場合によっては、クエリが無効になることもあります。例えば、クエリに 1 行のコメントが含まれていると、そのクエリは無効になります。コマンドラインまたは Infrastructure as Code から複数行にわたるクエリを使用してダッシュボードまたはアラームを作成しようとすると、API がそのアクションを拒否して、解析エラーが発生します。

## 使用可能な更新の通知
<a name="CloudWatch_MultiDataSources-Future-Updates"></a>

Amazon から随時、新たに使用可能になったバージョンでコネクタを更新することをお勧めする旨が通知されます。その際、更新手順も一緒に通知されます。