Runtime Monitoring 문제 해결 - Amazon Elastic Container Service

Runtime Monitoring 문제 해결

Runtime Monitoring이 활성화되어 작업 및 컨테이너에서 실행 중인지 확인하거나 문제를 해결해야 할 수 있습니다.

내 계정에서 Runtime Monitoring이 활성화되어 있는지 어떻게 알 수 있나요?

Amazon ECS 콘솔에서 정보는 계정 설정 페이지에 있습니다.

list-account-settingseffective-settings 옵션과 함께 실행할 수도 있습니다.

aws ecs list-account-settings --effective-settings

출력

이름guardDutyActivate로 설정되고 on으로 설정된 설정은 계정이 구성되었음을 나타냅니다. GuardDuty 관리자에게 문의하여 관리가 자동인지, 수동인지 확인해야 합니다.

{ "setting": { "name": "guardDutyActivate", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root", "type": "aws-managed" } }

클러스터에서 Runtime Monitoring이 활성 상태인지 어떻게 알 수 있나요?

GuardDuty 콘솔에서 적용 범위 통계를 검토할 수 있습니다. 본인 계정 또는 멤버 계정과 연결된 Amazon ECS 리소스에 대한 정보는 선택한 AWS 리전의 모든 클러스터에 대한 정상적인 클러스터의 비율입니다. 여기에는 Fargate 및 EC2 시작 유형을 사용하는 클러스터에 대한 적용 범위가 포함됩니다. 자세한 내용은 Amazon GuardDuty 사용 설명서적용 범위 통계 검토를 참조하세요.

GuardDuty 보안 에이전트가 Fargate 작업에서 실행 중인지 어떻게 알 수 있나요?

GuardDuty 보안 에이전트는 Fargate 작업의 사이드카 컨테이너로 실행됩니다.

Amazon ECS 콘솔에서 사이드카는 작업 세부 정보 페이지의 컨테이너 아래에 표시됩니다.

describe-tasks를 실행하고 이름aws-gd-agent로 설정되고 LastStatusRUNNING으로 설정된 컨테이너를 찾을 수 있습니다.

다음 예제에서는 작업 aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE에 대한 기본 클러스터의 출력을 보여줍니다.

aws ecs describe-tasks --cluster default --tasks aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE

출력

이름이 gd-agent인 컨테이너가 RUNNING 상태입니다.

"containers": [ { "containerArn": "arn:aws:ecs:us-east-1:123456789012:container/4df26bb4-f057-467b-a079-96167EXAMPLE", "taskArn": "arn:aws:ecs:us-east-1:123456789012:task/0b69d5c0-d655-4695-98cd-5d2d5EXAMPLE", "lastStatus": "RUNNING", "healthStatus": "UNKNOWN", "memory": "string", "name": "aws-gd-agent" } ]

GuardDuty 보안 에이전트가 EC2 컨테이너 인스턴스에서 실행 중인지 어떻게 알 수 있나요?

다음 명령을 실행하여 상태를 봅니다.

sudo systemctl status amazon-guardduty-agent

로그 파일은 다음 위치에 있습니다.

/var/log/amzn-guardduty-agent

클러스터에서 실행 중인 작업에 대한 작업 실행 역할이 없으면 어떻게 되나요?

Fargate 작업의 경우 GuardDuty 보안 에이전트 사이드카 컨테이너 없이 작업이 시작됩니다. GuardDuty 대시보드는 적용 범위 통계 대시보드에서 작업에 보호 기능이 누락되었음을 표시합니다.

Runtime Monitoring을 위해 클러스터에 태그를 지정할 수 있는 올바른 권한이 있는지 어떻게 알 수 있나요?

클러스터에 태그를 지정하려면 CreateClusterecs:TagResource 모두에 대한 UpdateCluster 작업이 있어야 합니다.

다음은 예제 정책의 코드 조각입니다.

{ "Statement": [ { "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction" : "CreateCluster", "ecs:CreateAction" : "UpdateCluster", } } } ] }

Amazon ECR에 연결되어 있지 않으면 어떻게 되나요?

Fargate 작업의 경우 GuardDuty 보안 에이전트 사이드카 컨테이너 없이 작업이 시작됩니다. GuardDuty 대시보드는 적용 범위 통계 대시보드에서 작업에 보호 기능이 누락되었음을 표시합니다.

Runtime Monitoring을 활성화한 후 Fargate 작업의 메모리 부족 오류를 해결하려면 어떻게 해야 하나요?

GuardDuty 보안 에이전트는 경량 프로세스입니다. 그러나 이 프로세스는 워크로드 크기에 따라 여전히 리소스를 소비합니다. Amazon CloudWatch Container Insights와 같은 컨테이너 리소스 추적 도구를 사용하여 클러스터에서 GuardDuty 배포를 스테이징하는 것이 좋습니다. 이러한 도구를 사용하면 애플리케이션에 대한 GuardDuty 보안 에이전트의 소비 프로파일을 검색할 수 있습니다. 그런 다음, 필요한 경우 Fargate 작업 크기를 조정하여 잠재적인 메모리 부족 조건을 방지할 수 있습니다.