CodeDeploy에서 배포 모니터링 - AWS CodeDeploy

CodeDeploy에서 배포 모니터링

모니터링은 CodeDeploy 및 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 발생하는 다중 지점 실패를 보다 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분으로부터 모니터링 데이터를 수집해야 합니다. 하지만 CodeDeploy 모니터링을 시작하기 전에 다음 질문에 대한 답변을 포함하는 모니터링 계획을 작성해야 합니다.

  • 모니터링의 목표

  • 모니터링할 리소스

  • 이러한 리소스를 모니터링하는 빈도

  • 사용할 모니터링 도구

  • 모니터링 작업을 수행할 사람

  • 문제 발생 시 알려야 할 대상

다음 단계에서는 다양한 시간과 다양한 부하 조건에서 성능을 측정하여 환경에서 일반 CodeDeploy 성능의 기준선을 설정합니다. CodeDeploy가 과거 모니터링 데이터를 저장하는 것을 모니터링하면서 현재 성능 데이터를 이 과거 데이터와 비교하면 일반적인 성능 패턴과 성능 이상을 식별하고 이를 해결할 방법을 고안할 수 있습니다.

예를 들어 CodeDeploy를 사용하는 경우 배포 및 대상 인스턴스 상태를 모니터링할 수 있습니다. 배포 또는 인스턴스가 실패할 경우 애플리케이션 사양 파일을 재구성하거나, CodeDeploy 에이전트를 다시 설치 또는 업데이트하거나, 애플리케이션 또는 배포 그룹의 설정을 업데이트하거나, 인스턴스 설정 또는 AppSpec 파일을 변경해야 할 수 있습니다.

기준선을 설정하려면 최소한 다음 항목을 모니터링해야 합니다.

  • 배포 이벤트 및 상태

  • 인스턴스 이벤트 및 상태

자동 모니터링 도구

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

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

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

    CloudWatch 경보 모니터링을 사용하도록 서비스 역할을 업데이트하는 방법에 대한 자세한 내용은 CodeDeploy 서비스 역할에 CloudWatch 권한 부여 단원을 참조하세요. CloudWatch 경보 모니터링을 CodeDeploy 작업에 추가하는 방법에 대한 자세한 내용은 CodeDeploy를 사용하여 애플리케이션 생성, CodeDeploy에서 배포 그룹 만들기 또는 CodeDeploy에서 배포 그룹 설정 변경 단원을 참조하세요.

  • Amazon CloudWatch Logs – AWS CloudTrail 또는 기타 소스의 로그 파일을 모니터링, 저장 및 액세스합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서로그 파일 모니터링을 참조하세요.

    CloudWatch 콘솔을 사용하여 CodeDeploy 로그를 보는 방법에 대한 자세한 내용은 CloudWatch Logs 콘솔에서 CodeDeploy 로그 보기를 참조하세요.

  • Amazon CloudWatch Events – 이벤트를 일치시키고 하나 이상의 대상 함수 또는 스트림으로 라우팅하여 값을 변경하거나 상태 정보를 캡처하거나 수정 작업을 수행합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서Amazon CloudWatch Events란 무엇입니까?를 참조하세요.

    CodeDeploy 작업에서 CloudWatch Events를 사용하는 방법에 대한 자세한 내용은 Amazon CloudWatch Events를 사용하여 배포 모니터링 단원을 참조하세요.

  • AWS CloudTrail Log Monitoring – 계정 간에 로그 파일을 공유하고, CloudTrail 로그 파일을 CloudWatch Logs에 전송하여 실시간으로 모니터링하며, Java에서 로그 처리 애플리케이션을 작성하고, CloudTrail에서 전송한 후 로그 파일이 변경되지 않았는지 확인합니다. 자세한 내용은 AWS CloudTrail 사용 설명서CloudTrail 로그 파일 작업을 참조하세요.

    CodeDeploy에서 CloudTrail 사용에 관한 자세한 내용은 Monitoring Deployments 단원을 참조하세요.

  • Amazon Simple Notification Service — 성공 또는 실패와 같은 배포 및 인스턴스 이벤트에 대한 SMS 또는 이메일 알림을 수신하도록 이벤트 기반 트리거를 구성합니다. 자세한 내용은 주제 생성Amazon Simple Notification Service는 무엇입니까를 참조하세요.

    CodeDeploy에 대한 Amazon SNS 알림을 설정하는 방법에 대한 자세한 내용은 Monitoring Deployments with Amazon SNS Event Notifications 단원을 참조하세요.

수동 모니터링 도구

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

  • CodeDeploy 콘솔에는 다음이 표시됩니다.

    • 배포 상태

    • 수정 버전의 마지막 배포 시도 및 마지막으로 성공한 각 날짜 및 시간

    • 배포에서 성공, 실패, 건너뛴 인스턴스 또는 진행 중인 인스턴스 수

    • 온프레미스 인스턴스 상태

    • 온프레미스 인스턴스 등록 또는 등록 취소된 날짜 및 시간

  • CloudWatch 홈 페이지에 표시되는 항목은 다음과 같습니다.

    • 현재 경보 및 상태

    • 경보 및 리소스 그래프

    • 서비스 상태

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

    • 사용자 지정 대시보드를 생성하여 관심 있는 서비스 모니터링

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

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

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

주제