Amazon ECS 클러스터의 App Mesh 워크로드 샘플 - Amazon CloudWatch

Amazon ECS 클러스터의 App Mesh 워크로드 샘플

Amazon ECS의 Prometheus 워크로드 샘플에서 지표를 수집하려면 클러스터에서 Container Insights를 실행 중이어야 합니다. Container Insights 설치에 대한 자세한 내용은 Amazon ECS에서 Container Insights 설정 단원을 참조하세요.

먼저, 이 시연에 따라 Amazon ECS 클러스터에 샘플 컬러 앱을 배포합니다. 완료하면 포트 9901에 App Mesh Prometheus 지표가 노출됩니다.

다음으로, 다음 단계에 따라 컬러 앱을 설치한 동일한 Amazon ECS 클러스터에 Prometheus 모니터링이 포함된 CloudWatch 에이전트를 설치합니다. 이 단원의 단계에서는 브리지 네트워크 모드에서 CloudWatch 에이전트를 설치합니다.

시연에서 설정한 환경 변수인 ENVIRONMENT_NAME, AWS_PROFILE, AWS_DEFAULT_REGION은 다음 단계에서도 사용됩니다.

테스트를 위해 Prometheus 모니터링이 포함된 CloudWatch 에이전트를 설치하려면
  1. 다음 명령을 입력하여 AWS CloudFormation 템플릿을 다운로드합니다.

    curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/ecs-task-definition-templates/deployment-mode/replica-service/cwagent-prometheus/cloudformation-quickstart/cwagent-ecs-prometheus-metric-for-bridge-host.yaml
  2. 다음 명령을 입력하여 네트워크 모드를 설정합니다.

    export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
  3. 다음 명령을 입력하여 AWS CloudFormation 스택을 생성합니다.

    aws cloudformation create-stack --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --template-body file://cwagent-ecs-prometheus-metric-for-bridge-host.yaml \ --parameters ParameterKey=ECSClusterName,ParameterValue=${ECS_CLUSTER_NAME} \ ParameterKey=CreateIAMRoles,ParameterValue=True \ ParameterKey=ECSNetworkMode,ParameterValue=${ECS_NETWORK_MODE} \ ParameterKey=TaskRoleName,ParameterValue=CWAgent-Prometheus-TaskRole-${ECS_CLUSTER_NAME} \ ParameterKey=ExecutionRoleName,ParameterValue=CWAgent-Prometheus-ExecutionRole-${ECS_CLUSTER_NAME} \ --capabilities CAPABILITY_NAMED_IAM \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}
  4. (선택 사항) AWS CloudFormation 스택이 생성되면 CREATE_COMPLETE 메시지가 표시됩니다. 해당 메시지가 표시되기 전에 상태를 확인하려면 다음 명령을 입력합니다.

    aws cloudformation describe-stacks \ --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --query 'Stacks[0].StackStatus' \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}

문제 해결

시연 단계에서는 jq를 사용하여 AWS CLI의 출력 결과를 구문 분석합니다. jq 설치에 대한 자세한 내용은 jq를 참조하세요. jq가 올바르게 구문 분석할 수 있도록 다음 명령을 사용하여 AWS CLI의 기본 출력 형식을 JSON으로 설정합니다.

$ aws configure

[기본 출력 형식(Default output format)] 응답에 json을 입력합니다.

Prometheus 모니터링이 포함된 CloudWatch 에이전트 제거

테스트를 마쳤으면 다음 명령을 입력하여 AWS CloudFormation 스택을 삭제함으로써 CloudWatch 에이전트를 제거합니다.

aws cloudformation delete-stack \ --stack-name CWAgent-Prometheus-ECS-${ECS_CLUSTER_NAME}-EC2-${ECS_NETWORK_MODE} \ --region ${AWS_DEFAULT_REGION} \ --profile ${AWS_PROFILE}