본문 바로가기
CSP (Cloud Service Provider)/AWS

eks addon ADOT란?

by BTC_기범 2023. 6. 12.

안녕하세요! 이쁜이와 멋쟁이의 BTC_기범입니다.

휴일들이 지나고 몸이 더위에 지치기 쉬운 날씨가 된 것 같습니다.

보양 잘하셔서 건강 잘 챙기시고요!

오늘은 EKS addon ADOT에 대해서 말씀드리겠습니다~


ADOT란?

AWS Distro for OpenTelemetry의 약자로 OpenTelemetry 프로젝트의 안전하고 프로덕션에 바로 사용할 수 있는 AWS 지원 배포판입니다.

ADOT를 통해 애플리케이션 매트릭과 데이터를 수집하여 AWS-X-Ray, Amazon CloudWatch, Amazon Managed Service for Prometheus, Partner monitoring solutions에 전달하여 활용할 수 있습니다.

OpenTelemetry란?

애플리케이션 모니터링을 위한 분산 추적 및 메트릭을 수집하기 위한 오픈 소스 API, 라이브러리 및 에이전트를 제공하는 Cloud Native Computing Foundation의 오픈소스 프로젝트입니다.

 

사용하기

요구사항

  1. kubectl : 1.21 이상
  2. eksctl
  3. AWS CLI 2 버전
  4. RBAC 권한 부여 : ADOT v0.62.1 또는 이전버전을 설치하는 경우 필요
  5. TLS certificate

RBAC 권한 부여 (ADOT v0.62.1 또는 이전버전을 설치하는 경우 필요)

  1. ADOT를 설치하기 위한 RBAC 권한이 설정된 공식 yaml 파일을 실행
kubectl apply -f <https://amazon-eks.s3.amazonaws.com/docs/addons-otel-permissions.yaml>

TLS certificate 설치

  1. cert manager 설치
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.2/cert-manager.yaml

   2. 설치 상태 확인

kubectl get pod -w -n cert-manager

ADOT Collector

메트릭을 수집할 수 있는 ADOT Collector는 4가지 형태로 배포할 수 있습니다.

  1. Deployment
    1. ADOT Collector 애플리케이션처럼 관리
    2. 쉽게 확장 가능
    3. 초기 버전으로 롤백 가능
  2. DaemonSet
    1. 모든 Kubernetes node에 Pod를 모니터링하는 자체 Collector 복사본 생성
  3. StatefulSet
    1. Collector Pod를 예측 가능한 이름으로 생성
    2. Collector 복제본의 이름, 노드 위치, 볼륨을 일관성 있게 관리
    3. Collector 복제본을 스크랩 대상으로 설정 가능
  4. Sidecar
    1. 원격 측정 데이터를 가능한 한 빠르고 안정적으로 오프로드

참고 : EKS 추가 기능을 사용하여 AWS Distro for OpenTelemetry 설치 | OpenTelemetry를 위한 AWS Open Distro (aws-otel.github.io)    

 

ADOT Collector을 위한 IAM 역할 생성

eksctl create iamserviceaccount --name adot-collector --namespace default --cluster my-cluster --role-name "AmazonEKS_ADOT_Collector_Role" \
    --attach-policy-arn arn:aws:iam::aws:policy/AmazonPrometheusRemoteWriteAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy --approve

EKS 클러스터에 ADOT Operator AddOn 배포

1. CLI를 이용한 배포 (주의 : 본인에게 맞게 수정 필요)

   a. EKS 클러스터에 ADOT Amazon EKS Addon “ADOT” 설치 및 “ADOT Collector” 배포 

aws eks create-addon --addon-name adot --cluster-name <your_cluster_name> --configuration-values <Json 또는 Json파일>

       “ADOT Collector” 배포를 위해 Json에 포함할 수 있는 내용

{
  "collector": {
    "serviceAccount": {
      "create": false,
      "name": "<YOUR-SERVICE-ACCOUNT-NAME>"
    },
    "amp": {
      "enabled": true,
      "remoteWriteEndpoint": "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write"
    }
  }
}

# amp는 Amazon Managed Prometheus에 대한 설정값

       Json에 포함되는 collector 관련 값에 대해서는 아래 참고 자료에서 확인할 수 있습니다.

       참고 : EKS add-ons Advanced Configuration for ADOT | AWS Open Distro for OpenTelemetry (aws-otel.github.io)      

   

   b. Amazon EKS Addon “ADOT” 실행중인지 확인

aws eks describe-addon --addon-name adot --cluster-name <your_cluster_name>

+ ADOT의 고급 구성

—configuration-values 옵션JSON 문자열 또는 JSON 파일을 전달하는 것을 통해 ADOT의 구체적인 설정을 구성할 수 있습니다.

설정할 수 있는 요소에 대해서는 참고 자료에서 확인할 수 있습니다.

참고 : EKS add-ons Advanced Configuration for ADOT | AWS Open Distro for OpenTelemetry (aws-otel.github.io)       

 


오늘은 EKS addon ADOT에 대해 말씀드렸는데요~

EKS의 메트릭 정보들을  AWS의 Monitoring Service로 전달하여 사용할 수 있도록 도와준다는 점에서
AWS 중심적으로 리소스를 운영하는 분들에게 도움이 될 것 같다는 생각을 계기로 글을 작성하게 되었습니다.
도움이 되셨기를 바라며 다음에 또 뵙겠습니다~!!

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

[AWS] AWS CodeBuild  (0) 2023.06.22
[AWS] SQS (Simple Queue Service)  (0) 2023.06.14
AWS 콘솔 접근 가능한 IP 제한  (0) 2023.06.12
[AWS] AWS Glue  (1) 2023.06.09
[AWS] Site-to-Site VPN  (0) 2023.06.09

댓글