View a markdown version of this page

CloudWatch 경보 - AWS의 분산 로드 테스트

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudWatch 경보

이 솔루션은 주의가 필요한 운영 조건을 모니터링하는 두 개의 CloudWatch 경보를 배포합니다. 기본적으로 이러한 경보에는 알림 작업이 구성되어 있지 않습니다. 운영자가 문제가 발생할 때 즉시 알림을 받을 수 있도록 각 경보에 Amazon SNS 주제를 구독하는 것이 좋습니다.

경보 알림 구독

경보가 실행될 때 알림을 받으려면:

  1. CloudWatch 경보 콘솔을 엽니다.

  2. 스택 이름 접두사가 붙은 경보를 검색합니다(예: my-stack-OrphanCleanupFailure).

  3. 경보를 선택하고 편집을 선택합니다.

  4. 알림에서 알림 추가를 선택합니다.

  5. 원하는 알림 엔드포인트(이메일, SMS 또는 Lambda)를 사용하여 SNS 주제를 선택하거나 생성합니다.

  6. 경보 업데이트(Update alarm)을 선택합니다.

각 경보에 대해 반복합니다.

OrphanCleanupFailure

속성

Alarm name

{StackName}-OrphanCleanupFailure

지표

OrphanCleanupFailures distributed-load-testing 네임스페이스의

Threshold

5분 이내에 >= 1 실패

누락된 데이터 처리

위반

이 경보가 모니터링하는 내용: 솔루션은 3가지 방어 계층을 사용하여 런어웨이 ECS 서비스를 방지합니다.

  • 계층 1: 자동 오류 처리 - 테스트 오케스트레이션 워크플로에는 모든 단계의 오류 처리가 포함됩니다. 프로비저닝, 안정화 또는 실행 중에 문제가 발생하면 워크플로가 자동으로 정리를 트리거하여 ECS 서비스를 드레이닝하고 삭제합니다.

  • 계층 2: 실행 실패 감지 - 오케스트레이션 워크플로 자체가 예기치 않게 종료되는 경우(예: 일반적인 오류 처리를 우회하는 제한 시간 또는 내부 오류로 인해) EventBridge 규칙은 실패를 감지하고 테스트와 관련된 모든 리전에 대해 독립적으로 정리를 트리거합니다.

  • 계층 3: 시간당 고아 정리 - 예약된 프로세스가 매시간 실행되고, 활성 테스트와 연결되지 않은 ECS 서비스를 스캔하고, 강제로 삭제합니다. 이는 마지막 정렬 안전망입니다. 계층 1과 계층 2가 모두 실패하더라도 누출된 서비스는 1시간 이내에 계속 제거됩니다. 분리된 정리 프로세스 자체가 실패하면이 경보가 실행됩니다.

중요한 이유: 분리된 ECS Fargate 서비스는 계속 실행되며 DLT 콘솔에서 표시되지 않고 요금이 발생합니다. 알림 구독이 없으면 운영자는 예상치 못한 비용이 청구서에 표시될 때만 문제를 발견합니다.

권장 응답:이 경보가 실행되면 Amazon ECS 콘솔로 이동하여 실행 중인 테스트에 해당하지 않는 DLT 클러스터의 서비스를 식별하고 수동으로 삭제합니다.

MetricFilterCount

속성

Alarm name

{StackName}-MetricFilterCount-Alarm

지표

MetricFilterCount distributed-load-testing 네임스페이스의

Threshold

>= 90

누락된 데이터 처리

위반하지 않음

이 경보가 모니터링하는 내용: 솔루션은 테스트 실행 중에 라이브 지표를 지원하기 위해 ECS 로그 그룹에 CloudWatch 지표 필터를 동적으로 생성합니다. AWS는 각 로그 그룹을 100개의 지표 필터로 제한합니다. 이 경보는 사용량이 해당 한도의 90%에 도달하면 실행됩니다.

중요한 이유: 한도에 도달하면 새 로드 테스트 실행이 실패합니다.

권장 응답: 더 이상 필요하지 않은 테스트 시나리오를 삭제합니다. 테스트 시나리오가 삭제되면 솔루션은 연결된 지표 필터를 제거하고 새 테스트를 위한 용량을 확보합니다.