

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Observability Accelerator를 사용하여 Amazon Managed Service for Prometheus 설정
<a name="obs_accelerator"></a>

AWS 는 Amazon Elastic Kubernetes Service(Amazon EKS) 프로젝트에 대한 모니터링, 로깅, 알림 및 대시보드를 포함한 관찰성 도구를 제공합니다. 여기에는 Amazon Managed Service for Prometheus, [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html), [AWS Distro for OpenTelemetry](https://aws-otel.github.io/) 및 기타 도구가 포함됩니다. 이러한 도구를 함께 사용하는 데 도움이 되도록는 Observability [AWS Accelerator](https://github.com/aws-observability/terraform-aws-observability-accelerator)라고 하는 이러한 서비스로 관찰성을 구성하는 Terraform 모듈을 AWS 제공합니다.

AWS Observability Accelerator는 Amazon Managed Service for Prometheus에 대한 두 개의 수집기 프로파일을 제공합니다.
+ **관리형 지표(에이전트 없음)** - 클러스터 외부에서 실행되는 완전 관리형 에이전트 없는 스크레이퍼인 [Amazon Managed Service for Prometheus 수집기를](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector.html) 사용합니다. 관리할 수집기 포드가 없습니다. 지표만 해당됩니다.
+ **자체 관리형 -** 클러스터의 Helm을 통해 OpenTelemetry Collector를 배포합니다. 지표, 트레이스(AWS X-Ray) 및 로그(Amazon CloudWatch)를 지원합니다.

이 섹션에서는 권장되는 에이전트 없는 접근 방식부터 시작하여 두 옵션을 모두 살펴봅니다.

Terraform 템플릿과 자세한 지침은 [Terraform용AWS Observability Accelerator GitHub 페이지](https://github.com/aws-observability/terraform-aws-observability-accelerator)에서 확인할 수 있습니다.

## 사전 조건
<a name="obs-accelerator-prereq"></a>

 AWS Observability Accelerator를 사용하려면 기존 Amazon EKS 클러스터와 다음 사전 조건이 있어야 합니다.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) - 명령줄에서 AWS 기능을 호출하는 데 사용됩니다.
+ [kubectl](https://kubernetes.io/docs/tasks/tools/)—명령줄에서 EKS 클러스터를 제어하는 데 사용됩니다.
+ [Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)(>= 1.5.0) -이 솔루션의 리소스 생성을 자동화하는 데 사용됩니다. AWS 계정 내에서 Amazon Managed Service for Prometheus, Amazon Managed Grafana 및 IAM을 생성하고 관리할 수 있는 액세스 권한이 있는 IAM 역할로 AWS 공급자를 설정해야 합니다. Terraform용 AWS 공급자를 구성하는 방법에 대한 자세한 내용은 **Terraform 설명서의 [AWS 공급자](https://registry.terraform.io/providers/hashicorp/aws/latest/docs)를 참조하세요.

## 관리형 지표(에이전트 없음) 예제 사용
<a name="obs-accelerator-managed-metrics"></a>

이 예제에서는 Amazon Managed Service for Prometheus 수집기를 사용하여 수집기 포드를 배포하지 않고 Amazon EKS 클러스터에서 Prometheus 지표를 스크레이프합니다. 수집기에는 두 개의 개별 가용 영역에 두 개 이상의 서브넷이 필요합니다. 자세한 내용은 GitHub의 [eks-amp-managed](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples/eks-amp-managed) 예제를 참조하세요.

**에이전트 없는 인프라 모니터링 Terraform 모듈을 사용하려면**

1. 프로젝트를 생성하려는 폴더에서 다음 명령을 사용하여 리포지토리를 복제합니다.

   ```
   git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
   ```

1. 다음 명령을 사용하여 Terraform을 초기화합니다.

   ```
   cd examples/eks-amp-managed
   
   terraform init
   ```

1. 다음 예제와 같이 새 `terraform.tfvars` 파일을 생성합니다. Amazon EKS 클러스터에 대한 AWS 리전, 클러스터 ID 및 VPC 네트워킹 세부 정보를 사용합니다. 수집기에는 두 개의 개별 가용 영역에 두 개 이상의 서브넷이 필요합니다.

   ```
   # (mandatory) AWS Region where your resources will be located
   aws_region = "{{eu-west-1}}"
   
   # (mandatory) EKS Cluster name
   eks_cluster_id = "{{my-eks-cluster}}"
   
   # (mandatory) Subnets for the managed scraper (>= 2 AZs)
   scraper_subnet_ids = ["{{subnet-aaa}}", "{{subnet-bbb}}"]
   
   # (mandatory) Security group allowing scraper access to the EKS API
   scraper_security_group_ids = ["{{sg-xxx}}"]
   ```

1. 사용하려는 Amazon Managed Grafana 워크스페이스가 아직 없는 경우 생성합니다. 새 워크스페이스를 생성하는 방법에 대한 자세한 내용은 **Amazon Managed Grafana 사용 설명서의 [첫 번째 워크스페이스 생성](https://docs.aws.amazon.com/grafana/latest/userguide/getting-started-with-AMG.html#AMG-getting-started-workspace-create)을 참조하세요.

1. 명령줄에서 다음 명령을 실행하여 Terraform에서 Grafana 워크스페이스를 사용하기 위한 두 개의 변수를 생성합니다. {{grafana-workspace-id}}를 Grafana 워크스페이스의 ID로 대체해야 합니다.

   ```
   export TF_VAR_managed_grafana_workspace_id={{grafana-workspace-id}}
   export TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text`
   ```

1. [선택 사항] 기존의 Amazon Managed Service for Prometheus 워크스페이스를 사용하려면 다음 예와 같이 {{prometheus-workspace-id}}를 Prometheus 워크스페이스 ID로 대체하여 `terraform.tfvars` 파일에 ID를 추가합니다. 기존 워크스페이스를 지정하지 않으면 새 Prometheus 워크스페이스가 자동으로 생성됩니다.

   ```
   # (optional) Leave it empty for a new workspace to be created
   managed_prometheus_workspace_id = "{{prometheus-workspace-id}}"
   ```

1. 다음 명령을 사용하여 솔루션을 배포합니다.

   ```
   terraform apply -var-file=terraform.tfvars
   ```

이렇게 하면 다음을 포함하여 AWS 계정에 리소스가 생성됩니다.
+ 새 Amazon Managed Service for Prometheus 워크스페이스(기존 워크스페이스를 사용하기로 선택한 경우 제외)
+ Amazon EKS 클러스터에서 Prometheus 지표를 스크레이프하도록 구성된 Amazon Managed Service for Prometheus 수집기(에이전트 없는 스크레이퍼)입니다.
+ Amazon Managed Service for Prometheus 워크스페이스의 Prometheus 기록 및 알림 규칙.
+ 인프라 지표를 위해 Amazon EKS 클러스터에 배포된 kube-state-metrics 및 node-exporter.
+ 현재 워크스페이스의 새로운 Amazon Managed Grafana 데이터 소스 및 대시보드입니다. 대시보드는 **EKS 모니터링** 아래에 나열됩니다.

## 대안: 자체 관리형 OpenTelemetry Collector
<a name="obs-accelerator-self-managed"></a>

수집 파이프라인에 대한 추적, 로그 또는 전체 제어가 필요한 경우 자체 관리형 프로파일을 사용합니다. 그러면 Prometheus 지표를 스크레이프하고 Amazon Managed Service for Prometheus에 원격으로 쓰도록 구성된 OpenTelemetry Collector가 Amazon EKS 클러스터의 Helm을 통해 배포됩니다. 또한 트레이스(AWS X-Ray) 및 로그(Amazon CloudWatch)를 지원합니다. 자세한 내용은 GitHub의 [eks-amp-otel](https://github.com/aws-observability/terraform-aws-observability-accelerator/tree/main/examples/eks-amp-otel) 예제를 참조하세요.

**자체 관리형 Terraform 모듈을 사용하려면**

1. 리포지토리를 복제하고 Terraform을 초기화합니다.

   ```
   git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git
   cd examples/eks-amp-otel
   terraform init
   ```

1. 다음 예제와 같이 새 `terraform.tfvars` 파일을 생성합니다.

   ```
   # (mandatory) AWS Region where your resources will be located
   aws_region = "{{eu-west-1}}"
   
   # (mandatory) EKS Cluster name
   eks_cluster_id = "{{my-eks-cluster}}"
   ```

1. 관리형 지표 예제와 동일한 단계(위의 4\~6단계)를 사용하여 Amazon Managed Grafana 워크스페이스 및 API 키를 설정합니다.

1. 다음 명령을 사용하여 솔루션을 배포합니다.

   ```
   terraform apply -var-file=terraform.tfvars
   ```

이렇게 하면 AWS 계정에 다음과 같은 리소스가 생성됩니다(에이전트 없는 접근 방식과 달리 수집기는 클러스터 내에서 실행됨).
+ Amazon Managed Service for Prometheus 워크스페이스(제공되지 않은 경우).
+ 데이터 소스 및 대시보드가 있는 Amazon Managed Grafana 워크스페이스입니다.
+ Amazon EKS 클러스터의 Helm을 통해 배포된 OpenTelemetry Collector로, Prometheus 지표를 스크레이프하고 Amazon Managed Service for Prometheus에 원격 쓰도록 구성되어 있습니다.
+ OpenTelemetry Collector의 서비스 계정에 대한 IAM 역할(IRSA)입니다.
+ 파이프라인을 AWS X-Ray로 추적합니다(기본적으로 활성화됨).
+ 파이프라인을 Amazon CloudWatch에 로깅합니다(기본적으로 활성화됨).

## 대시보드 보기
<a name="obs-accelerator-dashboards"></a>

새 대시보드를 보려면 Amazon Managed Grafana 워크스페이스에서 특정 대시보드를 엽니다. 인프라 대시보드는 Terraform에서 자동으로 프로비저닝됩니다. Amazon Managed Grafana 사용에 대한 자세한 내용은 **Amazon Managed Grafana 사용 설명서의 [Grafana 워크스페이스에서 작업](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-working-with-Grafana-workspace.html)을 참조하세요.