본문 바로가기
OpenSearch

Amazon OpenSearch로 EKS환경 Observability 구현하기 (1) - 마이크로서비스 환경의 Obervability와 필요성, AWS 인프라 구성

by Hyeon Cloud 2023. 7. 26.

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의 필요성

  1. 복잡한 시스템의 상태 추적 마이크로서비스 환경에서는 서비스간 호출 및 네트워크 충돌 등 많은 이슈가 발생할 수 있습니다. 옵저버빌리티를 갖춤으로써 이러한 문제들을 효과적으로 관리 및 해결할 수 있습니다.
  2. 성능 최적화 각각의 독립적인 서비스들을 모니터링하고 분석함으로써 전체 시스템의 성능을 최적화할 수 있습니다. 옵저버빌리티를 반영하면 서비스별 실행 시간, 사용자 응답 시간 등의 메트릭을 살펴볼 수 있어 더 나은 시스템 성능을 위한 통찰력을 얻을 수 있습니다.
  3. 직관적인 서비스 관리 분산된 서비스를 효과적으로 모니터링하고 검사할 수 있는 도구가 필요합니다. 또한, 각각의 서비스에 대한 로깅과 추적을 일관성있게 관리하기 위해 옵저버빌리티는 필수적입니다.

Observability의 구성

  • 시스템: 관찰 중인 시스템(SUO)의 약자입니다. 이것은 귀하가 관심을 갖고 책임지고 있는 클라우드 네이티브 플랫폼(및 그 플랫폼에서 실행되는 애플리케이션)입니다.
  • 신호: 시스템 외부에서 관찰할 수 있는 정보. 다양한 신호 유형(가장 일반적인 유형은 로그, 메트릭 및 추적)이 있으며 소스에서 발생합니다.
  • 소스: 마이크로서비스, 장치 또는 운영 체제와 같은 인프라 및 애플리케이션 계층의 일부입니다. 일반적으로 신호를 방출하도록 계측해야 합니다.
  • 에이전트: 신호 수집 및 라우팅을 담당합니다.
  • 대상: 다양한 이유와 사용 사례로 신호를 소비하는 위치에는 시각화(예: 대시보드), 경고, 장기 저장(규제 목적), 분석(앱의 새로운 용도 찾기)이 포함됩니다.
  • Telemetry: 소스에서 신호를 수집하고, 에이전트를 통해 라우팅/전처리하고, 목적지로 수집하는 프로세스입니다.

Observability의 가장 중요한 측면은 실행 가능한 통찰력입니다. 단순히 로그 라인에 오류 메시지를 제공하거나 멋진 그래픽이 있는 대시보드를 갖는 것만으로는 충분하지 않습니다.

EKS 환경의 장점

💡 쿠버네티스 기반의 EKS를 사용하면, 마이크로서비스 환경에서의 옵저버빌리티를 증진시킬 수 있어 성능 최적화, 서비스 상태 추적, 로깅 및 추적 등 여러 측면에서 효과적인 관리가 가능해집니다.

EKS (Amazon Elastic Kubernetes Service)는 AWS에서 관리하는 쿠버네티스 서비스로, 마이크로서비스 환경에서의 옵저버빌리티를 향상시키는 다음과 같은 장점을 제공합니다.

  1. AWS 강력한 모니터링 도구와 통합 EKS는 Amazon CloudWatch, AWS X-Ray와 같은 AWS에서 제공하는 강력한 모니터링 도구와 쉽게 통합되어 다양한 리소스를 효과적으로 모니터링할 수 있습니다.
  2. 쉬운 로깅 및 추적 관리 AWS에 있는 다양한 로깅 및 추적 도구를 이용하여, EKS 환경에서 실시간으로 로그를 수집하고, 파악할 수 있어 문제를 신속하게 해결할 수 있습니다.
  3. 안정성 및 확장성 EKS는 마스터 및 워커 노드를 다수의 가용 영역에 걸쳐 안정적으로 구축할 수 있어서, 안정적이고 확장 가능한 마이크로서비스 환경을 지원합니다.

구성요소

  1. OpenSearch 대시보드를 포함하는 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같은 광범위한 사용 사례에 사용되는 분산형 오픈 소스 검색 및 분석 제품군입니다.
  2. Amazon OpenSearch Service AWS 클라우드에서 OpenSearch 클러스터를 쉽게 배포, 운영 및 확장할 수 있게 해주는 관리형 AWS 서비스입니다. Amazon OpenSearch Service는 OpenSearch 및 레거시 Elasticsearch OSS를 지원합니다.
  3. OpenTelemetry용 AWS Distro OpenTelemetry 프로젝트의 안전한 프로덕션 준비 AWS 지원 배포판입니다.
  4. 추적 분석(Trace Analytics) 분산 응용 프로그램에서 추적 데이터를 분석하는 데 사용할 수 있는 플러그인입니다. Amazon OpenSearch Service용 OpenSearch 대시보드의 기본 설치에는 이 플러그인이 포함되어 있습니다.
  5. 데이터 프레퍼(data-prepper) 원시 로그 수집에서 데이터에 대한 정교하고 실행 가능한 대화형 임시 분석을 용이하게 하는 데까지 종단 간 분석 수명 주기를 지원하기 위해 데이터를 필터링, 보강, 변환, 정규화 및 집계하는 기능을 갖춘 오픈 소스 유틸리티 서비스입니다.
  6. 전자 상거래 샘플 애플리케이션(샘플 앱 o11y 쇼핑) 위의 다양한 구성 요소의 기능을 보여주기 위해 마이크로 서비스로 구축된 샘플 전자 상거래 애플리케이션입니다.
  7. FluentBit 메트릭 및 로그를 다양한 대상으로 수집, 보강 및 전송하는 오픈 소스 프로세서 및 전달자입니다.
  8. 도커(Docker) 컨테이너에서 소프트웨어를 실행하는 OS 수준의 가상화 소프트웨어입니다.
  9. Amazon Elastic Kubernetes 서비스 (Amazon EKS) Amazon EKS는 자체 Kubernetes 제어 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 관리형 서비스입니다. Kubernetes는 컨테이너의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템입니다.
  10. 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 인프라 살펴보기

  1. 네트워크 및 기타 네트워크 구성 요소를 포함한 AWS VPC가 생성되었습니다.
  2. Observability를 위한 Amazon OpenSearch Service 도메인이 생성되었습니다.
  3. OpenSearch 대시보드를 액세스 하기 위해 Nginx 리버스 프록시를 사용하고, EC2 에 탑재됩니다.
  4. OpenTelemetry와 Fluentbit, OpenSearch Data Prepper를 포함한 EKS 클러스터가 생성되었습니다