안녕하세요! 이쁜이와 멋쟁이의 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의 오픈소스 프로젝트입니다.
사용하기
요구사항
- kubectl : 1.21 이상
- eksctl
- AWS CLI 2 버전
- RBAC 권한 부여 : ADOT v0.62.1 또는 이전버전을 설치하는 경우 필요
- TLS certificate
RBAC 권한 부여 (ADOT v0.62.1 또는 이전버전을 설치하는 경우 필요)
- ADOT를 설치하기 위한 RBAC 권한이 설정된 공식 yaml 파일을 실행
kubectl apply -f <https://amazon-eks.s3.amazonaws.com/docs/addons-otel-permissions.yaml>
TLS certificate 설치
- 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가지 형태로 배포할 수 있습니다.
- Deployment
- ADOT Collector 애플리케이션처럼 관리
- 쉽게 확장 가능
- 초기 버전으로 롤백 가능
- DaemonSet
- 모든 Kubernetes node에 Pod를 모니터링하는 자체 Collector 복사본 생성
- StatefulSet
- Collector Pod를 예측 가능한 이름으로 생성
- Collector 복제본의 이름, 노드 위치, 볼륨을 일관성 있게 관리
- Collector 복제본을 스크랩 대상으로 설정 가능
- Sidecar
- 원격 측정 데이터를 가능한 한 빠르고 안정적으로 오프로드
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 |
댓글