

# AWS Distro for OpenTelemetry를 배포하여 Amazon ECS 클러스터의 EC2 인스턴스 수준 지표 수집
<a name="deploy-container-insights-ECS-OTEL"></a>

이 단원의 단계에 따라 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을 사용한 빠른 설정
<a name="container-insights-ECS-OTEL-quicksetup"></a>

EC2에서 Amazon ECS용 AWS Distro for OpenTelemetry Collector를 설치하기 위한 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 OpenTelemetry Collector가 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 콘솔을 사용하여 태스크가 실행 중인지 확인합니다.

### 빠른 설정 문제 해결
<a name="container-insights-ECS-OTEL-quicksetup-troubleshooting"></a>

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** 로그 그룹을 찾습니다.

## 수동 설치 및 사용자 지정
<a name="container-insights-ECS-OTEL-custom"></a>

이 단원의 단계에 따라 AWS Distro for OpenTelemetry를 수동으로 배포하여 Amazon EC2 인스턴스에서 호스트되는 Amazon ECS 클러스터에서 인스턴스 수준 지표를 수집합니다.

### 1단계: 필요한 역할 및 정책
<a name="container-insights-ECS-OTEL-custom-iam"></a>

두 가지 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단계: 태스크 정의 생성
<a name="container-insights-ECS-OTEL-custom-task"></a>

태스크 정의를 생성하고 이를 사용하여 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 콘솔을 사용하여 태스크 정의를 생성하려면 [AWS 콘솔을 통해 Amazon ECS EC2 인스턴스 지표에 대한 태스크 정의를 생성하여 AWS OTel Collector 설치](https://aws-otel.github.io/docs/setup/ecs/create-task-definition-instance-console)의 지침을 따르세요.

### 3단계: 데몬 서비스 시작
<a name="container-insights-ECS-OTEL-custom-launch"></a>

AWS Distro for OpenTelemetry를 데몬 서비스로 시작하려면 [데몬 서비스를 사용하여 Amazon Elastic Container Service(Amazon ECS)에서 태스크 실행](https://aws-otel.github.io/docs/setup/ecs/run-daemon-service)의 지침을 따르세요.

### (선택 사항) 고급 구성
<a name="container-insights-ECS-OTEL-custom-advancdeconfig"></a>

선택적으로 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)를 참조하세요.