Amazon ECS 작업 로그 시작하기
Amazon ECS 작업 로그에서는 Amazon CloudWatch Logs 제공형 로그 전송 메커니즘을 사용하여 서비스 작업에 대한 세부 레코드를 원하는 대상에 게시합니다. 작업 로그를 활성화하면 인프라 프로비저닝, 리소스 등록, 실패 세부 정보를 포함하여 Amazon ECS에서 배포 및 대몬 작업 중에 수행되는 모든 단계를 확인할 수 있습니다. 이러한 가시성을 통해 AWS Support에 문의하지 않고도 문제를 해결하고 근본 원인을 식별하는 데 걸리는 시간을 줄일 수 있습니다. Amazon ECS 콘솔 또는 CloudWatch Logs API를 사용하여 클러스터에 대한 작업 로그를 활성화할 수 있습니다.
사전 조건
작업 로그를 활성화하기 전에 IAM 자격 증명에 필요한 권한이 있는지 확인합니다.
필수 IAM 권한
작업 로그를 활성화하고 관리하려면 IAM 자격 증명에 다음 권한이 있어야 합니다.
{ "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:PutDeliveryDestination", "logs:CreateDelivery", "logs:GetDelivery", "ecs:AllowVendedLogDeliveryForResource" ], "Resource": "*" }
대상 리소스 정책
대상 CloudWatch Logs 로그 그룹에는 delivery.logs.amazonaws.com 서비스에 로그를 쓰도록 허용하는 리소스 정책이 있어야 합니다. 로그 그룹 리소스 정책에 다음 명령문을 추가합니다.
{ "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" }
Amazon ECS 콘솔을 사용하여 작업 로그 활성화
Amazon ECS 콘솔의 클러스터 세부 정보 페이지에서 직접 작업 로그를 활성화할 수 있습니다.
콘솔을 사용하여 작업 로그를 활성화하려면
https://console.aws.amazon.com/ecs/v2
에서 콘솔을 엽니다. -
탐색 창에서 클러스터를 선택한 후 클러스터를 선택합니다.
-
구성 탭을 선택합니다.
-
작업 로그 섹션에서 추가를 선택합니다.
-
대상의 경우 다음 중 하나를 선택합니다.
-
CloudWatch Logs(기본값)
-
Amazon S3
-
Amazon Data Firehose
CloudWatch Logs의 경우 Amazon ECS에서 유지 기간이 7일인
/aws/vendedlogs/ecs/action-logs/기본 로그 그룹을 생성합니다.cluster-name -
-
저장을 선택합니다.
CloudWatch Logs API를 사용하여 작업 로그 활성화
CloudWatch Logs 제공형 로그 전송 API를 사용하여 프로그래밍 방식으로 작업 로그를 활성화할 수 있습니다. 이 접근 방식을 사용하려면 전송 소스 등록, 대상 구성, 전송 생성의 세 단계를 수행해야 합니다.
AWS CLI를 사용하여 작업 로그를 활성화하려면
-
다음 명령을 실행하여 전송 소스를 등록합니다.
aws logs put-delivery-source \ --namemy-ecs-action-logs\ --resource-arn arn:aws:ecs:region:account-id:cluster/cluster-name\ --log-type EcsActionLogs -
다음 명령을 실행하여 전송 대상을 구성합니다.
aws logs put-delivery-destination \ --namemy-ecs-logs-destination\ --output-format json \ --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:region:account-id:log-group:/aws/vendedlogs/ecs/action-logs/cluster-name"}' -
다음 명령을 실행하여 소스를 대상에 연결하는 전송을 생성합니다.
aws logs create-delivery \ --delivery-source-namemy-ecs-action-logs\ --delivery-destination-arn arn:aws:logs:region:account-id:delivery-destination:my-ecs-logs-destination
로그 전송 확인
작업 로그를 활성화한 후 로그가 대상에 전달되는지 확인합니다.
로그 전송을 확인하려면
-
클러스터에서 작업을 트리거합니다. 예를 들어 대몬 서비스를 생성하거나 업데이트합니다.
-
https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.
-
탐색 창에서 로그 그룹을 선택합니다.
-
작업 로그 로그 그룹을 선택하고 새 로그 스트림이 나타나는지 확인합니다.
작업 로그 삭제
AWS CLI 또는 Amazon ECS 콘솔을 사용하여 작업 로그를 삭제할 수 있습니다.
작업 로그를 삭제하려면 IAM 자격 증명에 다음과 같은 추가 권한이 있어야 합니다.
{ "Effect": "Allow", "Action": [ "logs:DeleteDelivery", "logs:DeleteDeliverySource", "logs:DeleteDeliveryDestination" ], "Resource": "*" }
AWS CLI를 사용하여 작업 로그를 삭제하려면
-
다음 명령을 실행하여 전송을 삭제합니다.
aws logs delete-delivery \ --delivery-iddelivery-id -
다음 명령을 실행하여 전송 소스를 삭제합니다.
aws logs delete-delivery-source \ --namemy-ecs-action-logs -
다음 명령을 실행하여 전송 대상을 삭제합니다.
aws logs delete-delivery-destination \ --namemy-ecs-logs-destination
콘솔을 사용하여 작업 로그를 삭제하려면 클러스터 세부 정보 페이지로 이동하여 구성 탭을 선택한 다음 작업 로그 섹션에서 삭제를 선택합니다.
다음 단계
작업 로그를 활성화한 후 다음 리소스를 사용하여 Amazon ECS 클러스터를 모니터링하고 문제를 해결합니다.