

# Amazon ECS クラスター上で EC2 インスタンスレベルのメトリクスを収集するための AWS Distro for OpenTelemetry のデプロイ


このセクションの手順を使用して、AWS Distro for OpenTelemetry を使用して Amazon ECS クラスターで EC2 インスタンスレベルのメトリクスを収集します。AWS Distro for OpenTelemetry の詳細については、[AWS Distro for OpenTelemetry](https://aws.amazon.com/otel/) を参照してください。

以下の手順では、クラスターが Amazon ECS を実行するように既に設定されていることを前提としています。このクラスターは、EC2 起動タイプを使用してデプロイする必要があります。Amazon ECS で AWS Distro for Open Telemetry を使用し、この目的のために Amazon ECS クラスターを設定する方法の詳細については、「[Amazon Elastic Container Service で ECS EC2 インスタンスレベルのメトリクスのための AWS Distro for OpenTelemetry Collector を設定する](https://aws-otel.github.io/docs/setup/ecs#3-setup-the-aws-otel-collector-for-ecs-ec2-instance-metrics)」を参照してください。

**Topics**
+ [

## CloudFormation を使用した高速セットアップ
](#container-insights-ECS-OTEL-quicksetup)
+ [

## 手動およびカスタムセットアップ
](#container-insights-ECS-OTEL-custom)

## CloudFormation を使用した高速セットアップ


Amazon ECS 向けの AWS Distro for OpenTelemetry コレクターを EC2 にインストールするための CloudFormation テンプレートファイルをダウンロードします。次の curl コマンドを実行します。

```
curl -O https://raw.githubusercontent.com/aws-observability/aws-otel-collector/main/deployment-template/ecs/aws-otel-ec2-instance-metrics-daemon-deployment-cfn.yaml
```

テンプレートファイルをダウンロードしたら、ファイルを開き、*PATH\$1TO\$1CloudFormation\$1TEMPLATE* をテンプレートファイルを保存したパスに置き換えます。そして、次のコマンドのように、以下のパラメータをエクスポートして、CloudFormation コマンドを実行します。
+ **Cluster\$1Name** — Amazon ECS のクラスター名
+ **AWS\$1REGION** — データが送信されるリージョン
+ **PATH\$1TO\$1CloudFormation\$1TEMPLATE** — CloudFormation テンプレートファイルを保存したパス
+ **command** — AWS Distro for Open Telemetry コレクターが Amazon EC2 上で Amazon ECS のインスタンスレベルのメトリクスを収集できるようにするには、このパラメータの `--config=/etc/ecs/otel-instance-metrics-config.yaml` を指定する必要があります。

```
ClusterName=Cluster_Name
Region=AWS_Region
command=--config=/etc/ecs/otel-instance-metrics-config.yaml
aws cloudformation create-stack --stack-name AOCECS-${ClusterName}-${Region} \
--template-body file://PATH_TO_CloudFormation_TEMPLATE \
--parameters ParameterKey=ClusterName,ParameterValue=${ClusterName} \
ParameterKey=CreateIAMRoles,ParameterValue=True \
ParameterKey=command,ParameterValue=${command} \
--capabilities CAPABILITY_NAMED_IAM \
--region ${Region}
```

このコマンドを実行したら、Amazon ECS コンソールを使用して、タスクが実行されているかどうかを確認します。

### 高速セットアップのトラブルシューティング


CloudFormation スタックのステータスを確認するには、次のコマンドを入力します。

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack --stack-name AOCECS-$ClusterName-$Region --region $Region
```

`StackStatus` が `CREATE_COMPLETE` または `CREATE_IN_PROGRESS` 以外の場合、スタックイベントをチェックしてエラーを検出します。次のコマンドを入力します。

```
ClusterName=cluster-name
Region=cluster-region
aws cloudformation describe-stack-events --stack-name AOCECS-$ClusterName-$Region --region $Region
```

`AOCECS` デーモンサービスの状態を確認するには、次のコマンドを入力します。出力では、デプロイセクションの `runningCount` が `desiredCount` と等しいことがわかります。等しくない場合は、出力の「エラー」セクションを確認してください。

```
ClusterName=cluster-name
Region=cluster-region
aws ecs describe-services --services AOCECS-daemon-service --cluster $ClusterName --region $Region
```

CloudWatch Logs コンソールを使用してエージェントログを確認することもできます。**/aws/ecs/containerinsights/\$1ClusterName\$1/performance** のロググループを探します。

## 手動およびカスタムセットアップ


このセクションの手順に従って、Amazon EC2 インスタンスでホストされている Amazon ECS クラスターからインスタンスレベルのメトリクスを収集するための AWS Distro for OpenTelemetry を手動でデプロイします。

### ステップ 1: 必要なロールとポリシー


2 つの IAM ロールが必要です。まだ存在しない場合は、作成する必要があります。これらのロールの詳細については、「[IAM ポリシーの作成](https://aws-otel.github.io/docs/setup/ecs/create-iam-policy)」および「[IAM ロールの作成](https://aws-otel.github.io/docs/setup/ecs/create-iam-role)」を参照してください。

### ステップ 2: タスク定義を作成する


タスク定義を作成し、それを使用して AWS Distro for OpenTelemetry をデーモンサービスとして起動します。

タスク定義テンプレートを使用してタスク定義を作成するには、「[AWS OTel Collector を使用して EC2 インスタンスの ECS EC2 タスク定義を作成する](https://aws-otel.github.io/docs/setup/ecs/task-definition-for-ecs-ec2-instance)」の手順に従います。

Amazon ECS コンソールを使用してタスク定義を作成するには、「[Amazon ECS の EC2 インスタンスメトリクス用に、AWS コンソールでタスク定義を作成して AWS OTel Collector をインストールする](https://aws-otel.github.io/docs/setup/ecs/create-task-definition-instance-console)」の手順に従います。

### ステップ 3: デーモンサービスを起動する


AWS Distro for OpenTelemetry をデーモンサービスとして起動するには、「[デーモンサービスを使用して Amazon Elastic Container Service (Amazon ECS) でタスクを実行する](https://aws-otel.github.io/docs/setup/ecs/run-daemon-service)」の手順に従います。

### (オプション) 詳細設定


オプションで、SSM を使用して、Amazon EC2 インスタンスでホストされている Amazon ECS クラスター内の AWS Distro for OpenTelemetry の他の設定オプションを指定できます。設定ファイルの作成についての詳細は、「[OpenTelemetry のカスタム設定](https://aws-otel.github.io/docs/setup/ecs#5-custom-opentelemetry-configuration)」を参照してください。設定ファイルで使用できるオプションの詳細については、「[AWS Container Insights Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/awscontainerinsightreceiver/README.md)」を参照してください。