AWS의 OpenTelemetry 지원

"Kermit the frog" - DALL-E 2

AWS Distros

AWS 배포판은 고객이 AWS에서 오픈 소스 소프트웨어를 더 쉽게 사용할 수 있도록 만들어졌습니다. AWS 배포판은 AWS에 최적화된 오픈 소스 소프트웨어의 사전 패키징 및 구성된 버전입니다. 즉, 고객은 기본 인프라에 대해 걱정할 필요 없이 AWS에서 오픈 소스 소프트웨어를 배포하고 관리할 수 있습니다.
AWS Distros에는 운영 체제, 데이터베이스, 웹 서버 및 애플리케이션 프레임워크를 비롯한 다양한 소프트웨어가 포함되어 있습니다. 개발, 테스트, 프로덕션 및 에지 컴퓨팅을 비롯한 다양한 사용 사례에 사용할 수 있습니다.
AWS 배포판은 다음과 같은 다양한 이점을 제공합니다.
  • 사용 용이성: AWS 배포판은 사전 패키징 및 구성되어 있으므로 고객은 기본 인프라에 대해 걱정할 필요 없이 AWS에서 오픈 소스 소프트웨어를 배포하고 관리할 수 있습니다.
  • 성능: AWS 배포판은 AWS에 최적화되어 있으므로 고객은 오픈 소스 소프트웨어에서 최고의 성능을 얻을 수 있습니다.
  • 보안: AWS 배포판은 안전하고 정기적으로 업데이트되므로 고객은 오픈 소스 소프트웨어가 보호되고 있음을 확신할 수 있습니다.
  • 지원: AWS 배포판은 AWS에서 지원하므로 고객이 필요할 때 도움을 받을 수 있습니다.
AWS 배포판은 고객이 AWS에서 오픈 소스 소프트웨어를 사용할 수 있는 좋은 방법입니다. 사용 용이성, 성능, 보안 및 지원을 비롯한 다양한 이점을 제공합니다.

ADOT (AWS Distro for OpenTelemetry)

ADOT는 AWS에서 지원하는 안전한 OpenTelemetry 프로젝트 배포판입니다. OpenTelemetry는 애플리케이션 및 서비스에서 텔레메트리 데이터(메트릭, 트레이스 및 로그)를 수집하고 내보내기 위한 통합 API, 라이브러리 및 도구를 제공하는 오픈 소스 프로젝트입니다.
ADOT에는 다음과 같은 기능이 포함되어 있습니다.
  • AWS 및 기타 플랫폼에서 실행되는 애플리케이션 및 서비스에서 텔레메트리 데이터를 수집할 수 있는 콜렉터
  • 텔레메트리 데이터를 AWS 및 기타 모니터링 시스템으로 보낼 수 있는 익스포터 세트
  • 코드를 변경하지 않고 텔레메트리 데이터를 수집할 수 있는 자동 계측 에이전트 세트
  • 애플리케이션에서 텔레메트리 데이터를 수집하는 데 사용할 수 있는 SDK 세트
다음은 ADOT 사용의 이점 중 일부입니다.
  • OpenTelemetry의 안전한 프로덕션 준비 배포입니다.
  • 여기에는 텔레메트리 데이터를 수집하고 내보내는 다양한 기능이 포함되어 있습니다.
  • 사용 및 구성이 쉽습니다.
  • AWS Support에서 지원합니다.
ADOT는 OpenTelemetry를 시작하는 좋은 방법입니다. 애플리케이션에서 텔레메트리 데이터를 쉽게 수집하고 다양한 모니터링 및 옵저버빌리티 서비스로 보낼 수 있습니다.
애플리케이션에서 텔레메트리 데이터를 수집하는 방법을 찾고 있다면 ADOT가 훌륭한 옵션입니다. 사용하기 쉽고 유연하며 확장 가능하고 안전합니다.
ADOT의 구성요소는 다음과 같습니다.
  • OpenTelemetry Collector: OpenTelemetry 콜렉터는 에이전트로부터 텔레메트리 데이터를 수신하여 적절한 대상으로 전달하는 ADOT의 핵심 구성 요소입니다.
  • OpenTelemetry Agent: OpenTelemetry 에이전트는 텔레메트리 데이터를 수집하기 위해 애플리케이션 서버에 설치되는 경량 에이전트입니다.
  • OpenTelemetry SDK: OpenTelemetry SDK는 텔레메트리 데이터를 수집하기 위해 애플리케이션을 계측하는 데 사용할 수 있는 라이브러리 세트입니다.
  • OpenTelemetry Exporters: OpenTelemetry 익스포터는 텔레메트리 데이터를 AWS X-Ray, 프로메테우스 및 그라파나와 같은 다른 대상으로 내보내는 데 사용할 수 있는 플러그인입니다.
다음은 AWS에서 ADOT를 사용할 수 있는 몇 가지 서비스입니다.
  • Amazon Elastic Container Service(ECS): ECS는 컨테이너화된 애플리케이션을 쉽게 배포, 관리 및 확장할 수 있게 해주는 관리형 컨테이너 오케스트레이션 서비스입니다. ADOT를 사용하여 ECS 컨테이너에서 텔레메트리 데이터를 수집하고 Amazon CloudWatch 또는 Amazon X-Ray로 보낼 수 있습니다.
  • Amazon Elastic Kubernetes Service(EKS): EKS는 컨테이너화된 애플리케이션을 쉽게 배포, 관리 및 확장할 수 있게 해주는 관리형 Kubernetes 서비스입니다. ADOT를 사용하여 EKS 파드드에서 텔레메트리 데이터를 수집하고 Amazon CloudWatch 또는 Amazon X-Ray로 보낼 수 있습니다.
  • Amazon Elastic Beanstalk: Amazon Elastic Beanstalk는 웹 애플리케이션 및 API를 쉽게 배포하고 확장할 수 있는 완전관리형 솔루션입니다. ADOT를 사용하여 Elastic Beanstalk 애플리케이션에서 텔레메트리 데이터를 수집하고 Amazon CloudWatch 또는 Amazon X-Ray로 보낼 수 있습니다.
  • Amazon Lambda: Amazon Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 서버리스 컴퓨팅 서비스입니다. ADOT를 사용하여 Lambda 함수에서 텔레메트리 데이터를 수집하고 Amazon CloudWatch 또는 Amazon X-Ray로 보낼 수 있습니다.

OpenTelemetry 연관 AWS 서비스

다음은 OpenTelemetry와 직간접적으로 관련된 일부 AWS 서비스입니다.
  • Amazon CloudWatch: Amazon CloudWatch는 AWS 리소스 및 애플리케이션에 대한 통합 뷰를 제공하는 모니터링 서비스입니다. CloudWatch를 사용하여 애플리케이션 및 서비스에서 메트릭, 로그 및 트레이스를 수집할 수 있습니다.
  • Amazon X-Ray: Amazon X-Ray는 애플리케이션의 성능을 이해하는 데 도움이 되는 분산 추적 서비스입니다. X-Ray는 애플리케이션 및 서비스에서 트레이스를 수집할 수 있으며 성능 병목 현상 및 오류를 식별하는 데 도움이 될 수 있습니다.
  • AMP (Amazon Managed Service for Prometheus): AMP는 메트릭을 쉽게 수집, 저장 및 분석할 수 있는 완전관리형 서비스입니다. AMP는 클라우드 및 온프레미스 환경에서 널리 사용되는 오픈 소스 모니터링 시스템인 Prometheus를 기반으로 구축되었습니다. AMP는 Prometheus를 사용하고 싶지만 자체 Prometheus 인프라를 관리하고 유지하는 데 시간과 리소스를 투자하고 싶지 않은 조직에 적합한 선택입니다.
  • AMG (Amazon Managed Service for Grafana): AMG는 메트릭, 로그 및 데이터를 쿼리, 시각화 및 경고할 수 있는 인기있는 오픈 소스 분석 플랫폼은 Grafana를 쉽게 배포, 운영 및 확장할 수 있는 완전 관리형 서비스입니다. AMG는 Grafana를 사용하고 싶지만 자체 Grafana 인프라를 관리하고 유지하는 데 시간과 리소스를 투자하고 싶지 않은 조직에 적합한 선택입니다.
OpenTelemetry는 이러한 서비스에서 메트릭, 트레이스 및 로그 등의 텔레메트리 데이터를 수집하는 데 사용할 수 있습니다. 이 데이터는 애플리케이션 및 인프라의 성능과 상태를 모니터링하는 데 사용할 수 있습니다.

OpenTelemetry with EKS

ADOT는 Amazon EKS 클러스터에서 사용할 수 있습니다.  ADOT를 사용하려면 EKS 클러스터에 ADOT 오퍼레이터를 설치해야 합니다. ADOT 오퍼레이터는 ADOT 콜렉터를 생성하고 관리합니다.
다음 다이어그램에서는 텔레메트리 데이터를 서로 다른 대상으로 내보내는 두 개의 파이프라인으로 구성된 ADOT 콜렉터를 보여줍니다. 트레이스 파이프라인은 AWS X-Ray 리시버 및 AWS X-Ray 익스포터의 인스턴스로 구성되며 AWS X-Ray로 트레이스를 전송합니다. 메트릭 파이프라인은 프로메테우스 리시버, 프로세서 및 메트릭 데이터를 AMP의 워크스페이스로 전송하는 AWS Prometheus Remote Write Exporter로 구성됩니다.

ADOT, AMP 및 AMG를 통한 모니터링

아래와 같이 ADOT 콜렉터를 사용하여 마이크로서비스를 모니터링하고, 메트릭을 AMP로 내보내고, AMG를 사용하여 시각화할 수 있습니다.
다음은 작업을 위한 세부 단계를 설명합니다.
  1. ADOT 콜렉터를 설정합니다. ADOT 콜렉터는 마이크로서비스에서 메트릭을 수집하는 작고 가벼운 에이전트입니다. 마이크로서비스 또는 별도의 시스템에 ADOT 콜렉터를 설치할 수 있습니다.
  2. 측정항목을 AMP로 내보내도록 ADOT 콜렉터를 구성합니다. ADOT 콜렉터는 다양한 형식으로 메트릭을 AMP로 내보낼 수 있습니다. 가장 일반적인 형식은 Prometheus입니다.
  3. AMP 워크스페이스를 만듭니다. AMP 워크스페이스는 메트릭 모음입니다. AMP 콘솔에서 AMP 워크스페이스를 만들 수 있습니다.
  4. 측정항목을 AMP로 가져옵니다. AMP 워크스페이스를 만든 후에는 여기로 메트릭을 가져올 수 있습니다. ADOT 콜렉터 또는 다른 소스에서 메트릭을 가져올 수 있습니다.
  5. AMG에서 메트릭을 시각화합니다. AMG는 메트릭을 쉽게 시각화할 수 있는 완전 관리형 서비스입니다. AMG를 사용하여 메트릭을 표시하는 대시보드 및 차트를 만들 수 있습니다.

ADOT Operator

ADOT 오퍼레이터는 ADOT 콜렉터를 관리하는 Kubernetes Operator입니다. ADOT 오퍼레이터는 ADOT 콜렉터의 배포, 업데이트 및 확장을 담당합니다. 또한 ADOT 콜렉터를 구성하기 위한 선언적 API를 제공합니다.
ADOT 오퍼레이터는 ADOT의 중요한 구성 요소입니다. 쿠버네티스 클러스터에서 ADOT 콜렉터를 쉽게 배포하고 관리할 수 있습니다. ADOT 오퍼레이터는 애플리케이션 및 서비스에서 텔레메트리 데이터를 쉽게 수집하고 내보낼 수 있는 여러 기능을 제공합니다.
다음은 ADOT 오퍼레이터의 일부 기능입니다.
  • 자동 배포 및 업데이트: ADOT 오퍼레이터는 쿠버네티스 클러스터에서 ADOT 콜렉터를 자동으로 배포하고 업데이트할 수 있습니다. 이를 통해 최신 기능 및 버그 수정으로 ADOT 콜렉터를 최신 상태로 쉽게 유지할 수 있습니다.
  • 선언적 구성: ADOT 오퍼레이터는 ADOT 콜렉터 구성을 위한 선언적 API를 제공합니다. 이렇게 하면 쿠버네티스 매니페스트를 작성하지 않고도 ADOT 콜렉터를 쉽게 구성할 수 있습니다.
  • 여러 콜렉터 지원: ADOT 오퍼레이터는 여러 콜렉터를 지원할 수 있습니다. 이를 통해 다양한 소스에서 텔레메트리 데이터를 쉽게 수집할 수 있습니다.
  • AWS 서비스와의 통합: ADOT 오퍼레이터는 Amazon CloudWatch, Amazon OpenSearch Service 및 Amazon Managed Service for Prometheus를 비롯한 다양한 AWS 서비스와 통합할 수 있습니다. 이를 통해 텔레메트리 데이터를 쉽게 저장하고 분석할 수 있습니다.
ADOT 오퍼레이터는 쿠버네티스 클러스터에서 ADOT를 쉽게 배포하고 관리할 수 있게 해주는 강력한 도구입니다.
ADOT 콜렉터가 설치되면 ADOT SDK를 사용하여 애플리케이션에서 텔레메트리 데이터를 수집할 수 있습니다. ADOT SDK는 메트릭, 트레이스 및 로그를 포함하여 텔레메트리 데이터를 수집하기 위한 다양한 API를 제공합니다.
ADOT 오퍼레이터가 설치되고 실행 중인 경우 ADOT 콜렉터를 Amazon EKS 클러스터에 배포할 수 있습니다. Amazon EKS에서 ADOT 콜렉터는 네 가지 모드인 Deployment, DaemonSet, StatefulSet 및 Sidecar 중 하나로 배포될 수 있으며, 개별 서비스에서 배포하여 사용할 수 있습니다.

ADOT (AWS Distro for OpenTelemetry) Collector

ADOT 콜렉터는 애플리케이션 및 서비스에서 텔레메트리 데이터를 수집하고 내보내는 데 사용할 수 있는 ADOT의 구성 요소입니다. 프로메테우스, 예거 및 AWS X-Ray를 비롯한 다양한 소스에서 데이터를 수집하도록 구성할 수 있습니다. 또한 ADOT 콜렉터는 Amazon CloudWatch, Amazon OpenSearch Service 및 Amazon Managed Service for Prometheus를 비롯한 다양한 대상으로 데이터를 내보내도록 구성할 수 있습니다.
ADOT 콜렉터는 다음을 포함하여 광범위한 텔레메트리 데이터 소스를 지원합니다.
  • 계측 에이전트
  • 트레이스 API
  • 로그 파일
  • Prometheus 메트릭
  • CloudWatch 메트릭
ADOT 콜렉터는 텔레메트리 데이터를 다음을 포함한 다양한 대상으로 내보낼 수 있습니다.
  • Amazon CloudWatch
  • Amazon OpenSearch
  • Amazon Managed Service for Prometheus
  • Splunk
  • DataDog
  • Grafana
ADOT 콜렉터는 다양한 소스 및 대상에서 텔레메트리 데이터를 수집하고 내보내는 데 사용할 수 있는 강력한 도구입니다. 애플리케이션 및 서비스의 성능, 안정성 및 보안을 개선하기 위해 텔레메트리 데이터를 수집하고 분석하려는 조직에 적합한 옵션입니다.
다음은 ADOT 콜렉터 사용의 이점 중 일부입니다.
  • 확장성: ADOT 콜렉터는 확장성이 뛰어나며 온프레미스 또는 클라우드에 배포할 수 있습니다.
  • 유연성: ADOT 콜렉터는 광범위한 원격 측정 데이터 소스 및 대상을 지원합니다.
  • 사용 용이성: ADOT 콜렉터는 설치 및 구성이 쉽습니다.
  • 비용 효율성: ADOT 콜렉터는 텔레메트리 데이터를 수집하고 내보내는 비용 효율적인 방법입니다.

OpenTelemetry with Lambda

ADOT Lambda Layer

ADOT 람다 레이어는 사전 빌드된 관리형 계층으로, OpenTelemetry를 사용하여 AWS 람다 함수를 쉽게 계측할 수 있도록 해줍니다. 이 레이어에는 사용자가 선택한 언어에 대한 OpenTelemetry 콜렉터와 OpenTelemetry SDK가 포함되어 있습니다.
ADOT 람다 레이어를 사용하려면 람다 함수의 환경 변수에 추가하기만 하면 됩니다. 레이어는 자동으로 기능을 계측하고 텔레메트리 데이터를 수집합니다. 그런 다음 프로메테우스, 예거, AWS X-Ray와 같은 다양한 대상으로 내보낼 수 있습니다.
ADOT 람다 레이어는 OpenTelemetry를 시작하는 좋은 방법입니다. 코드를 작성하지 않고도 손쉽게 람다 함수를 구성하고 텔레메트리 데이터를 수집할 수 있습니다.

References

 

'컴퓨터 공학 > Backend Engineering' 카테고리의 다른 글

Kubernetes의 OpenTelemetry 지원  (0) 2023.05.13
OpenTelemetry 개념 정리  (0) 2023.05.01