[AWS] Amazon Managed Prometheus (AMP)

AWS๋Š” Prometheus๋„ ๊ด€๋ฆฌํ˜•์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.
์“ฐ๋Š” ์‚ฌ๋žŒ์€ ์ž˜ ๋ชป๋ณธ ๊ฒƒ ๊ฐ™๋‹ค๋งŒ, ์•„๋ฌดํŠผ ์žˆ๊ธด ์žˆ๋‹ค.

์‚ฌ์‹ค prometheus ์“ธ ์ •๋„๋ฉด ๋ณดํ†ต ์ฟ ๋ฒ„ ์˜ฌ๋ฆฌ๊ณ  ์ง์ ‘ ๊ด€๋ฆฌํ• ํ…Œ๋‹ˆ ๊ตณ์ด ์ด๊ฑธ ์ฐพ๋Š” ์‚ฌ๋žŒ์ด ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์•ฝ์–ด๊ฐ€ ์™”๋‹ค๊ฐ”๋‹ค ํ†ต์ผ์ด ์•ˆ๋œ๋‹ค.
์—”๋“œํฌ์ธํŠธ ๋ ˆ๋ฒจ์—์„œ๋Š” aps๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ฌธ์„œ์—์„œ๋Š” amp๋ผ๊ณ  ํ•˜๊ณ  ๊ทธ๋Ÿฐ๋‹ค.




๋น„์šฉ

ํ”„๋กœ๋น„์ €๋‹์ด ์•„๋‹ˆ๋ผ ์„œ๋ฒ„๋ฆฌ์Šค์ฒ˜๋Ÿผ ์˜จ๋””๋งจ๋“œ ์š”๊ธˆ์ด ๋‚˜์˜ค๋Š”๊ฒŒ ํŠน์ง•์ด๋‹ค.
Thanos ๊ฐ™์€๊ฑธ ๊ตฌ์„ฑํ•  ํ•„์š” ์—†์ด ์•Œ์•„์„œ HA ๋ณด์žฅํ•ด์ฃผ๊ณ , ๋•Œ๋ฆฌ๋Š”๋Œ€๋กœ ๋‹ค ๋“ค์–ด๊ฐ„๋‹ค.
https://aws.amazon.com/ko/prometheus/pricing/


๊ทธ๋Œ€์‹  ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜, ๊ทธ๋ฆฌ๊ณ  ์ €์žฅ๊ณต๊ฐ„ ๋“ฑ์œผ๋กœ ๋น„์šฉ์„ ๋งค๊ธด๋‹ค. ์“ด๋งŒํผ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค.
์ €์žฅ๊ณต๊ฐ„ ๋น„์šฉ์€ ์••์ถ•๋œ ์ตœ์ข… ํฌ๊ธฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ณ , ๋กœ๊ทธ๋Š” ๊ธฐ๋ณธ ์„ค์ •๊ฐ’์œผ๋กœ 150์ผ๊นŒ์ง€๋งŒ ์ €์žฅ๋œ๋‹ค.


๋ฌด๋ฃŒ ์‚ฌ์šฉ๋Ÿ‰๋„ ์กฐ๊ธˆ ์žˆ๋‹ค.

์ ๋‹นํ•œ ์‚ฌ์šฉ๋Ÿ‰์—์„œ๋Š” ๋ฉ”๋ฆฌํŠธ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.




Workspace ๋งŒ๋“ค๊ธฐ

์ง์ ‘ ๋งŒ๋“ค๊ณ  ์จ๋ณด์ž.

ํด๋Ÿฌ์Šคํ„ฐ ์ž์ฒด๋Š” ์ด๋ฆ„๋งŒ ์ •ํ•˜๋ฉด ๋ฐ”๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์‰ฝ๋‹ค.

์กฐ๊ธˆ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๊ณ 

์—”๋“œํฌ์ธํŠธ๋„ ์—ด๋ฆฐ๋‹ค.


๊ทผ๋ฐ ์ด ์—”๋“œํฌ์ธํŠธ๋Š” ๋ณ„๋‹ค๋ฅธ ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ ์—†์ด๋Š” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
์ ‘๊ทผํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค.




with EKS

์–ด์งธ์„œ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, AWS ๋ฌธ์„œ๋‚˜ ๊ธฐํƒ€ ์‚ฌ์šฉ์‚ฌ๋ก€๋“ค์—๋Š” EKS๋ฅผ ์ƒ์ •ํ•œ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•๋งŒ์ด ๋‹ค๋ค„์ ธ์žˆ๋‹ค.
EC2๋‚˜ ECS Fargate, ๋‹จ์ˆœ ์˜จํ”„๋ ˆ๋ฏธ์Šค์—์„œ ์ด๊ฑธ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.

๋‹ค์Œ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด EKS์—์„œ AMP๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html




sigv4๋กœ ์ง์ ‘ ์—ฐ๊ฒฐํ•ด๋ณด๊ธฐ

์นœ์ ˆํ•˜๊ฒŒ ์•ˆ๋‚ด๋ฅผ ํ•ด์ฃผ์ง€๋Š” ์•Š์ง€๋งŒ, EKS ๋ฐ–์—์„œ๋„ ์‚ฌ์šฉ ์ž์ฒด๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.
์ด๊ฑด ๋‹ค๋ฅธ DB๋“ค์ฒ˜๋Ÿผ ๋ณด์•ˆ๊ทธ๋ฃน์œผ๋กœ ๊ฑฐ๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  sigv4๋กœ ์ธ์ฆ์„ ๊ฑฐ์ณ์„œ ์ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๊ฑฐ๋Š” ์ง์ ‘ ํ•˜๋ ค๋ฉด ์ข€ ๋ณต์žก์Šค๋Ÿฝ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ–๋‹ค์“ฐ๋Š”๊ฒŒ ํŽธ๋ฆฌํ•˜๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” ์ผ๋‹จ aws-cli์™€ awscurl๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์—ฐ๊ฒฐ ๋˜๋Š” ๊ฒƒ๋งŒ ๋ณด์—ฌ๋ณด๊ฒ ๋‹ค.

์šฐ์„  aws ๊ณ„์ •์ด๋‚˜ role์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  prometheus์—๋„ ์ „์šฉ ๊ถŒํ•œ์ด ๋”ฐ๋กœ ์žˆ๋‹ค.

ํ•„์š”ํ•œ ๊ถŒํ•œ๋“ค์€ ์ง€๊ธˆ ์‚ฌ์šฉํ•  User/Role์— ๋ถ™์—ฌ์ค˜์•ผ ํ•œ๋‹ค.
๋‚œ ์ง€๊ธˆ ๋‹จ์ˆœ ์ฟผ๋ฆฌ๋งŒ ์ด๋ณผ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— QueryAccess๋งŒ ๋‹ฌ์•„์คฌ๋‹ค.

๊ทธ๋ฆฌ๊ณ 

awscurl์„ ๊น”์•˜๋‹ค. ๋ณต์žก์Šค๋Ÿฐ sigv4 ์ธ์ฆ์„ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” curl์™€ ๋น„์Šทํ•œ ๋„๊ตฌ๋‹ค.
์ด๊ฑธ ๊ธฐ๋ฐ˜์œผ๋กœ ํ† ํฐ๊ฐ™์€๊ฑฐ ๋ฝ‘๊ณ  ์ตœ์ข… ์—”๋“œํฌ์ธํŠธ์— ์ด์ค˜์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ๋А๋‚Œ์œผ๋กœ ์š”์ฒญ์„ ์˜๋ฉด ๋œ๋‹ค.

awscurl --region ap-northeast-2 --service aps "...์—”๋“œํฌ์ธํŠธ/api/v1/query?query=prometheus_api_remote_read_queries"

์‘๋‹ต์ด ์ž˜ ์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

remote-write๋„ ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, json๋„ ์•„๋‹ˆ๊ณ  protobuf๋กœ ๋ง์•„์„œ ๋ณด๋‚ด์•ผ ํ•˜๋Š”๋ฐ๋‹ค ์ข€ ์ •์‹ ์—†์–ด์„œ ๊ตณ์ด ๋” ๋‹ค๋ฃจ์ง€๋Š” ์•Š๊ฒ ๋‹ค.
๊ทธ๋ƒฅ ์—์ด์ „ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ–๋‹ค์“ฐ๋ฉด ๋œ๋‹ค.

์—์ด์ „ํŠธ๋“ค ๋ณด๋ฉด ์ด๋Ÿฐ ์‹์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค.

remote_write:
  - url: "http://.../remote_write"
    sigv4:
       region: ap-northeast-2
       access_key: ACCESSKEY
       secret_key: SECRETKEY


์ฐธ์กฐ
https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html
https://aws.amazon.com/ko/prometheus/pricing/
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/application-metrics-prometheus.html
https://docs.aws.amazon.com/ko_kr/prometheus/latest/userguide/AMP-compatible-APIs.html
https://discuss.prometheus.io/t/prometheus-remote-write-to-amp/215/3