관측성

애플리케이션, 사용자 및 인프라에 대한 인사이트 도출 및 성능 개선

관측성이란 무엇입니까?

"시스템이 가동 상태입니까, 가동 중단 상태입니까?", "최종 사용자가 경험하는 속도가 빠릅니까, 느립니까?", "설정해야 하는 KPI와 SLA는 무엇이고 충족 여부를 확인하는 방법은 무엇입니까?" 클라우드의 속도와 규모에서 운영하는 경우 맹목적으로 작업해서는 안 됩니다. 위와 같은 광범위한 운영 및 비즈니스 질문에 답할 수 있어야 하기 때문입니다. 문제가 발생할 때 감지하고(이상적으로는 고객 경험을 방해하기 전에), 신속하게 대응하며, 가능한 빠르게 해결할 수 있어야 합니다. 이에 대한 인사이트를 얻으려면 관측 가능한 시스템이 필요합니다.

모니터링 및 관측성

‘관측성’은 주로 지표, 로그 또는 추적을 수집하기 위해 시스템 상황을 계측하여 설명합니다. 클라우드에서 관측성은 시스템 복잡성 그 자체로 인해 달성하기가 어려울 수 있습니다. 데이터 센터든, 클라우드에서든, 운영 우수성을 달성하고 비즈니스 목표를 충족하려면 시스템 작동 방식을 이해해야 합니다. 관측성 솔루션을 사용하면 애플리케이션 및 인프라에서 데이터를 수집하고 분석할 수 있으므로, 내부 자산을 이해하고 알림을 제공하며 문제를 해결하고 애플리케이션 가용성 및 성능 관련 문제를 해결하여 최종 사용자 경험을 개선할 수 있습니다. 

관측성과 모니터링 사이의 차이점은 무엇입니까?

‘모니터링’이란 단어는 때때로 관측성과 다르게 정의되지만, 모니터링은 추적 및 로깅과 같은 기타 활동과 함께 시스템을 관측할 수 있도록 지원하는 활동을 말합니다. 종종 모니터링, 추적 및 로깅을 ‘관측성의 세 가지 영역’으로 간주할 수 있습니다. 그러나 아래에서 설명할 프로파일러 및 AI/Ops와 같은 관측성을 달성하는 데 도움이 되는 다른 도구도 있습니다.

관측성이 어떤 도움을 줄 수 있습니까?

관측성은 문제의 탐지 및 조사를 지원합니다.

탐지

문제의 시기 적절한 탐지(이론적으로 최종 사용자에게 영향을 주기 전)는 관측성의 첫 번째 단계입니다. 탐지는 성능 임계값 위반 시 알람, 종합 테스트 및 이상 탐지를 포함하여 사전에 다각적으로 이루어져야 합니다. 일반적인 성능 지표로, 평균 탐지 시간(MTTD)이 있습니다. MTTD는 다음과 같은 여러 활동과 도구로 개선할 수 있습니다.


모니터링

모니터링 도구는 사용 패턴을 식별할 수 있도록 시간 경과에 따른 성능 통계를 기록합니다. 모니터링 에이전트는 설정된 간격으로 선택한 지표를 기록하고 결과 데이터를 시계열 형식으로 저장합니다.

애플리케이션 성능 모니터링

애플리케이션 성능 모니터링(APM)을 사용하면 다양한 애플리케이션 스택 계층을 통해 브라우저 및 모바일 디바이스에서 포괄적인 고객 경험을 모니터링할 수 있습니다. APM은 프론트엔드 모니터링으로 시작하며, 브라우저 또는 모바일 디바이스에서 고객 경험을 측정하고 모니터링합니다. APM의 핵심인 애플리케이션 검색, 추적 및 진단은 성능 문제를 일으키는 애플리케이션 부분을 식별하고 빠르게 그 원인을 찾아내는 기능입니다.

알림

문제가 생기면 시기 적절하게 알림을 받기를 원합니다. 그러나 너무 민감한 탐지는 알림으로 인한 피로를 유발하므로, 알림 관리도 매우 중요합니다.

AI/Ops 및 이상 탐지

이제 새로운 세대의 도구를 통해 애플리케이션의 이상 동작을 식별하고 잠재적 가동 중단 또는 서비스 중단을 일으키기 전에 위험한 문제를 표면화하도록 기계 학습 모델을 사용하여 인공 지능 및 기계 학습의 뛰어난 역량을 관측성에 도입할 수 있습니다.

인프라 모니터링

인프라 모니터링을 사용하면 성능 문제의 근본 원인을 이해하고 해결하기 위해 인프라 스택에서 지표와 로그를 상관할 수 있습니다.

디지털 경험 모니터링

디지털 경험 모니터링(DEM)에서는 브라우저, 모바일 앱 또는 음성 상호작용에서 활동을 수집하여 시스템과 교류하는 최종 사용자의 경험에 대한 인사이트를 제공합니다. 종합 트랜잭션에는 시스템과 상호작용할 때 최종 사용자 동작을 에뮬레이트하는 스크립트 작성이 포함되므로, 실제 부하가 없을 때에도 모니터링하고 테스트할 수 있습니다. 실시간 사용자 모니터링(RUM)은 전 세계 여러 상호 접속 위치(POP)에서 요청을 수신하기 위해 웹 사이트 또는 API의 가용성 모니터링과 자동화된 A/B 테스트를 결합합니다.

프로파일링

프로파일링 도구는 주기적으로 측정 샘플을 확보합니다. 예를 들어, 중앙 처리 장치(CPU)는 일반적으로 CPU 내 코드 경로의 시간별 샘플을 확보하여 프로파일링됩니다.

텔레메트리

텔레메트리는 시스템 작동 방식에 대한 데이터를 수집할 수 있도록 일반적으로 모니터링 에이전트를 통해 시스템을 계측하는 작업입니다. 텔레메트리를 구축하면 시스템은 모니터링할 수 있는 데이터를 생성하기 시작합니다. 그러나 회사 내 여러 팀이 다른 도구를 사용할 수 있습니다. 그러면 회사의 코드 기반에 포함되어야 하는 모니터링 에이전트가 늘어나고 다른 도구나 추가 도구를 사용할지 결정할 때 다시 계측해야 합니다. OpenTelemetry 프로젝트에서는 애플리케이션을 한 번만 계측하여 상관된 지표 및 추적을 여러 모니터링 솔루션으로 전송할 수 있습니다.

조사

조사는 운영 이벤트에서 가장 시간이 오래 걸리는 단계입니다. 문제가 발생하면 수정이 필요한 가장 중요한 부분을 파악하기 어렵습니다. 여러 관측성 소스를 함께 사용하면 빠르게 조사하여 근본 원인을 파악할 수 있지만, 효과적으로 진행하려면 여러 지표, 로그 및 추적에서 데이터를 상관시켜야 합니다. 


추적

추적은 클라이언트에서 HTTP 요청과 같은 시스템 이벤트를 기록합니다. 분산 추적에서는 이벤트에 대해 캡처된 세부 정보에 각 단계에서 대기 시간과 같은 요청에 대한 지표와 함께 여러 서비스/애플리케이션에서 요청 경로가 포함됩니다.

시각화 도구

관측성은 특히 클라우드 규모에서 인간이 구문 분석하기 어려운 막대한 양의 데이터를 생성할 수 있습니다. 시각화 도구는 관측성 데이터를 직관적인 그래픽 디스플레이에 연결하여 데이터를 빠르게 이해할 수 있도록 합니다.

관측성은 언제 사용할 수 있습니까?

애플리케이션 상태 및 성능을 파악하여 고객 경험을 개선

관측성의 기본적인 목표는 최상의 최종 사용자 경험을 보장하기 위해 시스템 전반의 상태를 파악하는 것입니다. 문제를 빠르게 탐지하고 효율적으로 조사하며 가능한 빨리 해결하여 가동 중단 시간 및 고객에게 영향을 미치는 기타 중단을 최소화할 수 있어야 합니다. 일반적인 지표로는 평균 복구 시간(MTTR)이 있습니다.

개발자 생산성 향상

로그를 분석하거나 중단점을 코드에 삽입하는 기존의 디버깅은 지루하고 반복적이며 시간 소모적입니다. 뿐만 아니라 프로덕션 애플리케이션 또는 마이크로서비스나 서버리스 아키텍처를 사용하여 구축된 애플리케이션에 맞게 확장되지 않습니다. 배포된 애플리케이션 전체의 성능을 분석하려면 연관된 지표 및 추적을 사용하여 모든 소스에서 사용자 영향을 식별하고 손상되었거나 비경제적인 코드 경로를 가능한 빠르게 찾을 수 있어야 합니다. 새로운 관측성 도구를 키트에 추가할 때마다 이 모든 작업을 코드 변경 없이 수행할 수 있어야 합니다. 올바른 관측성 도구 모음을 사용하면 개발자가 보다 빠르고 효율적으로 코드를 작성하고 테스트할 수 있습니다.

운영 효과 및 효율성 개선

관측성은 클라우드 플릿에서 성능 개선 사항을 찾도록 도와주며, 이를 통해 비용을 절감할 수 있습니다. 예를 들어, 수천 또는 수십만 개의 인스턴스에서 애플리케이션이 사용하는 CPU 크기와 관련해 약간의 성능을 개선하면 최대 수백만 달러의 비용을 절감할 수 있습니다. 마찬가지로 향후 용량 요구 사항을 이해하고 예측하는 데 관측성을 사용하면 예약 및 스팟 요금을 통해 가능한 비용 절감 효과를 얻을 수 있습니다.

AWS에서 제공하는 관측성 솔루션으로는 무엇이 있습니까?

AWS 서비스

AWS 네이티브 관측성 솔루션은 처음부터 클라우드 규모에서 운영하고 엔터프라이즈급 보안을 제공하기 위해 다른 AWS 서비스를 관측하도록 개발되었습니다.

CloudWatch는 모니터링 및 운영 데이터를 로그, 지표 및 이벤트 형태로 수집하여 애플리케이션을 모니터링하고, 시스템 전체의 성능 변화에 대응하고, 리소스 활용도를 최적화하기 위한 데이터와 실행 가능한 인사이트를 제공합니다.

시스템에서 대기 시간을 찾고 개선 목표로 지정하는 데 도움이 되도록 여러 애플리케이션과 시스템에서 분산 추적을 수행합니다.

플레임 그래프를 사용하여 애플리케이션에서 가장 CPU 집약적인 코드 경로를 찾고 성능을 개선하고 인프라 비용을 줄이도록 코드를 최적화합니다. 

AWS 애플리케이션에서 운영 데이터를 자동으로 수집하고 오랫동안 Amazon.com 및 AWS 운영 우수성을 기반으로 축적된 기계 학습 모델을 적용하여 애플리케이션 이상 동작을 식별하고 가동 중단 또는 서비스 중단을 일으키기 전에 중요한 문제를 표면화합니다.

오픈 소스

AWS는 유명 오픈 소스 식별 가능 소프트웨어에 기반하며 이와 완전히 호환되는 서비스를 제공합니다. 이미 투자한 친숙한 도구를 계속 사용하면서 확장성 및 보안이라는 과중한 부담을 피할 수 있습니다.

OpenTelemetry 프로젝트에 대해 AWS가 지원하는 안전하고 프로덕션 준비가 완료된 배포입니다. 이를 사용하면 애플리케이션을 한 번만 계측하여 상관된 지표 및 추적을 여러 AWS 및 파트너의 모니터링 솔루션으로 전송할 수 있습니다.

컨테이너 환경에 최적화된, 널리 사용되는 오픈 소스 모니터링 및 알림 솔루션인 Prometheus에 기반하고 이와 호환 가능한 관리형 모니터링 서비스입니다. Prometheus Query Language(PromQL)를 사용하여 컨테이너식 워크로드의 성능을 모니터링합니다.

 널리 사용되는 오픈 소스 분석 플랫폼인 Grafana에 기반한 완전관리형 서비스입니다. 저장된 위치에 상관없이 지표를 쿼리 및 시각화하고 알림을 제공하며 이해합니다. 관측성 대시보드를 생성, 탐색 및 공유하기도 합니다. 

Amazon OpenSearch Service는 대화형 로그 분석, 실시간 애플리케이션 모니터링 및 웹사이트 검색 등을 쉽게 수행할 수 있게 해줍니다. OpenSearch는 Elasticsearch에서 파생된 오픈 소스, 분산 검색 및 분석 제품군입니다. Amazon OpenSearch Service는 최신 버전의 OpenSearch을 제공하며, 19가지 버전의 Elasticsearch(버전 1.5~7.10)를 지원하고 OpenSearch Dashboards와 Kibana(버전 1.5~7.10)이 제공하는 시각화 기능을 제공합니다.

고객 사례

Mapbox

Mapbox

Mapbox는 사용자 지정 설계된 지도를 위한 오픈 소스 지도 제작 플랫폼으로, 매월 3억 명 이상의 사용자가 이 플랫폼을 사용합니다. Mapbox는 Amazon CloudWatch를 사용하여 기본 AWS 지표, 사용자 지정 지표 및 로그를 포함한 다수의 데이터 원본을 수집하고 주요 워크로드 및 리소스 최적화를 위한 모니터링 및 시각화를 수행합니다.

“모든 모니터링, 로깅, 지표 및 알림을 하나의 도구로 통합할 방법을 찾고 있었습니다. CloudWatch는 서드 파티 시스템을 설정, 구성 및 학습하는 데서 오는 운영 부담을 덜어주었습니다. 우리 팀은 CloudWatch를 광범위하게 사용하여 다수의 주요 워크로드의 오류 비율 및 상태 코드를 모니터링합니다. 또한 CloudWatch를 사용하여 Auto Scaling 작업을 자동화함으로써 Amazon ECS 클러스터가 실행되는 Amazon EC2 인스턴스 유형의 비용을 최적화할 수 있습니다. CloudWatch Events는 사용률 및 요금 정보를 제공합니다. 이러한 정보는 계정 보안을 감사하고, 규정 준수 및 보안 사용 사례를 위한 AWS Lambda 작업을 트리거하며, 클라우드를 사용하여 리소스를 예약하는 데 사용됩니다. CloudWatch는 자동화 수준을 한 단계 높이는 동시에 각 개인의 역량을 넓혀줍니다.”

Emily McAfee, Mapbox 플랫폼 엔지니어링 관리자

Pushpay

Pushpay

Pushpay의 목적은 공동체, 관계 및 소속감을 강화하여 사람들을 하나로 모으는 것입니다. 당사는 조직의 공동체 성장을 지원하는 솔루션을 게시하는 세계적인 등급의 기부 모바일 앱을 만듭니다.

“현재의 로그 분석 솔루션에는 설정 및 유지 관리 오버헤드가 필요하고, 보존 요구 사항이 서로 다르며, 비용 제약이 많아서 엔지니어링 팀에서 개발 환경과 테스트 환경의 로그에 액세스하고 쿼리하는 것이 불가능합니다. CloudWatch Logs Insights를 사용하면 CloudWatch Logs 안에서 로그를 쿼리할 수 있으므로 운영 복잡성이 줄어듭니다. 쿼리당 요금을 지불하기 때문에 원하는 속도로 확장할 수 있고 엔지니어들은 현재 솔루션의 설정, 통합 및 수집이 완료될 때까지 기다릴 필요 없이 로그 사용 및 쿼리를 시작할 수 있습니다. 지표 및 로그를 보고 더 빠르게 문제를 해결할 수 있다는 장점도 있습니다. Logs Insights는 단일 AWS 콘솔에서 애플리케이션을 모니터링하고 로그 분석을 수행할 수 있는 효과적이고 경제적인 솔루션입니다.”

Peter Goodman, Pushpay 사이트 안정성 엔지니어링 부문 이사

SendGrid

SendGrid

SendGrid는 69,000명 이상의 유료 고객을 위해 매월 4백억 건 이상의 이메일을 전송하는 클라우드 이메일 공급자입니다. SendGrid는 AWS로의 마이그레이션 초기에 시스템 가시성, 운영 인사이트 및 리소스 최적화를 위해 Amazon CloudWatch를 도입했습니다.

“CloudWatch를 사용하면 Amazon EC2, Amazon Kinesis, Amazon DynamoDB 및 Amazon API Gateway와 같은 AWS 서비스의 지표와 AWS Lambda 함수의 로그를 수집할 수 있습니다. 자체 관리형 스택 또는 서드 파티 SaaS 공급업체를 사용할 필요 없이 기본적으로 통합된다는 점이 좋았습니다. 그 덕에 알림, 자동 조정 및 용량 계획을 아주 빠르게 시작할 수 있었습니다. CloudWatch는 회사의 주요 사용 사례를 빠르고 간단하게 해결할 수 있다는 점에서 완벽한 솔루션입니다.”

Joshua Barratt, SendGrid 아키텍트 II

관측성에 대해 직접 알아보기

대화형 및 몰입형 One Observability Workshop에서 Amazon CloudWatchAWS X-Ray를 직접 사용해 보세요. 이 워크숍에서는 복잡한 마이크로서비스 애플리케이션을 배포하고 현대적 환경에서 모니터링 및 관측성을 설정합니다. 로깅, 지표, 컨테이너 및 서버리스 모니터링과 추적 기술에 대해 확실하게 이해할 수 있습니다.

워크숍 시작 
새로운 소식
날짜(최신순)
  • 날짜(최신순)
1
결과를 찾을 수 없습니다.
블로그
날짜
  • 날짜
1
해당 기준과 일치하는 블로그를 찾을 수 없습니다.

AWS의 관리 및 거버넌스에 대한 다른 사용 사례 살펴보기

Page-Illo_AWS-Management-Governance_Open and Custom Resource Provisioning
프로비저닝 및 오케스트레이션 »

리소스 구축, 프로비저닝 및 공유

Page-Illo_AWS-Management-Governance_Automated Configuration Compliance and Auditing
구성, 규정 준수 및 감사 »

리소스 구성 감사 및 수정

Page-Illo_AWS-Management-Governance_Centralized and Automated Operations Management
중앙 집중식 운영 관리 »

클라우드 운영 관리

Page-Illo_AWS-Management-Governance_Governance at Scale
엔터프라이즈 거버넌스 및 제어 »

안전한 중앙 집중식 관리형 다중 계정 AWS 환경 설정