Amazon CloudWatch
안녕하세요. 저는 AWS Training and Certification의 Wes Gruver입니다. Amazon CloudWatch 과정을 시작하겠습니다. 이 동영상에서는 이 서비스를 간략하게 알아보고 일반 사용 사례를 검토한 후에 짧은 데모를 통해 작동 방법을 보여드립니다.
제가 AWS에 근무한 지는 2년이 되었으며 현재는 AWS 서비스에서 기업 고객 교육을 담당하고 있습니다. 교육 및 자격증 팀 소속으로서 저는 고객들이 AWS 제품 및 서비스의 선택 및 사용 방법을 더 잘 이해하도록 돕고 있습니다. AWS에서의 설계부터 DevOps 및 AWS에서의 보안에 이르기까지 모든 것을 가르칩니다.
이 동영상에서는 Amazon CloudWatch를 소개합니다. 특히 서비스 내용을 간략하게 살펴보고 제품에 대한 일반 사용 사례를 검토한 후에 짧은 데모를 통해 작동 방법을 보여드립니다.
Amazon CloudWatch란
그러면, Amazon CloudWatch란 무엇일까요? Amazon CloudWatch의 핵심은 모니터링 서비스입니다. 이를 통해 AWS 리소스와 이러한 리소스에서 실행되는 애플리케이션을 실시간으로 모니터링할 수 있습니다.
Amazon CloudWatch 기능에는 CPU 사용률, 데이터 전송, 디스크 I/O 및 사용률 등의 지표 수집 및 추적이 포함됩니다. 클라우드 리소스 및 애플리케이션의 서비스도 모니터링할 수 있습니다. 또한 원하는 지표에 대한 경보를 설정하여 알림 메시지를 전송하거나 다른 자동화된 조치를 취할 수 있습니다.
이러한 CloudWatch의 대표적인 핵심 기능은 강력한 도구로 주목 받고 있습니다. 변화에 자동으로 대응할 수 있습니다. 기존 시스템, 애플리케이션 및 사용자 지정 로그 파일을 CloudWatch Logs로 전송하여 거의 실시간으로 분석할 수 있습니다. 전반적으로 CloudWatch를 사용하면 시스템 전체의 리소스 사용률, 애플리케이션 성능 및 운영 상태를 파악할 수 있습니다. Amazon CloudWatch 아키텍처에는 CloudWatch를 지원하는 CloudWatch 지표와 같은 리소스가 포함됩니다. 해당 기본 지표에는 CPU 사용률, 상태 확인 등의 지표가 포함됩니다. 사용자 지정 애플리케이션별 지표도 애플리케이션 내에서 사용 가능한 통계에 관련되거나 기록될 수 있습니다.
이러한 모든 사항은 AWS Management Console로 보고되고 가져옵니다. 또한 이러한 사항은 Amazon CloudWatch 경보를 트리거하도록 로그오프 및 전송될 수 있습니다. CloudWatch 경보는 이메일 또는 SMS를 통해 알림 메시지를 전송할 수 있습니다. 또한 Auto Scaling 이벤트를 트리거할 수 있습니다. 이 기능은 데모에서 보듯이 매우 강력한 서비스입니다.
물론 CloudWatch의 일반 사용 사례는 AWS 리소스의 상태 변경에 응답하고 Lambda 함수를 자동으로 호출하여 업데이트를 수행합니다. 예를 들면 EC2 인스턴스가 Running 상태로 전환하는 것을 이벤트가 알려줄 때 DNS 항목을 업데이트합니다. 잠재적 보안 또는 가용성 위험에 대한 상세한 분석을 위해 특정 API 레코드를 CloudTrail에서 Kinesis 스트림으로 유도할 수 있습니다. 스케줄에서 EBS 볼륨의 스냅샷을 만들 수도 있습니다. 또는 CloudWatch 이벤트를 사용하여 S3 객체 수준 작업을 기록할 수 있습니다.
Amazon CloudWatch의 구성 요소
Amazon CloudWatch를 구성하는 구성 요소에는 지표, 경보, 이벤트, 로그 및 대시보드가 포함됩니다. 이러한 각 구성 요소에 대해 개별적으로 살펴보겠습니다.
CloudWatch 지표
CloudWatch 지표. 이 구성 요소는 시스템의 성능에 대한 데이터의 출처에 해당됩니다. 사실상 지표는 CloudWatch에 게시되는 시간 순서별 데이터 포인트 세트를 나타냅니다. 기본적으로 몇몇 서비스는 리소스에 대해 EC2 인스턴스, EBS 볼륨, RDS DB 인스턴스와 같은 무료 지표를 제공합니다. 그러나 추가 비용을 내면 자체 애플리케이션 지표를 추가할 수 있습니다. 이러한 모든 지표는 나중에 검색, 그래픽 처리 및 경보 활성화를 위해 계정에 로드됩니다 CloudWatch 경보는 단일 지표를 관찰합니다. 기간 수에 대해 해당 임계값과 지표 값을 비교하여 하나 이상의 작업을 수행할 수 있습니다 따라서 이 작업은 정지, 시작, 종료, 재부팅 같은 EC2 작업일 수 있습니다.
Auto Scaling
Auto Scaling 구성을 시작하고 애플리케이션 풀에 더 많은 인스턴스를 추가하는 것과 같은 Auto Scaling 작업일 수 있습니다. 또는 SNS 주제를 통해 알림 메시지를 전송하는 것일 수 있습니다.
경보
경보는 지속되는 상태 변경에 대해서만 작업을 호출합니다.
다음은 CloudWatch 경보의 예제입니다. 예를 들어 EC2 인스턴스에서 CPU 사용률을 추적하려고 합니다. 이 경우에 CPU가 5분 동안 60%를 상회하면 그것은 설정된 임계값입니다. 동시 연결 수가 1분 동안 10보다 작거나 클 경우 RDS 인스턴스 등을 트리거할 수 있습니다. 또는 Elastic Load Balancer를 모니터링할 수 있는데 정상 호스트의 수가 10분 동안 5개 미만일 경우 계속 진행하여 경보를 트리거하거나 작업을 트리거합니다.
따라서 CloudWatch 경보는 단일 지표를 측정하고 하나 이상의 작업을 수행할 수 있습니다.
- 인스턴스를 정지, 종료, 재부팅 또는 복구할 수 있습니다.
- Auto Scaling 그룹을 확장하거나 축소할 수 있습니다. 따라서 언제나 그렇듯이 성능 요구를 충족하려면 확장하고 비용을 절감하려면 축소하는 것입니다. 따라서 이 두 가지 방향에서 고려해보려고 합니다.
- 또는 이벤트가 발생했음을 알리기 위해 이메일, HTTP 또는 SMS를 통해 SNS로 간단히 메시지를 전송하는 것일 수 있습니다.
CloudWatch Events
CloudWatch Events는 AWS 리소스 내의 변경 사항을 설명하는 시스템 이벤트의 스트림으로서 거의 실시간으로 제공됩니다. 간단한 규칙을 사용하여 이벤트와 일치시킨 후에 하나 이상의 대상 함수 또는 스트림으로 라우팅합니다. CloudWatch 이벤트는 운영 변경 시 이를 알아차립니다. 또한 운영 변경에 응답하고 필요에 따라 시정 조치를 취할 수 있습니다.
또한 Cron 작업 또는 Rate 표현식을 사용하여 특정 시간에 자체 트리거되는 자동 작업을 예약할 수 있습니다.
다음은 CloudWatch 이벤트의 예제입니다. 이 경우에 CloudWatch 이벤트를 사용하여 의도하지 않은 IAM 액세스를 어떻게 감지하고 자동으로 거부할까요? 특정한 이벤트에 대해 API를 호출하는 API 작업이 있습니다. CloudWatch 이벤트는 이를 기록하고 Lambda 함수에서 일치되는 규칙을 지킬 수 있습니다. 이 경우에 권한이 있는 사용자에 대해 이러한 특정 이벤트가 발생하면 Lambda 함수를 사용하여 권한이 있는 해당 사용자에 대한 액세스를 거부할 수 있습니다.
CloudWatch Logs
CloudWatch Logs. CloudWatch Logs의 세부 정보를 비롯하여 CloudWatch Logs를 훨씬 더 상세히 다루는 별도 동영상이 있습니다. 그러나 기본적으로 CloudWatch Logs를 사용하고 기존 로그 파일을 사용하여 시스템 및 애플리케이션을 모니터링하고 문제를 해결할 수 있습니다. 특정 구문, 값 또는 패턴에 대한 로그 파일을 거의 실시간으로 모니터링하고 CloudWatch Logs에서 관련된 로그 데이터를 검색할 수 있습니다.
CloudWatch Logs는 모두 운영 체제에 설치되는 에이전트를 기반으로 실행됩니다. 물론 AWS 내에서 지원되는 모든 운영 체제와 호환되는 에이전트를 갖추고 있습니다.
Amazon CloudWatch Log 기능에는 EC2 인스턴스의 로그를 실시간으로 모니터링할 수 있는 기능이 포함됩니다.
또한 AWS CloudTrail 이벤트를 모니터링할 수 있습니다. 참고로, CloudTrail 이벤트는 계정 내에서 발생하는 모든 API 작업입니다. 기본적으로 AWS 내에서 발생하는 모든 것은 콘솔, CLI 또는 직접 API 액세스에서 비롯되었는지와 상관없이 모두 API로 구동되기 때문에 해당 환경에서 누가 무엇을 언제 했는지에 대한 전체 기록이 제공됩니다. 따라서 이러한 기능은 보안 및 규정 준수에 매우 유용합니다.
물론 향후 분석을 위해 로그 데이터를 보관할 수도 있습니다. 또한 애플리케이션 로그 파일을 저장하고 모니터링하며 해당 지표를 수집하고 장기간 동안 영속적으로 저장할 수 있습니다. 이러한 데이터는 관리자가 콘솔을 통해 시각화하거나 S3에 저장하거나, 다른 서비스에서 액세스하거나, 다른 서비스 또는 다른 사용자나 도구에서 삽입할 수 있습니다. 물론 특정 솔루션에 대한 데이터 처리를 수행하거나 Kinesis 스트림 또는 AWS Lambda 같은 사항을 살펴보고 특정 지표에 대해 추가 조치를 취할 수 있습니다.
CloudWatch 대시보드
CloudWatch 대시보드는 말하자면 단일 glass 창에서 리소스를 모니터링하기 위한 CloudWatch 콘솔 내의 사용자 지정 홈페이지입니다.
여러 리전에 걸쳐 분산된 리소스는 한 곳에서 종합할 수 있습니다. 이를 통해 시각화가 훨씬 더 간편하게 됩니다.
AWS 리소스에 대해 지표 및 경보를 보여주는 사용자 지정 뷰를 생성할 수 있습니다. 각 대시보드는 여러 지표를 표시할 수 있으며 필요에 따라 텍스트와 이미지가 부수될 수 있습니다. 콘솔, 명령줄 인터페이스를 사용하여 또는 PutDashboard API를 사용하여 대시보드를 생성할 수 있습니다.
데모
다음에는 짧은 데모를 시작하겠습니다. (차임벨 소리) 이 짧은 데모에서는 CloudWatch 이벤트 규칙을 만드는 방법을 보여드립니다. CloudWatch 대시보드로 이동하여 시작하고 Events라고 하는 위치로 내려가서 역시 Rule을 클릭합니다. 규칙 만들기 1단계에서 가장 먼저 해야 할 일은 이벤트 소스를 선택하는 것입니다. 이 경우에 이벤트 패턴에서 시작합니다. 여기서 이벤트와 일치하는 패턴을 만들 수 있습니다. 만들려고 하는 서비스를 선택하고 사용자 지정 패턴을 추가합니다. 이 경우에 스케줄을 설정합니다. 즉, 5분 간격의 일정을 생성합니다. 따라서 기본적으로 동일한 구문이 됩니다. Cron 작업과 동일한 구문을 사용할 수도 있습니다, 일반적으로 Linux 관리자는 이러한 방법에 익숙합니다. 그런 다음, CloudWatch 이벤트를 사용하여 EC2 인스턴스의 상태를 기록합니다. 다음 단계는 이벤트의 상태 변경을 기록할 Lambda 함수를 생성하는 것입니다. EC2 인스턴스를 시작할 때마다 Lambda 함수를 실행할 규칙을 생성합니다. 대상을 추가한 다음에 해당되는 특정 함수를 선택합니다. 함수의 경우 생성된 Lambda 함수를 선택합니다. 다음으로 EC2 인스턴스의 CloudWatch 경보를 설정합니다. 따라서 Management Console을 통해 EC2 CloudWatch 탭에서 경보 작업을 설정합니다. 인스턴스가 보이는 곳에 Actions라고 말하는 드롭다운 버튼이 있습니다. Actions 내에서 Alarms로 이동합니다. 이 경우에 CloudWatch 경보를 생성합니다. CloudWatch 경보에는 선택할 수 있는 서로 다른 여러 파라미터가 있습니다. 그러나 이 경우에 그곳의 수신자와 이메일 주소 및 취할 조치와 함께 my-topic이라고 하는 알림 메시지를 설정합니다. 그런 다음, 이 경우에 이러한 지표의 기반을 CPU 사용률에 두고 경보를 생성합니다. 사용자 지정 대시보드도 추가합니다. 이 경우에 CloudWatchBlog라고 하는 대시보드를 생성합니다. 이 대시보드는 확인하려는 경보만을 표시할 수 있습니다. 이 경우에 원하는 바에 따라 선 또는 누적 면적 그래프로 볼 수 있습니다. 대시보드에 해당 지표를 표시하기 위해 번호를 추가할 수 있습니다. 그런 다음 대시보드 자체에 텍스트 블록을 추가합니다.
요약
지금까지 Amazon CloudWatch에 대한 간략한 소개 동영상을 통해 Amazon CloudWatch의 핵심 서비스를 비롯하여 CloudWatch를 지원하는 AWS 리소스와 표준 지표 및 사용자 지정 지표 등을 알아보았습니다.
CloudWatch 내에서 사용 가능한 통계와 이러한 내용을 Amazon CloudWatch Management Console을 통해 표시하는 방법을 살펴보았습니다. 또는 SNS 이메일 알림 메시지를 전송할 수 있는 Amazon CloudWatch 경보를 트리거하거나 Auto Scaling 이벤트를 트리거할 수 있습니다. 이 과정이 약간이라도 도움이 되었기를 바라며 계속해서 다른 동영상을 학습하시기 바랍니다.
저는 AWS Training and Certification의 Wes Gruver입니다. 시청해 주셔서 감사합니다.