Amazon ECS 모니터링 도구 - Amazon Elastic Container Service

Amazon ECS 모니터링 도구

AWS는 Amazon ECS를 모니터링하는 데 사용할 수 있는 다양한 도구를 제공합니다. 이들 도구 중에는 모니터링을 자동으로 수행하도록 구성할 수 있는 도구도 있지만, 수동 작업이 필요한 도구도 있습니다. 모니터링 작업은 최대한 자동화하는 것이 좋습니다.

자동 모니터링 도구

다음과 같은 자동 모니터링 도구를 사용하여 Amazon ECS를 관찰하고 문제 발생 시 보고할 수 있습니다.

  • Amazon CloudWatch 경보 – 지정한 기간 동안 단일 지표를 감시하고, 여러 기간에 대해 지정된 임계값과 관련하여 지표 값을 기준으로 하나 이상의 태스크를 수행합니다. 이 작업은 Amazon Simple Notification Service(Amazon SNS) 주제 또는 Amazon EC2 Auto Scaling 정책에 전송되는 알림입니다. CloudWatch 경보는 특정 상태에 있다는 이유만으로는 작업을 호출하지 않습니다. 상태가 변경되고 지정한 기간 동안 유지되어야 합니다. 자세한 정보는 CloudWatch를 사용하여 Amazon ECS 모니터링 섹션을 참조하세요.

    Fargate 시작 유형을 사용하는 태스크가 있는 서비스의 경우, CloudWatch 경보를 사용하면 CPU 및 메모리 사용률과 같은 CloudWatch 지표를 기반으로 하여 서비스의 태스크를 축소 및 확장할 수 있습니다. 자세한 정보는 Amazon ECS 서비스 자동 조정 섹션을 참조하세요.

    EC2 시작 유형을 사용하는 태스크 또는 서비스가 있는 클러스터의 경우, CloudWatch 경보를 사용하면 클러스터 메모리 예약과 같은 CloudWatch 지표를 기반으로 컨테이너 인스턴스를 축소 및 확장할 수 있습니다.

    Amazon ECS 최적화 Amazon Linux AMI를 사용하여 시작된 컨테이너 인스턴스의 경우, 한 곳에서 간편하게 CloudWatch Logs를 사용하여 컨테이너 인스턴스의 여러 로그를 볼 수 있습니다. CloudWatch 에이전트를 컨테이너 인스턴스에 설치해야 합니다. 자세한 정보는 Amazon CloudWatch 사용 설명서명령줄을 사용하여 CloudWatch 에이전트 다운로드 및 구성을 참조하세요. ecsInstanceRole 역할에 ECS-CloudWatchLogs 정책도 추가해야 합니다. 자세한 내용은 컨테이너 인스턴스 모니터링 권한 단원을 참조하십시오.

  • Amazon CloudWatch Logs – 태스크 정의에서 awslogs 로그 드라이버를 지정하여 Amazon ECS 작업 내의 컨테이너에서 로그 파일을 모니터링, 저장 및 액세스합니다. 자세한 정보는 Amazon ECS 로그를 CloudWatch로 전송 섹션을 참조하세요.

    Amazon ECS 컨테이너 인스턴스에서 운영 체제 및 Amazon ECS 컨테이너 에이전트 로그 파일을 모니터링, 저장 및 액세스할 수도 있습니다. 이와 같은 로그 액세스 방법은 EC2 시작 유형을 사용하는 컨테이너에 사용할 수 있습니다.

  • Amazon CloudWatch Events – 이벤트를 일치시키고 하나 이상의 대상 함수 또는 스트림으로 라우팅하여 값을 변경하거나 상태 정보를 캡처하거나 수정 태스크를 수행합니다. 자세한 정보는 이 가이드의 EventBridge를 사용하여 Amazon ECS 오류에 대한 응답 자동화 섹션 및 Amazon CloudWatch Events 사용 설명서Amazon CloudWatch Events란 무엇인가요?를 참조하세요.

  • Container Insights - 컨테이너화된 애플리케이션 및 마이크로서비스에서 지표 및 로그를 수집하고 집계하며 요약합니다. Container Insights는 임베디드 지표 형식을 사용하여 데이터를 ‘성능 로그 이벤트’로 수집합니다. 이러한 성능 로그 이벤트는 카디널리티가 높은 데이터를 대규모로 수집 및 저장할 수 있게 하는 구조화된 JSON 스키마를 사용하는 항목입니다. 이 데이터를 통해 CloudWatch는 클러스터, 작업 및 서비스 수준에서 집계된 지표를 CloudWatch 지표로 생성합니다. Container Insights가 수집하는 지표는 CloudWatch 자동 대시보드에서 사용할 수 있으며 CloudWatch 콘솔의 지표 섹션에서도 볼 수 있습니다.

  • AWS CloudTrail 로그 모니터링 – 계정 간에 로그 파일을 공유하고, CloudTrail 로그 파일을 CloudWatch Logs에 전송하여 실시간으로 모니터링하며, Java에서 로그 처리 애플리케이션을 작성하고, CloudTrail에서 전송한 후 로그 파일이 변경되지 않았는지 확인합니다. 자세한 정보는 이 가이드의 AWS CloudTrail을 사용하여 Amazon ECS API 직접 호출 로깅 섹션 및 AWS CloudTrail 사용 설명서CloudTrail 로그 파일 작업을 참조하세요.

  • Runtime Monitoring - AWS 환경 내 클러스터 및 컨테이너에 대한 위협을 감지합니다. Runtime Monitoring은 파일 액세스, 프로세스 실행 및 네트워크 연결과 같은 개별 Amazon ECS 워크로드에 대한 런타임 가시성을 추가하는 GuardDuty 보안 에이전트를 사용합니다.

수동 모니터링 도구

Amazon ECS 모니터링의 또 한 가지 중요한 부분은 CloudWatch 경보에 포함되지 않는 항목을 수동으로 모니터링해야 한다는 점입니다. CloudWatch, Trusted Advisor 및 기타 AWS 콘솔 대시보드에서는 AWS 환경의 상태를 한 눈에 볼 수 있습니다. 또한 태스크 내 컨테이너 인스턴스와 컨테이너에서 로그 파일을 확인하는 것이 좋습니다.

  • Amazon ECS 콘솔:

    • EC2 시작 유형에 대한 클러스터 지표

    • 서비스 지표

    • 서비스 상태

    • 서비스 배포 이벤트

  • CloudWatch 홈 페이지:

    • 현재 경보 및 상태

    • 경보 및 리소스 그래프

    • 서비스 상태

    또한 CloudWatch를 사용하여 다음을 수행할 수 있습니다.

    • 사용자 지정 대시보드를 만들어 원하는 서비스 모니터링.

    • 지표 데이터를 그래프로 작성하여 문제를 해결하고 추세 파악.

    • 모든 AWS 리소스 지표 검색 및 찾아보기

    • 문제에 대해 알려주는 경보 생성 및 편집

  • 컨테이너 상태 확인 - 컨테이너에서 로컬로 실행되며 애플리케이션 상태 및 가용성을 검증하는 명령입니다. 작업 정의에서 컨테이너별로 구성합니다.

  • AWS Trusted Advisor 사용을 통해 AWS 리소스를 모니터링함으로써 성능, 안정성, 보안 및 경제성을 향상할 수 있습니다. 모든 사용자에 대해 4가지 Trusted Advisor 검사를 수행할 수 있고, 비즈니스 또는 엔터프라이즈 지원 플랜에 따라 사용자에 대해 50개 이상의 검사를 수행할 수 있습니다. 자세한 내용은 AWS Trusted Advisor 단원을 참조하십시오.

    Trusted Advisor에서 다음 검사는 Amazon ECS와 관련됩니다.

    • 서비스가 단일 가용 영역에서 실행 중임을 나타내는 내결함성.

    • 여러 가용 영역에 대한 분산 배치 전략을 사용하지 않음을 나타내는 내결함성.

  • AWS Compute Optimizer는 AWS 리소스의 구성 및 사용률 지표를 분석하는 서비스입니다. 이는 리소스가 최적 상태인지 여부를 보고하고 최적화 권장 사항을 생성하여 비용을 절감하고 워크로드의 성능을 개선합니다.

    자세한 내용은 Amazon ECS에 대한 AWS Compute Optimizer 권장 사항 단원을 참조하십시오.