Amazon OpenSearch로 EKS환경 Observability 구현하기에 대한 1번째 글 입니다.
1. Amazon OpenSearch로 EKS환경 Observability 구현하기 (1) - 마이크로서비스 환경의 Obervability와 필요성, AWS 인프라 구성
2. Amazon OpenSearch로 EKS환경 Observability 구현하기 (2) - OpenSearch 클러스터 테스트 및 EKS 클러스터 배포
3. Amazon OpenSearch로 EKS환경 Observability 구현하기 (3) - 로그검색 활성화 및 Observavility 구현/테스트
마이크로서비스 환경의 Observability
마이크로서비스는 서비스를 작은 단위로 분리하여 개발, 배포, 운영하는 아키텍처 스타일입니다. 이러한 아키텍처는 다양한 이점을 제공하지만, 동시에 관리해야 할 요소도 늘어나게 됩니다. 이런 문제들을 해결하기 위해 옵저버빌리티(Observability)가 중요한 개념으로 부상하게 되었습니다.
Observability의 필요성
- 복잡한 시스템의 상태 추적 마이크로서비스 환경에서는 서비스간 호출 및 네트워크 충돌 등 많은 이슈가 발생할 수 있습니다. 옵저버빌리티를 갖춤으로써 이러한 문제들을 효과적으로 관리 및 해결할 수 있습니다.
- 성능 최적화 각각의 독립적인 서비스들을 모니터링하고 분석함으로써 전체 시스템의 성능을 최적화할 수 있습니다. 옵저버빌리티를 반영하면 서비스별 실행 시간, 사용자 응답 시간 등의 메트릭을 살펴볼 수 있어 더 나은 시스템 성능을 위한 통찰력을 얻을 수 있습니다.
- 직관적인 서비스 관리 분산된 서비스를 효과적으로 모니터링하고 검사할 수 있는 도구가 필요합니다. 또한, 각각의 서비스에 대한 로깅과 추적을 일관성있게 관리하기 위해 옵저버빌리티는 필수적입니다.
Observability의 구성
- 시스템: 관찰 중인 시스템(SUO)의 약자입니다. 이것은 귀하가 관심을 갖고 책임지고 있는 클라우드 네이티브 플랫폼(및 그 플랫폼에서 실행되는 애플리케이션)입니다.
- 신호: 시스템 외부에서 관찰할 수 있는 정보. 다양한 신호 유형(가장 일반적인 유형은 로그, 메트릭 및 추적)이 있으며 소스에서 발생합니다.
- 소스: 마이크로서비스, 장치 또는 운영 체제와 같은 인프라 및 애플리케이션 계층의 일부입니다. 일반적으로 신호를 방출하도록 계측해야 합니다.
- 에이전트: 신호 수집 및 라우팅을 담당합니다.
- 대상: 다양한 이유와 사용 사례로 신호를 소비하는 위치에는 시각화(예: 대시보드), 경고, 장기 저장(규제 목적), 분석(앱의 새로운 용도 찾기)이 포함됩니다.
- Telemetry: 소스에서 신호를 수집하고, 에이전트를 통해 라우팅/전처리하고, 목적지로 수집하는 프로세스입니다.
Observability의 가장 중요한 측면은 실행 가능한 통찰력입니다. 단순히 로그 라인에 오류 메시지를 제공하거나 멋진 그래픽이 있는 대시보드를 갖는 것만으로는 충분하지 않습니다.
EKS 환경의 장점
💡 쿠버네티스 기반의 EKS를 사용하면, 마이크로서비스 환경에서의 옵저버빌리티를 증진시킬 수 있어 성능 최적화, 서비스 상태 추적, 로깅 및 추적 등 여러 측면에서 효과적인 관리가 가능해집니다.
EKS (Amazon Elastic Kubernetes Service)는 AWS에서 관리하는 쿠버네티스 서비스로, 마이크로서비스 환경에서의 옵저버빌리티를 향상시키는 다음과 같은 장점을 제공합니다.
- AWS 강력한 모니터링 도구와 통합 EKS는 Amazon CloudWatch, AWS X-Ray와 같은 AWS에서 제공하는 강력한 모니터링 도구와 쉽게 통합되어 다양한 리소스를 효과적으로 모니터링할 수 있습니다.
- 쉬운 로깅 및 추적 관리 AWS에 있는 다양한 로깅 및 추적 도구를 이용하여, EKS 환경에서 실시간으로 로그를 수집하고, 파악할 수 있어 문제를 신속하게 해결할 수 있습니다.
- 안정성 및 확장성 EKS는 마스터 및 워커 노드를 다수의 가용 영역에 걸쳐 안정적으로 구축할 수 있어서, 안정적이고 확장 가능한 마이크로서비스 환경을 지원합니다.
구성요소
- OpenSearch 대시보드를 포함하는 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같은 광범위한 사용 사례에 사용되는 분산형 오픈 소스 검색 및 분석 제품군입니다.
- Amazon OpenSearch Service AWS 클라우드에서 OpenSearch 클러스터를 쉽게 배포, 운영 및 확장할 수 있게 해주는 관리형 AWS 서비스입니다. Amazon OpenSearch Service는 OpenSearch 및 레거시 Elasticsearch OSS를 지원합니다.
- OpenTelemetry용 AWS Distro OpenTelemetry 프로젝트의 안전한 프로덕션 준비 AWS 지원 배포판입니다.
- 추적 분석(Trace Analytics) 분산 응용 프로그램에서 추적 데이터를 분석하는 데 사용할 수 있는 플러그인입니다. Amazon OpenSearch Service용 OpenSearch 대시보드의 기본 설치에는 이 플러그인이 포함되어 있습니다.
- 데이터 프레퍼(data-prepper) 원시 로그 수집에서 데이터에 대한 정교하고 실행 가능한 대화형 임시 분석을 용이하게 하는 데까지 종단 간 분석 수명 주기를 지원하기 위해 데이터를 필터링, 보강, 변환, 정규화 및 집계하는 기능을 갖춘 오픈 소스 유틸리티 서비스입니다.
- 전자 상거래 샘플 애플리케이션(샘플 앱 o11y 쇼핑) 위의 다양한 구성 요소의 기능을 보여주기 위해 마이크로 서비스로 구축된 샘플 전자 상거래 애플리케이션입니다.
- FluentBit 메트릭 및 로그를 다양한 대상으로 수집, 보강 및 전송하는 오픈 소스 프로세서 및 전달자입니다.
- 도커(Docker) 컨테이너에서 소프트웨어를 실행하는 OS 수준의 가상화 소프트웨어입니다.
- Amazon Elastic Kubernetes 서비스 (Amazon EKS) Amazon EKS는 자체 Kubernetes 제어 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 관리형 서비스입니다. Kubernetes는 컨테이너의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템입니다.
- Amazon Elastic Container Registry (Amazon ECR) Amazon ECR은 안전하고 확장 가능하며 안정적인 관리형 컨테이너 이미지 레지스트리 서비스입니다.
AWS Environment 세팅
- 본 포스팅에서는 us-east-1 리전에서 진행합니다.
- IAM사용자는 AdministartorAccess 정책을 필요로 합니다.
- CloudFormation을 사용하여 기본 인프라를 배포합니다.
(클라우드포메이션 스택생성) - 생성되는 리소스는 다음과 같습니다.
- VPC
- S3 버킷
- Amazon OpenSearch Cluster
- 리버스 프록시 (EC2)
- Cloud9 Environments
- EKS Cluster
- 루트스택을 포함한 7개의 스택이 생성됩니다.
AWS 인프라 살펴보기
- 네트워크 및 기타 네트워크 구성 요소를 포함한 AWS VPC가 생성되었습니다.
- Observability를 위한 Amazon OpenSearch Service 도메인이 생성되었습니다.
- OpenSearch 대시보드를 액세스 하기 위해 Nginx 리버스 프록시를 사용하고, EC2 에 탑재됩니다.
- OpenTelemetry와 Fluentbit, OpenSearch Data Prepper를 포함한 EKS 클러스터가 생성되었습니다
'OpenSearch' 카테고리의 다른 글
Amazon OpenSearch로 EKS환경 Observability 구현하기 (3) - 로그검색 활성화 및 Observavility 구현/테스트 (0) | 2023.09.09 |
---|---|
Amazon OpenSearch로 EKS환경 Observability 구현하기 (2) - OpenSearch 클러스터 테스트 및 EKS 클러스터 배포 (0) | 2023.07.27 |