BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT
최신 리포트 다운로드 지금 바로 문의하기
BESPIN Tech Blog
BESPIN Tech Blog
  • Tech
    • CSP
      • AWS
      • GCP
      • NCP
    • Cloud
      • Migration
      • LZ, Control Tower
      • Backup
      • Monitoring
      • Container
    • Infra
      • OS
      • Middleware
    • Data
      • RDB
      • Big Data Platform
    • Application
      • CI/CD
  • Trend
  • IT
  • Contact US
TECHContainerCloudAWS

Amazon Managed Prometheus

by 형래 김 2023년 11월 24일
2023년 11월 24일
14

안녕하세요, 오늘은 베스핀글로벌 SRE실 권대욱님이 작성해주신 Amazon Managed Prometheus에 대해 알아봅니다.

궁금한 부분이 있으시면 편하게 댓글을 달아주세요 🙂

1. Overview

이 문서에서는 Amazon Managed Prometheus 사용 방법에 대해 가이드한다.

2. Prerequisites

  • AWS EC2
  • AWS Prometheus
  • Prometheus, Grafana, node-exporter
  • IAM Role

3. Goals

  • AWS Prometheus의 사용법을 숙지하고, 이점에 대해 파악한다.
  • AWS Prometheus workspace를 생성한다.
  • EC2에 prometheus와 Grafana, node-exporter를 설치한다.
  • 수집된 데이터를 AWS Prometheus workspace로 전송한다.
  • Grafana의 data source를 AWS Prometheus workspace로 지정한다.
  • 구성도

4. Environment details

– 테스트하기에 앞서, 필요한 Prometheus, Grafana, node-exporter를 준비한다.

  • grafana-8.0.3-1.x86_64.rpm
  • node_exporter-1.2.0.linux-amd64.tar.gz
  • prometheus-2.35.0.linux-amd64.tar.gz

5. AWS Prometheus

– AWS Prometheus workspace를 생성하여, 수집되는 데이터 저장소를 생성한다.

6. Create EC2 & IAM Role

– AWS Prometheus 사용을 위한 정책과 EC2 list를 가져올 수 있는 정책을 가진 Role을 생성한다.

– EC2를 생성하여, 생성한 IAM role을 적용한다.

7. Install Prometheus

– Prometheus가 데이터를 수집할 node-exporter 설정과 데이터를 전송할 AWS Prometheus를 설정하여 구동될 수 있도록 한다.

Step1. Modify Prometheus.yml

  • 다운받은 소스를 압축 해제하여, Prometheus.yml 파일을 수정한다.
  • ec2_sd_configs를 통하여 해당 region의 해당 tag를 가진 ec2 목록 중 node-exporter port인 9100포트로 통신이 되는 인스턴스들에 대해 데이터를 scrape 하도록 설정한다.
  • Remote_wirte 설정을 통해 AWS Prometheus로 데이터를 전송할 수 있도록 설정한다.

Step2. Check ExecStart option

  • Prometheus 실행 시 옵션에 대해 체크한다.
  • step1에서 설정한 yml 파일을 –config.file 옵션에 지정해준다.
  • –storage.tsdb.path을 통해 data가 저장될 위치를 지정해준다.
  • 이외에 Prometheus 실행 옵션이 굉장히 많으며, 공식 문서를 통해 원하는 옵션을 추가하여 구동하여도 좋다.

Step3. Start Prometheus

  • systemctl start Prometheus를 통해 구동한다.
  • 구동 후 정상 실행되었는지 확인한다.

8. Install Node-exporter

– 여러 ec2의 데이터 수집을 위해 prometheus가 설치된 ec2와 새로운 ec2에 node-exporter를 설치한다.
– 다운받은 node-exporter 소스를 압축 해제하여 실행한다.
– 실행 후 9100 포트가 올라오고 정상 실행되었는지, 체크한다.

9. Install Grafana

– Sigv4 사용을 위해 grafana는 7.3.5 버전 이상으로 다운로드한다.
– rpm으로 다운받은 Grafana를 yum install을 통해 설치한다.

Step1. Modify Grafana.ini

– Sigv4 인증 절차를 위해 /etc/grafana/grafana.ini 설정 파일에서 주석 해제 및 true로 변경한다.

  • sigv4_auth_enabled = true

Step2. Start Grafana

– systemctl start grafana 를 통해 구동한다

  • 구동 후 정상 실행되었는지 확인한다.

10. Check Prometheus Data

– Prometheus가 연동이 잘되었는지, instance들의 정보는 잘 가져오는지 체크한다.

Step1. Check Target

– Prometheus 설정 중 scrape 을 이용하여 정상적으로 target이 등록되었는지 확인한다.

  • http://ADDRESS:9090/targets

Step2. Check Target metric data

– 설정된 target들의 metric data가 정상 수집되는지 체크한다.

  • http://ADDRESS:9090/graph

Step3. Check connect AWS Prometheus

– 설치된 prometheus와 AWS prometheus가 정상적으로 연동되면 로그에 아래와 같이 정상 연동되는 것으로 출력된다

– Role이 연결이 안되었거나, policy가 잘못 적용된 경우 아래와 같이 403권한 에러가 발생한다.

– 이외에 AWS prometheus의 remote_write url을 잘못 입력하여도 연결이 실패한다.

Step4. Check Grafana

– 설치된 grafana에 접속하여 data source를 AWS Prometheus로 연결한다.

– URL의 경우 AWS prometheus의 endpoint 주소의 끝부분인 /api/v1/~~ 부분을 모두 삭제하고 입력한다.
– Grafana 실행 시 활성화한 sigv4 auth를 이용하여 aws key를 통해 AWS와 연동한다.

Step5. Check Grafana from AWS Prometheus

– 해당 설정까지 완료되었다면, grafana는 AWS Prometheus와 연동된 상태이다.
– 이제 grafana에서 promql을 이용하여 질의 시 가져오는 데이터는 AWS Prometheus의 데이터가 된다.
– 실제 AWS Prometheus가 데이터를 잘 저장하는지 체크해본다.
– Grafana explore에서 간단한 metric을 이용하여 데이터를 잘 가져오는지 확인한다.

– 위의 사진과 같이 query 진행하였을 때 데이터를 가져온다면 AWS Prometheus에 데이터가 잘 저장이 되었으며, grafana와의 연동도 정상인 것으로 확인할 수 있다.

  • 공개된 dashboard json을 import한 모습은 아래와 같다.

11. Conclusion & Consideration

Conclustion
  • Amazon managed Prometheus 이점
  1. 수집 및 쿼리 요구 사항이 증가함에 따라 자동으로 확장
  2. 수백만개의 고유한 시계열 지표를 처리하면서 일관된 쿼리 응답 시간을 유지
  3. AWS 리전 내에서 다중 AZ 복제를 제공
  4. AWS 및 온프레미스의 모든 자체 관리형 Kubernetes 클러스터에서 측정 항목을 안전하게 수집, 알림 및 쿼리할 수 있는 API도 포함
  5. Prometheus 서버를 구성, 업그레이드 및 크기 조정하는 데 따른 운영 비용을 크게 절감
  • 개인 의견
  1. 기존 독립형 Prometheus를 운영할 때의 경우 데이터가 많아질수록 많은 리소스가 필요하였습니다.
    특히 메모리 부족 시 WAL 파일에 문제가 발생하며, 일정 기간의 데이터를 삭제할 수밖에 없는 상황도 있었습니다.
  2. 장기간의 데이터를 쿼리할 경우 지연 시간이 발생하며, 서버에 부하가 발생하는 현상도 존재하였습니다.
  3. 이러한 문제점을 AWS에서는 자동으로 리소스를 확장하며 일관된 응답 시간을 유지해주고, 서버의 리소스 부담에 대해 자유로워질 수 있어서 강력한 이점으로 생각합니다.
  4. Prometheus는 기본적으로 HA구성을 지원하지 않기 때문에, HA 구성을 하려면 thanos를 같이 사용해야 합니다.
  5. Prometheus가 AWS 계정별 서비스별로 여러 개가 존재할 경우 개별 prometheus에서 AWS prometheus에게 데이터를 전달하여 데이터를 중앙에서 관리하며, 그라파나에서는 중앙에 집계된 AWS prometheus의 데이터만 사용하기 때문에, HA 구성을 위한 별도의 thanos 구성이 불필요하다는 이점도 있습니다.
Consideration
  1. AWS prometheus는 다수의 prometheus에서 수집된 데이터를 저장하게 되는데, 그라파나에서 서비스 별 또는 계정 별 데이터를 시각화하려면, PromeQL 작성에 주의가 필요할 것으로 판단됩니다.
  2. AWS prometehus workspace 콘솔에서 데이터를 정상적으로 잘 전달받고 있는지, 체크할 수 있는 부분은 없습니다.
    이로 인해 데이터가 잘 전송되고 있는지, 한눈에 쉽게 파악할 수 없고, 개별 prometheus에서 로그를 통해 확인이 필요합니다.
    해당 부분은 추후에 AWS에서 개선이 되지 않을까 생각됩니다.

감사합니다 🙂

Written by 권 대 / Daewook Kwon

Cloud Engineer

관련

dataec2IAMNodePrometheusExporterinstallprometehusexploreManaged

HOT Trend

Recent Posts

  • 딜로이트도, 맥킨지도, 베스핀글로벌도: AI 에이전트로 일 바꾸는 시대

    2025년 07월 04일 클라우드베스핀글로벌clouddata데이터AI인공지능HelpNow AIbespinglobalAI에이전트helpnow업무자동화딜로이트
  • ⚔️데이터센터에서 시작된 전쟁? 요즘 뜨는 AIDC 개념부터 트렌드까지!

    2025년 06월 27일 클라우드clouddata데이터AI데이터센터클라우드 데이터센터bespinglobalAIDCAI 인프라베스핀글로벌
  • 구글부터 엔비디아까지, 빅테크 기업들의 AI 전략 최신본📖

    2025년 06월 20일 cloud베스핀글로벌클라우드data데이터AI구글마이크로소프트엔비디아AI에이전트google I/ONVIDIA GTC 2025Microsoft build 2025
  • AI를 연결한다고? 업계가 주목하는 ‘MCP’ 알아보기🔍

    2025년 06월 13일 베스핀글로벌클라우드cloudAIMCP
  • [WhaTap] RDS Failover/Reboot 관제 2 – RDS Failover

    2025년 05월 30일 RDSRDS FailoverRebootFailoverbespin global

베스핀글로벌은 모든 기업의 AI 혁신을 실현하기 위해, 세상에서 가장 혁신적이고 자동화된 AI 서비스와 솔루션을 만들어갑니다.
상호 : 베스핀글로벌 주식회사 ㅣ 대표자명 : 김써니, 허양호 ㅣ 사업자등록증번호 : 638-87-00223 ㅣ 통신판매번호 : 2019-서울서초-0347 ㅣ 대표전화 : 1668-1280
사업장주소지 : 서울특별시 서초구 강남대로 327, 13,14,15,16층(서초동,대륭서초타워) ㅣ 이메일 : info@bespinglobal.com ㅣ 개인정보 처리방침 ㅣ 개인정보 처리방침 안내

© 2026 BESPIN GLOBAL, All Rights Reserved.

BESPINGLOBAL
패밀리 사이트
China MEA SEA US

BESPIN Tech Blog
  • Home
  • Tech
    • CSP

      AWS

      GCP

      NCP

      Cloud

      Migration

      LZ, Control Tower

      Backup

      Monitoring

      Container

      Infra

      OS

      Middleware

      Data

      RDB

      Big Data Platform

      Application

      CI/CD

      BESPICK 구독하기 ㅣ 1668-1280

  • Trend
  • IT