기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Prometheus용 Amazon 매니지드 서비스에서 분할 비용 할당 데이터 사용
Amazon EKS의 비용 데이터를 분할하려면 클러스터에서 메모리 및 CPU 사용량을 포함한 지표를 수집하고 저장해야 합니다. Prometheus용 Amazon 매니지드 서비스를 이러한 목적으로 사용할 수 있습니다.
비용 할당 데이터를 분할하도록 선택하고 Amazon Managed Service for Prometheus 작업 공간이 두 개의 필수 지표 container_cpu_usage_seconds_total
(container_memory_working_set_bytes
및) 를 수신하기 시작하면 분할 비용 할당 데이터가 지표를 인식하여 자동으로 사용합니다.
참고
두 개의 필수 지표 (container_cpu_usage_seconds_total
및container_memory_working_set_bytes
) 는 기본 Prometheus 스크랩 구성과 관리형 수집기와 함께 제공되는 기본 구성에 있습니다. AWS 하지만 이러한 구성을 사용자 지정하는 경우, container_cpu_usage_seconds_total
및 container_memory_working_set_bytes
지표에서 다음 레이블을 재지정, 수정 또는 제거하지 마십시오. name
namespace
pod
이러한 레이블의 레이블을 다시 지정하거나 수정 또는 제거하면 지표 수집에 영향을 미칠 수 있습니다.
Prometheus용 Amazon 관리 서비스를 사용하여 단일 지역의 단일 사용 계정에서 EKS 지표를 수집할 수 있습니다. Prometheus용 Amazon 관리 서비스 워크스페이스는 해당 계정 및 지역에 있어야 합니다. 비용을 모니터링하려는 각 사용 계정 및 지역에 대해 Prometheus용 Amazon 관리 서비스 인스턴스가 하나씩 필요합니다. Prometheus용 Amazon Managed Service Workspace에서는 여러 클러스터에 대한 지표를 수집할 수 있습니다. 단, 클러스터가 동일한 사용 계정 및 지역에 속해 있어야 합니다.
다음 섹션에서는 EKS 클러스터에서 Prometheus용 Amazon 관리형 서비스 작업 공간으로 올바른 지표를 보내는 방법을 설명합니다.
사전 조건
분할 비용 할당 데이터와 함께 Prometheus용 Amazon 관리 서비스를 사용하기 위한 사전 요구 사항은 다음과 같습니다.
-
AWS Billing and Cost Management 콘솔에서 비용 할당 데이터 분할을 활성화해야 합니다. 자세한 내용은 분할 비용 할당 데이터 사용을 참조하십시오. 비용 할당 데이터를 분할하도록 선택하면 각 사용 계정에 서비스 연결 역할이 생성되어 해당 계정의 Amazon Managed Service에서 Prometheus용 Amazon Managed Service를 쿼리할 수 있습니다. 자세한 내용은 분할 비용 할당 데이터에 대한 서비스 연결 역할을 참조하십시오.
-
분할 비용 할당 데이터를 추적하려는 EKS 클러스터가 필요합니다. 기존 클러스터일 수도 있고 새 클러스터를 만들 수도 있습니다. 자세한 내용은 Amazon EKS 사용 설명서의 Amazon EKS 클러스터 생성을 참조하십시오.
참고
이후 단계에서 사용하려면
EKS cluster ARN
,security group IDs
, 최소 두 개subnet IDs
(서로 다른 가용 영역) 가 필요합니다.(선택 사항) EKS 클러스터의 인증 모드를
API
또는API_AND_CONFIG_MAP
중 하나로 설정합니다. -
EKS 클러스터와 동일한 계정 및 지역에 Prometheus용 Amazon 관리 서비스 인스턴스가 있어야 합니다. 아직 계정이 없다면 새로 만들 수 있습니다. Prometheus용 Amazon 관리 서비스 인스턴스를 생성하는 방법에 대한 자세한 내용은 Prometheus용 Amazon 관리 서비스 사용 설명서의 작업 공간 생성을 참조하십시오.
참고
이후 단계에서 사용하려면 가 필요합니다.
Amazon Managed Service for Prometheus workspace ARN
Prometheus용 아마존 매니지드 서비스에 EKS 지표 전달
EKS 클러스터와 Prometheus용 Amazon 관리형 서비스 인스턴스가 있으면 클러스터의 지표를 인스턴스로 전달할 수 있습니다. 두 가지 방법으로 지표를 전송할 수 있습니다.
-
옵션 1: AWS 관리형 컬렉터 사용. 이는 EKS 클러스터에서 Prometheus용 Amazon 관리 서비스로 지표를 보내는 가장 간단한 방법입니다. 하지만 기껏해야 30초마다 메트릭을 스크랩할 수 있다는 제한이 있습니다.
-
옵션 2: Prometheus 에이전트를 직접 생성하십시오. 이 경우 스크래핑 구성을 더 잘 제어할 수 있지만 에이전트를 만든 후에는 에이전트를 관리해야 합니다.
옵션 1: AWS 관리형 컬렉터 사용
EKS 클러스터에서 Prometheus용 Amazon AWS Managed Service 인스턴스로 지표를 보내는 가장 간단한 방법은 관리형 컬렉터 (스크레이퍼) 를 사용하는 것입니다. 다음 절차는 관리형 컬렉터를 생성하는 단계를 안내합니다. AWS 자세한 내용은 Prometheus용 Amazon AWS 관리형 서비스 사용 설명서의 관리형 컬렉터를 참조하십시오.
참고
AWS 관리형 컬렉터의 최소 스크랩 간격은 30초입니다. 수명이 짧은 포드를 사용하는 경우 스크레이퍼 간격을 15초로 설정하는 것이 좋습니다. 15초 스크레이퍼 간격을 사용하려면 옵션 2를 사용하여 Prometheus 에이전트를 직접 만드십시오.
관리형 컬렉터를 만드는 세 단계는 다음과 같습니다. AWS
-
스크레이퍼 구성을 만드세요.
-
스크레이퍼를 만드세요.
-
스크레이퍼가 지표에 액세스할 수 있도록 EKS 클러스터를 구성하십시오.
1단계: 스크레이퍼 구성 생성
스크레이퍼를 만들려면 스크레이퍼 구성이 있어야 합니다. 기본 구성을 사용하거나 직접 만들 수 있습니다. 스크레이퍼 구성을 얻는 세 가지 방법은 다음과 같습니다.
-
AWS CLI를 사용하여 다음을 호출하여 기본 구성을 가져옵니다.
aws amp get-default-scraper-configuration
-
자체 구성을 생성하십시오. 자세한 내용은 Prometheus용 Amazon 관리형 서비스 사용 설명서의 스크레이퍼 구성 지침을 참조하십시오.
-
Prometheus용 Amazon Managed Service 사용 설명서의 동일한 스크레이퍼 구성 지침에 제공된 샘플 구성을 복사하십시오.
예를 들어 스크레이퍼 구성을 편집하여 스크랩 간격을 수정하거나 스크랩되는 지표를 필터링할 수 있습니다.
분할 비용 할당 데이터에 필요한 두 지표만 포함하도록 스크랩되는 지표를 필터링하려면 다음 스크레이퍼 구성을 사용하십시오.
scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep
스크레이퍼 구성을 구성한 후에는 2단계에서 사용할 수 있도록 base64로 인코딩해야 합니다. 구성은 텍스트 YAML 파일입니다. 파일을 인코딩하려면 https://www.base64encode.org/ 같은 웹 사이트를 사용하십시오.
2단계: 스크레이퍼 만들기
이제 구성 파일이 생겼으니 스크레이퍼를 만들어야 합니다. 전제 조건 섹션에 설명된 변수를 기반으로 다음 AWS CLI 명령을 사용하여 스크레이퍼를 생성합니다. , <EKS-CLUSTER-ARN><SG-SECURITY-GROUP-ID>및 <SUBNET-ID>필드에는 EKS 클러스터의 정보를 사용하고
, <BASE64-CONFIGURATION-BLOB>이전 단계에서 생성한 스크레이퍼 구성으로 바꾸고, <AMP_WORKSPACE_ARN>Prometheus용 Amazon Managed Service 작업 공간
ARN으로 대체해야 합니다.
aws amp create-scraper \ --source eksConfiguration="{clusterArn=
<EKS-CLUSTER-ARN>
,securityGroupIds=[<SG-SECURITY-GROUP-ID>
],subnetIds=[<SUBNET-ID>
]}" \ --scrape-configuration configurationBlob=<BASE64-CONFIGURATION-BLOB>
\ --destination ampConfiguration={workspaceArn="<AMP_WORKSPACE_ARN>
"}
3단계에서 사용하기 위해 scraperId
반환된 내용을 기록해 두십시오.
3단계: 스크레이퍼가 지표에 액세스할 수 있도록 EKS 클러스터를 구성합니다.
EKS 클러스터의 인증 모드가 API
또는 API_AND_CONFIG_MAP
하나로 설정된 경우 스크레이퍼는 자동으로 올바른 클러스터 내 액세스 정책을 갖게 되며 스크레이퍼는 클러스터에 액세스할 수 있습니다. 추가 구성은 필요하지 않으며, 지표는 Prometheus용 Amazon Managed Service로 전달되어야 합니다.
EKS 클러스터의 인증 모드가 API
API_AND_CONFIG_MAP
OR로 설정되지 않은 경우 스크레이퍼가 and를 통해 지표에 액세스할 수 있도록 클러스터를 수동으로 구성해야 합니다. ClusterRole ClusterRoleBinding 이러한 권한을 활성화하는 방법을 알아보려면 Prometheus용 Amazon Managed Service 사용 설명서에서 스크레이퍼 액세스를 위한 EKS 클러스터 수동 구성을 참조하십시오.
옵션 2: 자신만의 Prometheus 에이전트 만들기
AWS 관리형 컬렉터를 사용할 수 없거나 이미 자체 Prometheus 서버가 있는 경우, 자체 Prometheus 인스턴스를 에이전트로 사용하여 EKS 클러스터에서 지표를 스크랩하여 Amazon Managed Service for Prometheus로 보낼 수 있습니다.
자체 Prometheus 인스턴스를 에이전트로 사용하는 방법에 대한 자세한 지침은 Prometheus용 Amazon 관리형 서비스 사용 설명서의 Prometheus 인스턴스를 컬렉터로 사용하기 섹션을 참조하십시오.
다음은 Prometheus 서버 스크랩 간격 및 분할 비용 할당 데이터에 필요한 컨테이너 메트릭을 포함하는 샘플 Prometheus 스크랩 구성입니다. 수명이 짧은 포드를 사용하는 경우 기본 Prometheus 서버 스크랩 간격을 30초에서 15초로 줄이는 것이 좋습니다. 이로 인해 Prometheus 서버 메모리 사용량이 높아질 수 있다는 점에 유의하십시오.
scrape_configs: - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token job_name: kubernetes-nodes-cadvisor scrape_interval: 30s scrape_timeout: 10s kubernetes_sd_configs: - role: node relabel_configs: - regex: (.+) replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor source_labels: - __meta_kubernetes_node_name target_label: __metrics_path__ - replacement: kubernetes.default.svc:443 target_label: __address__ metric_relabel_configs: - source_labels: [__name__] regex: 'container_cpu_usage_seconds_total|container_memory_working_set_bytes' action: keep
Prometheus용 Amazon 관리 서비스 사용 설명서에서 Helm을 사용하여 새 Prometheus 서버에서 수집을 설정한 경우 스크랩 구성을 업데이트할 수 있습니다.
스크랩 구성을 업데이트하려면
-
my_prometheus_values_yaml
가이드에서 편집하고 샘플 스크랩 구성을 블록에 포함하세요.server
-
Prometheus용 Amazon 관리형 서비스 사용 설명서를 사용하여
prometheus-chart-name
다음 명령을 실행합니다.prometheus-namespace
helm upgrade prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace -f my_prometheus_values_yaml
비글로벌 scrape_interval에 대한 자세한 scrape_interval
내용이나 사용 방법은 Prometheus 스크랩 구성을 참조하십시오.
또는 Prometheus 수신기, Prometheus 원격 쓰기 익스포터 및 AWS Sigv4 인증 확장을 갖춘 OpenTelemetry 컬렉터용 AWS 배포판을 사용하여 Prometheus용 Amazon Managed Service에 대한 원격 쓰기 액세스 권한을 얻을 수 있습니다.
참고
Prometheus 에이전트를 설정한 후에는 관리형 컬렉터와 AWS 달리 에이전트를 최신 상태로 유지하고 실행하여 메트릭을 수집해야 합니다.
Amazon 매니지드 서비스의 Prometheus 비용 추정
AWS 가격 계산기를 사용하여 Prometheus용 Amazon Managed Service를 분할 비용 할당 데이터에 사용하는 데 드는 비용을 추정할 수 있습니다.
견적에 맞게 Prometheus용 Amazon 매니지드 서비스를 구성하려면
-
추정 생성을 선택합니다.
-
서비스 추가 페이지의 검색 필드에 Prometheus용 Amazon 관리 서비스를 입력한 다음 구성을 선택합니다.
-
설명 필드에 견적에 대한 설명을 입력합니다.
-
리전을 선택합니다.
-
인프라 세부 정보를 사용하여 비용 계산을 선택합니다. 이 옵션을 사용하면 현재 또는 제안된 인프라 설정을 기반으로 수집, 저장 및 쿼리 샘플 비용을 추정할 수 있습니다.
-
EC2 인스턴스 수에는 전체 통합 결제 패밀리 (모든 계정 및 지역 포함) 의 모든 클러스터에 걸친 EC2 인스턴스의 총 수를 입력합니다. 를 사용하는 AWS Fargate경우 Fargate 작업 수를 EC2 인스턴스 수의 프록시로 사용하십시오.
-
분할 비용 할당 데이터에는 두 가지
container_cpu_usage_seconds_total
지표 (및) 가 필요합니다.container_memory_working_set_bytes
EC2 인스턴스당 Prometheus 메트릭의 경우 2를 입력합니다. -
분할 비용 할당 데이터에 따르면 스크랩 간격은 15초입니다. 지표 수집 간격 (초) 에는 15를 입력합니다. 다른 간격 (예: 30초) 을 사용한 경우 이 간격을 설정한 간격으로 변경하십시오.
-
비용 할당 데이터 분할은 다른 매개 변수에 대한 특정 요구 사항을 부과하지 않으므로 비즈니스 요구 사항에 따라 나머지 입력 매개 변수에 적절한 값을 입력하십시오.
-
저장 및 서비스 추가를 선택합니다.