끄적이는 보송

[AWS] AWS Compute Optimizer 본문

STUDY/AWS

[AWS] AWS Compute Optimizer

끄적이는 보송 2023. 1. 30. 17:37
반응형

AWS Compute Optimizer란

클라우드 아키텍처 최적화 작업을 하면서 AWS Compute Optimizer라는 서비스를 알게 되었다. AWS 리소스의 구성 및 사용 지표를 분석하는 서비스라고 한다. 간단히 말하면 EC2 Instance의 경우, 과거 리소스 사용률을 참고해 알맞은 스펙을 권장하는 서비스라고 봐도 된다. 매번 EC2 Instnace의 세부 정보에 보이는 거였는데 이런 서비스인 줄은 몰랐다. 이참에 간단히 정리해 본다.

 

요구 사항

Compute Optimizer 서비스는 과거 CloudWatch 리소스 사용률 이력을 보고 스펙을 권장하는 서비스이다. 그러다 보니 최소한의 데이터는 수집되어야 한다. 도큐먼트에 따르면 최소 30시간(끊김 없이)의 CloudWatch 메트릭 데이터가 쌓여야 한다고 한다. 만약 그럼에도 불구하고 Compute Optimizer의 권장사항이 나타나지 않으면 아직 분석중일 수 있으며 이는 최대 12시간이 소요된다고 한다. 서비스를 활성화하고 조금 시간을 두고 지켜보도록 하자.
[+] https://docs.aws.amazon.com/compute-optimizer/latest/ug/requirements.html

Compute Optimizer 동작 방식

과거 리소스 사용률을 기반으로 스펙을 권장한다. 여기서 무료 버전과 유료 버전이 나뉘며, Compute Optimizer의 디폴트 설정은 Instnace의 지난 14일간의 리소스 사용률을 참고하여 무료로 스펙을 권장한다.

https://docs.aws.amazon.com/compute-optimizer/latest/ug/enhanced-infrastructure-metrics.html#activating-eim-resource-level

Enhanced metrics 활성화를 설정하면 최대 3개월의 CloudWatch 지표 기록을 참고해 보다 알맞은 스펙을 권장한다. 이는 유료 옵션이며, 계산해 보면 한 달간 지속적으로 EC2 Instnace를 운영했다고 치면 약 달마다 0.25 USD가 과금된다. 해당 옵션은 콘솔환경에서도 비활성화 가능하며 언제든지 무료 버전으로 이용할 수 있도록 변경 가능하다.
[+]
https://aws.amazon.com/ko/compute-optimizer/pricing/

고려사항

기본적으로 Instnace의 메모리 지표는 비활성화되어 있다. Optimizer는 CloudWatch 메트리 지표 데이터 기반으로 동작하며, 최적화 대상 Instance의 메모리 지표가 비활성화되어 있다면 Opmizer 고려 대상에 메모리 데이터를 제외하고 권장한다. 이렇게 되면 주로 CPU를 기준으로 측정할 텐데, 그래서인지 몰라도 Optimizer는 비교적 더 저렴한 gravition 계열의 Instance Type을 종종 권장한다. Gravition 계열의 프로세서를 사용할 수 있는지는 사용자가 추가로 조사해야 하는 부분이니 Optimizer는 어디까지나 참고 정도로 해두는 게 어떤가 싶다. 여하튼 CloudWatch agent를 설치해 커스텀 메트릭 비용을 감당할 수 있다면 하는 편이 좋아 보인다.
* 메모리 지표가 기본적으로 비활성화되어 있는 이유 중 하나는 '데이터 프라이버시'와 '공동 책임 모델'에 있다. 이런 이유로 AWS는 기본적으로 인스턴스의 메모리 사용률을 모니터링하지 않는다고 한다. NCP는 그런 거 없이 기본적으로 인스턴스 메모리 지표를 잘만 보여주는데... 뭐... 그렇다고 한다.
[+] https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
[+] https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html

 

Compute Optimizer 비활성화

Enhanced Metric 옵션만 끄면 무료겠지만 Compute Optimer 자체를 비활성화하고자 한다면 콘솔환경이 아닌 CLI 명령어를 통해서만 수행이 가능하다. 당연 CLI 명령어 수행을 위한 권한과 그럴 환경이 받쳐줘야 한다.

aws organizations disable-aws-service-access \
    --service-principal compute-optimizer.amazonaws.com

[+] https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-compute-optimizer.html

이상 간단히 정리해 보았다.

반응형
Comments