AWS의 OpenTelemetry 지원

Ukiyo-e painting of the kermit the frog, full body.jpg
"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로 구성됩니다.
etc-image-1

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

아래와 같이 ADOT 콜렉터를 사용하여 마이크로서비스를 모니터링하고, 메트릭을 AMP로 내보내고, AMG를 사용하여 시각화할 수 있습니다.
etc-image-2
다음은 작업을 위한 세부 단계를 설명합니다.
  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가 포함되어 있습니다.
etc-image-3
ADOT 람다 레이어를 사용하려면 람다 함수의 환경 변수에 추가하기만 하면 됩니다. 레이어는 자동으로 기능을 계측하고 텔레메트리 데이터를 수집합니다. 그런 다음 프로메테우스, 예거, AWS X-Ray와 같은 다양한 대상으로 내보낼 수 있습니다.
ADOT 람다 레이어는 OpenTelemetry를 시작하는 좋은 방법입니다. 코드를 작성하지 않고도 손쉽게 람다 함수를 구성하고 텔레메트리 데이터를 수집할 수 있습니다.

References

 

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

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