[AWS] 클라우드 모니터링 (2)

dereck·2024년 12월 27일

AWS CCP

목록 보기
13/29
post-thumbnail

AWS CloudTrail

CloudTrail 개요

CloudTrail은 AWS 계정에 대한 거버넌스, 규정 준수, 감사를 제공하는 서비스이다. 계정을 사용할 때마다 기본적으로 활성화되고, 계정 내에서 발생하는 모든 API 호출 또는 이벤트 기록을 가져오기 때문에 매우 중요하다.

즉, 일어나는 모든 일이 CloudTrail에 기록된다는 것이다. 따라서 감사 및 보안 목적으로, CloudTrail 내에서 수행된 모든 이벤트 및 API 호출 기록을 가져와서, CloudWatch Logs 또는 S3로 보낼 수 있다.

CloudTrail에서 트레일을 생성하면, 모든 리전에 적용하여 모니터링할 수 있다. 트레일은 CloudWatch Logs 또는 S3 가거나 단일 리전을 추적할 수 있다.

시험에선 “사용자가 무언가를 삭제했을 때, 무엇을 누가 삭제했는지 어떻게 알 수 있습니까?” 또는 “API 호출을 찾아봐야 한다”라고 물어본다. 답은 당연히 CloudTrail이다.


AWS X-Ray

X-Ray 개요

누군가는 프로덕션 환경에서 디버깅을 한다. 애플리케이션이 배포됐을 때 기본 방식은 로컬에서 테스트한 뒤 CloudWatch Logs 등에 로그 상태를 추가하고 프로덕션 환경에서 다시 배포해서 문제를 확인하는 것이다.

하지만 문제는 여러 서비스와 여러 애플리케이션의 로그 모두를 봐야하기에 로그 분석은 정말 어렵다. 특히 분산 서비스에 SQS 대기열과 SNS 주제로 연결돼 있거나 분리돼 있는 경우는 추적하기 매우 어렵다. 이런 문제를 해결하기 위해 X-Ray를 사용한다.

X-Ray는 애플리케이션을 추적하고 시각적 분석을 할 수 있다. 따라서 서비스에서 X-Ray를 활성화하면 각 서비스에서 일어나는 일을 전체적으로 볼 수 있어서 장애나 성능을 확인할 수 있고, 요청이 잘못된 경우엔 X-Ray에서 바로 시각화할 수 있다.

따라서 X-Ray는 분산 추적 및 문제 해결과 서비스 그래프에 유용하다.

장점

  • 성능 문제를 해결할 수 있음 (병목 현상 식별)
  • 마이크로서비스 아키텍처의 종속성을 이해할 수 있음
  • 추적을 통해 서비스 문제를 파악할 수 있음
  • 특정 사항을 검토할 수 있음
  • 해당 요청의 오류와 예외 사항을 찾을 수 있음
  • 서비스 수준에 관한 계약인 SLA를 충족하는지 알 수 있음
    • 모든 요청을 재시간 안에 응답하는지를 말함
  • 속도가 느려지는 현상 발생 시 어떤 서비스에서 throttled(=문제가 발생하고 있는지) 되는지 알 수 있음

Amazon CodeGuru

CodeGuru 개요

CodeGuru는 머신 러닝 기반 서비스로 2가지를 실행한다. 첫 번째는 자동화된 코드 검토이고, 두 번째는 애플리케이션 성능 권장 사항이다.

개발자가 코드를 푸시하면 다른 개발자가 코드를 검토하고, 코드가 프로덕션에 배포되면 코드의 성능을 탐지할 수도 있다.

CodeGuru 기능 제공

CodeGuru는 두 가지 기능을 제공한다.

CodeGuru Reviewer

CodeGuru Reviewer는 정적 코드 분석으로 자동화된 코드 검토를 실행한다.

코드를 CodeCommit이나 GitHub와 같은 리포지토리에 배포하면 CodeGuru에서 전체 코드줄을 확인해 이전에 살펴봤던 버그나 메모리 누수와 같은 경우실행 가능한 권장 사항을 제공하는 것이다.

따라서 이 머신 러닝 기능 덕분에 다른 리뷰어가 버그를 발견하기 전에 버그를 감지할 수 있어 매우 유용하다.

CodeGuru Profiler

CodeGuru Profiler는 프로덕션이나 런타임 도중에 애플리케이션 성능에 관한 가시성과 권장 사항을 제공한다.

애플리케이션을 설계하고 테스트하면 CodeGuru Profiler가 비용이 높은 사전 프로덕션 환경의 코드줄을 탐지하고 최적화 한다.

그리고 애플리케이션을 배포하면 실시간으로 애플리케이션을 측정하면서 프로덕션에서 성능과 비용 개선 사항을 식별해 코드에 바로 권장 사항을 제공한다.

따라서 코드 비효율성을 식별 및 제거하고, 애플리케이션의 성능을 개선하며, 힙 요약을 제공하여 메모리에서 많은 공간을 차지하는 객체를 식별하고, 애플리케이션이 이상하게 동작하는 경우 이상 감지 기능도 사용할 수 있다.

AWS Cloud 또는 온프레미스에서 실행되는 애플리케이션도 지원한다.


AWS Health Dashboard

AWS Health Dashboard는 크게 서비스 기록과 계정으로 나뉜다.

Health Dashboard - Service History

이전에는 AWS Service Health Dashboard라고 불렸다.

서비스 기록에는 모든 리전과 서비스 상태가 표시된다. 따라서 서비스가 어떻게 작동했는지, 어떤 문제가 있었는지 리전 별로 추적하고, 기록을 볼 수도 있다

즉, 모든 서비스의 일반적인 상태가 표시된다. (큰 범위에서의 상태 확인)

Health Dashboard - Account

이전에는 AWS Personal Health Dashboard라고 불렸고, 글로벌 서비스이다.

계정 대시보드는 사용자에게 직접적인 영향을 미치는 이벤트가 AWS에서 발생할 때, 알림과 해결 지침을 알려준다.

즉, 사용자의 계정과 리소스에서 사용 중인 서비스의 성능과 가용성을 확인할 수 있다. 예정된 유지 관리 활동을 미리 살펴볼 수 있도록 관련 정보 제공과 알림도 보내준다.

또한 사용자의 AWS 전체 조직의 데이터를 집계할 수 있고, 사용자에게 직접적인 영향을 미치는 운영 중단도 보여준다. (작은 범위에서의 상태 확인)


References

0개의 댓글