Fargate에서 Amazon ECS 태스크에 대한 높은 메모리 사용률을 모니터링하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 11월 12일

AWS Fargate에서 실행되는 Amazon Elastic Container Service(Amazon ECS) 태스크에 대한 높은 메모리 사용률을 모니터링하려고 합니다.

해결 방법

Fargate에서 Amazon ECS 태스크에 대한 높은 메모리 사용률을 모니터링하려면 다음 옵션을 시도합니다.

Amazon CloudWatch 지표 보기

Amazon ECS console 또는 CloudWatch 콘솔에서 Amazon CloudWatch 지표를 볼 수 있습니다.

참고: Fargate 시작 유형을 사용하는 모든 Amazon ECS 서비스는 Amazon CloudWatch 메모리 및 CPU 사용률 지표에 대해 자동으로 활성화됩니다.

Fargate 태스크에 대해 CloudWatch Logs 사용

1.    awslogs 로그 드라이버를 활성화합니다.

2.    태스크 정의에 필요한 로그 구성 파라미터를 추가합니다.

3.    AWS Identity and Access Management(IAM) 역할에 대한 Amazon ECS 태스크 실행에 Amazon CloudWatch Logs로 로그를 전송할 수 있는 권한을 부여합니다.

4.    CloudWatch 콘솔에서 로그를 확인합니다.

참고: 태스크를 실행 중 상태로 설정해야 로그를 볼 수 있습니다.

Container Insights를 사용하여 메모리 사용률 모니터링

CloudWatch Container Insights를 사용하여 Fargate 태스크의 각 컨테이너에 대한 메모리 사용률을 모니터링할 수 있습니다.

1.    CloudWatch 콘솔을 엽니다.

2.    탐색 창의 [Container Insights] 섹션에서 [리소스(Resources)]를 선택합니다.

3.    리소스에 대한 자세한 정보를 보려면 리소스의 이름을 선택합니다.

참고: 태스크는 각 클러스터에 대한 태스크 정의별로 그룹화됩니다.

4.    추가 정보를 원하는 태스크 정의의 이름을 선택합니다.

5.    [컨테이너 성능(Container Performance)] 섹션에서 [작업(Actions)]을 선택한 다음 [성능 로그 보기(View performance logs)]를 선택합니다. 그러면 ECS 클러스터에 대한 CloudWatch Logs 인사이트가 열립니다.

6.    쿼리 상자에 다음 쿼리를 입력하고 [쿼리 실행(Run query)]을 선택합니다.

stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
                | filter Type = "Task" | sort period desc, TaskDefinitionFamily |  limit 10

Container Insights를 사용하여 높은 메모리 사용률에 대한 경보 설정

1.    CloudWatch 콘솔을 엽니다.

2.    탐색 창의 [Container Insights] 섹션에서 [성능 모니터링(Performance Monitoring)]을 선택합니다.

3.    드롭다운 메뉴에서 [ECS 태스크(ECS Tasks)] 또는 [ECS 서비스(ECS Services)]를 선택합니다.

4.    [메모리 사용률(Memory Utilization)] 카드에서 확장기(세로 점)를 선택한 다음 [지표 형식으로 보기(View in Metrics)]를 선택합니다.

5.    [그래프 지표(Graphed metrics)] 탭을 선택한 다음 추가 정보를 원하는 태스크에 대한 [작업(Actions)] 열에서 종 아이콘을 선택합니다.

6.    [지표 및 조건 지정(Specify metric and conditions)] 페이지에서 원하는 값을 선택하거나 기본값을 그대로 둡니다.

7.    [조건(Conditions)] 섹션에서 [임계값 정의(Define the threshold value)]에 70을 입력합니다. 이렇게 하면 경보의 메모리 사용률 임계값이 70%로 설정됩니다.

8.    [다음(Next)]을 선택합니다.

9.    [작업 구성(Configure actions)] 페이지의 [SNS 주제 선택(Select an SNS topic)] 섹션에서 [새 주제 생성(Create new topic)]을 선택합니다.

10.    [알림 전송 대상(Send a notification to)]에 경보 알림을 전송할 이메일 ID를 입력합니다.

11.    [다음]을 선택합니다.

12.    [이름 및 설명 추가(Add name and description)] 페이지에서 [경보 이름(Alarm name)]에 경보에 대한 이름을 입력합니다. 

13.    (선택 사항) [경보 설명(Alarm description)]에 경보에 대한 설명을 입력합니다.

14.    [다음(Next)]을 선택한 다음, [경보 생성(Create alarm)]을 선택합니다.

15.    AWS에서 수신한 확인 이메일의 지침에 따라 구독을 확인합니다.

참고: CloudWatch는 Container Insights 비용을 관리하는 데 도움이 되도록 로그 데이터의 모든 가능한 지표를 자동으로 생성하지는 않습니다. CloudWatch Logs Insights를 사용하여 원시 성능 로그 이벤트를 분석하면 추가 지표와 추가 세분화 수준을 볼 수 있습니다.