AWS의 관찰 가능성
•
모니터링
◦
시스템이 제대로 동작하는지 확인하기 위해 로그, 지표, 추적을 수집하고 이를 분석
•
관찰 가능성
◦
시스템이 추가적으로 제대로 동작하지 않는 이유를 좀 더 빠르게 알 수 있게 해줌.
◦
예를 들어 추적과 로그의 상관 관계를 통해 이렇게 관찰 가능성이 모니터링 대비 조금 더 포괄적인 개념
•
•
Amazon CloudWatch에서는 전체 스택을 모니터링하고 경보, 로그 및 이벤트 데이터를 사용하여 자동화된 조치를 취하고 평균 해결 시간, MTTR을 단축할 수 있다.
Amazon CloudWatch 소개
•
수집, 모니터링, 행동 및 분석 단계
•
수집 단계
◦
로그, 지표 및 이벤트의 형태로 모니터링 및 운영 데이터 수집
•
모니터링 단계
◦
자동화된 대시보드를 사용하여 시각화하므로 AWS와 온프레미스에서 실행되는 AWS 리소스 애플리케이션 및 서비스를 통합적으로 볼 수 있음.
•
행동 단계
◦
지정한 지표의 임계값을 기반으로 경보를 생성하거나 기계 학습 알고리즘을 기반으로 비정상적인 지표 동작을 감시
•
분석 단계
◦
지표, 로그 및 추적을 심층적으로 분석하여 애플리케이션 성능을 개선하는 방법을 더 잘 이해할 수 있다.
•
Amazon CloudWatch는 기본적으로 지표 리포지토리
•
지표는 Amazon CloudWatch의 기본 개념
•
Amazon CloudWatch 에이전트에서 수집한 지표의 기본 네임스페이스 이름은 CWAgent
•
지표 차원은 지표 ID의 일부인 Key/Value
•
Amazon CloudWatch는 지표 데이터를 기간에 따라 다르게 유지
•
원래 더 짧은 기간으로 게시된 데이터 포인트는 장기 보관을 위해 집계
◦
예를 들어 데이터를 1분 주기로 수집한 경우 15일 동안 1분 분해능으로 데이터 사용
◦
15일 이후에는 이 데이터를 계속 사용할 수 있지만 데이터가 5분 분해능으로 집계
◦
마찬가지로 63일 이후에는 이 데이터가 추가로 집계되어 1시간 분해능으로 제공
•
예를 들어, 95 백분위는 데이터의 95%가 이 값보다 아래에 있고 5%가 이 값보다 위에 있다는 것을 의미
•
일반적인 분포에서 데이터의 95%는 평균값으로부터 2 표준편차 내에 있으며 데이터의 99.7%는 평균값으로부터 3 표준편차 이내에 있다.
•
3 표준편차 밖에 있는 데이터는 평균값에서 크게 벗어나 있다는 점에서 종종 이상치로 간주
•
각 메시지는 UTF-8로 인코딩
•
Amazon CloudWatch 로그에서 각각의 로그 소스가 별도의 로그 스트림을 구성
•
로그 이벤트의 동일한 소스를 묶어서 로그 스트림으로 이해
•
로그 스트림을 묶어서 로그 그룹으로 이해
•
조금 더 비용 효율적인 Amazon S3로 로그 전송해서 사용 가능
•
지표와 로그의 수집을 위해서 에이전트 구성 필요
•
Amazon CloudWatch 에이전트 구성은 에이전트, 지표, 로그, 추적의 네 섹션이 있는 JSON 파일을 통해 할 수 있음.
•
Amazon CloudWatch 환경에서 Amazon CloudWatch 에이전트는 당야한 운영 체제에 설치 가능
◦
운영 체제 전반에 걸쳐 내부 시스템 수준의 지표 수집 가능
•
AWS가 관리하지 않는 서버뿐만 아니라 하이브리드 환경의 서버도 포함
•
컨테이너 환경에서 Amazon CloudWatch 에이전트를 데몬을 구성하여 활용
◦
Amazon ECS에서는 Daemon task로 데몬 배포
◦
Amazon EKS에서는 DaemonSet의 형태로 데몬 배포
—> Amazon CloudWatch에서 로그 및 지표 확인
Amazon CloudWatc 인사이트
•
로그 데이터를 분석하고 컨트리뷰터(기여자) 데이터를 표시하는 시계열 생성
•
예를 들어 잘못된 호스트를 찾거나 가장 많은 오류를 생성하는 URL을 찾을 수 있다.
•
컨테이너화된 애플리케이션 및 마이크로서비스의 지표 및 로그를 수집하고 집계하며 요약 가능
•
컨테이너 인사이트는 관리형 컨테이너 서비스인 Amaxon ECS, Amazon EKS와 쿠버네티스 on Amazon EC2 환경에서 사용
◦
Fargate 리소스에서도 지표 수집하는 것을 지원
•
컨테이너 인사이트는 컨테이너 재시작 오류 같은 진단 정보를 제공하여 문제를 격리하고 신속하게 해결할 수 있도록 도와줌.
•
신규 및 기존 Amazon ECS 클러스터에서 컨테이너 인사이트를 사용 설정할 수 있다.
•
컨테이너 인사이트가 설정되면 Amazon ECS의 클러스터, 작업 및 서비스 레벨에서 지표를 수집
•
위 그림에서는 Amazon ECS용 Firelens를 통해 태스크 정의 파라미터를 사용하여 로그를 Amazon CloudWatch 로그로 경로 지정함으로써 로그를 저장 및 분석할 수 있다.
•
AWS Lambda에서 실행되는 서버리스 애플리케이션에 대한 모니터링 및 문제 해결 솔루션
•
Lambda 함수에 Extension을 설치하면 Lambda Extension은 시스템 수준 지표를 수집하며 해당 Lambda 함수가 호출될 때마다 단일 성능 로그 이벤트를 내보냄.