[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