AWS Distro for OpenTelemetry를 배포하여 Amazon ECS 클러스터의 EC2 인스턴스 수준 지표 수집 - Amazon CloudWatch

AWS Distro for OpenTelemetry를 배포하여 Amazon ECS 클러스터의 EC2 인스턴스 수준 지표 수집

이 단원의 단계에 따라 AWS Distro for OpenTelemetry를 사용하여 Amazon ECS 클러스터의 EC2 인스턴스 수준 지표를 수집할 수 있습니다. AWS Distro for OpenTelemetry에 대한 자세한 내용은 AWS Distro for OpenTelemetry를 참조하세요.

다음 단계에서는 Amazon ECS를 실행 중인 클러스터가 이미 있다고 가정합니다. 이 클러스터는 EC2 시작 유형으로 배포되어야 합니다. Amazon ECS와 함께 AWS Distro for Open Telemetry를 사용하고 이러한 용도로 Amazon ECS 클러스터를 설정하는 방법에 대한 자세한 내용은 Amazon Elastic Container Service에서 ECS EC2 인스턴스 수준 지표에 대해 AWS Distro for OpenTelemetry Collector 설정을 참조하세요.

AWS CloudFormation을 사용한 빠른 설정

EC2에서 Amazon ECS용 AWS Distro for OpenTelemetry Collector를 설치하기 위한 AWS 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_TO_CloudFormation_TEMPLATE을 템플릿 파일을 저장한 경로로 바꿉니다. 그런 후, 다음 명령과 같이 다음 파라미터를 내보내고 AWS CloudFormation 명령을 실행합니다.

  • Cluster_Name – Amazon ECS 클러스터 이름

  • AWS_Region – 데이터를 전송할 리전

  • PATH_TO_CloudFormation_TEMPLATE – AWS 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 콘솔을 사용하여 태스크가 실행 중인지 확인합니다.

빠른 설정 문제 해결

AWS 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/{ClusterName}/performance 로그 그룹을 찾습니다.

수동 설치 및 사용자 지정

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

1단계: 필요한 역할 및 정책

두 가지 IAM 역할이 필요합니다. 아직 존재하지 않는 경우 생성해야 합니다. 이러한 역할에 대한 자세한 내용은 IAM 정책 생성IAM 역할 생성을 참조하세요.

2단계: 태스크 정의 생성

태스크 정의를 생성하고 이를 사용하여 AWS Distro for OpenTelemetry를 데몬 서비스로 시작합니다.

태스크 정의 템플릿을 사용하여 태스크 정의를 생성하려면 AWS OTel Collector를 사용하여 EC2 인스턴스의 ECS EC2 태스크 정의 생성의 지침을 따르세요.

Amazon ECS 콘솔을 사용하여 태스크 정의를 생성하려면 AWS 콘솔을 통해 Amazon ECS EC2 인스턴스 지표에 대한 태스크 정의를 생성하여 AWS OTel Collector 설치의 지침을 따르세요.

3단계: 데몬 서비스 시작

AWS Distro for OpenTelemetry를 데몬 서비스로 시작하려면 데몬 서비스를 사용하여 Amazon Elastic Container Service(Amazon ECS)에서 태스크 실행의 지침을 따르세요.

(선택 사항) 고급 구성

선택적으로 SSM을 사용하여 Amazon EC2 인스턴스에서 호스트되는 Amazon ECS 클러스터의 AWS Distro for OpenTelemetry에 대한 다른 구성 옵션을 지정할 수 있습니다. 구성 파일 생성에 대한 자세한 내용은 사용자 지정 OpenTelemetry 구성을 참조하세요. 구성 파일에서 사용할 수 있는 옵션에 대한 자세한 내용은 AWS Container Insights Receiver를 참조하세요.