Amazon ECS 클러스터의 App Mesh 워크로드 샘플
Amazon ECS의 Prometheus 워크로드 샘플에서 지표를 수집하려면 클러스터에서 Container Insights를 실행 중이어야 합니다. Container Insights 설치에 대한 자세한 내용은 Amazon ECS에서 Container Insights 설정 단원을 참조하세요.
먼저, 이 시연
다음으로, 다음 단계에 따라 컬러 앱을 설치한 동일한 Amazon ECS 클러스터에 Prometheus 모니터링이 포함된 CloudWatch 에이전트를 설치합니다. 이 단원의 단계에서는 브리지 네트워크 모드에서 CloudWatch 에이전트를 설치합니다.
시연에서 설정한 환경 변수인 ENVIRONMENT_NAME
, AWS_PROFILE
, AWS_DEFAULT_REGION
은 다음 단계에서도 사용됩니다.
테스트를 위해 Prometheus 모니터링이 포함된 CloudWatch 에이전트를 설치하려면
-
다음 명령을 입력하여 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
-
다음 명령을 입력하여 네트워크 모드를 설정합니다.
export ECS_CLUSTER_NAME=${ENVIRONMENT_NAME} export ECS_NETWORK_MODE=bridge
-
다음 명령을 입력하여 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}
-
(선택 사항) 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
$ 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}