[Tech Blog] AWS EC2 인스턴스 비용 절감을 위한 실전 가이드

MegazoneCloud

AWS EC2 인스턴스
비용 절감을 위한 실전 가이드

MegazoneCloud
※ 해당 테크 블로그는 작성자의 허가를 받고 리포스팅 되었습니다. ※

들어가며

클라우드를 도입한 이후, 리소스를 과다 또는 과소 프로비저닝하면서 비용 문제를 겪는 고객을 자주 접합니다. AWS는 유연한 클라우드 서비스를 제공하지만, 적절한 관리가 이루어지지 않으면 불필요한 비용이 발생할 수 있습니다. 이번 글에서는 EC2 인스턴스 서비스를 위주로 AWS 비용을 최적화하는 다양한 방법을 소개하고, AWS 네이티브 서비스인 Compute Optimizer의 설정 방법을 살펴보겠습니다. 또한, 메가존클라우드를 통해 제공받을 수 있는 지원 서비스를 함께 알려드리도록 하겠습니다.

AWS 가격 모델 이해하기

AWS 는 각 서비스마다 과금 방식이 다르므로, AWS의 서비스별 가격 정책을 이해하는 것은 비용 최적화의 첫걸음입니다. 이를 제대로 파악하는 것이 중요합니다. 보다 자세한 정보는 AWS 요금 페이지AWS 요금 계산기를 통해 확인할 수 있습니다. 

예를 들어, 컴퓨팅 서비스인 EC2의 경우, 다양한 가격 정책이 있습니다. 온디맨드(On-Demand) 인스턴스는 사용한 만큼 시간당 또는 초당(최소 60초) 요금을 지불하는 방식으로 유연성이 뛰어나지만, 장기적으로는 비용 부담이 될 수 있습니다. 반면, 예약형(Reserved Instances) 인스턴스를 활용하면 1년 또는 3년의 약정 기간 동안 최대 75%까지 비용을 절감할 수 있습니다.

또 다른 옵션인 스팟(Spot) 인스턴스는 AWS의 여유 리소스를 경매 방식으로 이용하여 온디맨드 인스턴스 대비 최대 90%까지 저렴하게 사용할 수 있습니다. 이 외에도 절감형 플랜(Savings Plans)을 이용하면 특정 사용 패턴을 기반으로 장기적인 비용 절감을 기대할 수 있습니다. 서버리스 서비스인 AWS Lambda는 실행 시간과 요청 횟수에 따라 비용이 결정되며 대표적인 스토리지 서비스인 Amazon S3는 저장된 데이터 용량과 요청 횟수에 따라 요금이 책정됩니다.

따라서 현재 사용 중인 서비스가 어떤 방식으로 과금되는지를 정확히 파악하는 것이 비용 최적화의 첫걸음입니다.

EC2인스턴스 비용 최적화를 위한 주요 전략

1. 적절한 인스턴스 선택

AWS에서 인스턴스를 선택할 때, 적절한 타입과 사이즈를 고르는 것이 중요합니다. 우선 실행하려는 서비스나 프로그램이 어떤 리소스를 많이 쓰는지를 파악해야 합니다. 예를 들어, CPU 중심 작업이라면 C 시리즈(예: C6g, C7i)가 적합하고, 대형 데이터베이스나 인메모리 캐시 등의 메모리를 많이 쓰는 용도으로는 R 시리즈(R6g, R7i)를 선택하면 좋습니다. 반면, 일반적인 웹사이트나 애플리케이션 서버라면 M 시리즈(M6g, M7i)가 적당하고, 테스트 환경이나 작은 서비스를 운영한다면 T시리즈(T4g, T3a)가 비용 효율적입니다.

또한 최근들어 AI 워크로드가 많아졌는데, 작업 유형에 따라 다른 컴퓨팅 리소스가 권장됩니다. 딥러닝 모델 훈련에는 P4/P5 GPU 인스턴스 또는 Trainium(Trn1) 이 적합하며, AI 추론은 Inferentia(Inf1/Inf2) 를 활용하면 비용 효율성을 높일 수 있습니다. 변동성이 큰 워크로드나 서버리스 환경에서는 AWS Lambda 또는 SageMaker Serverless Inference를 사용하면 효과적입니다.

이와 같이 EC2 인스턴스를 선택할때 CPU, 메모리 사용량과 함께 스토리지, 네트워크 사양 등을 종합적으로 고려하여 요구되는 리소스 사양에 적합한 타입을 선택합니다. 상세 스펙은  Amazon EC2 인스턴스 유형 페이지에서 확인할 수 있습니다. 또한 동일한 사양이라면, AWS가 자체 설계한 Arm 기반 프로세서(Graviton)를 사용하는 Graviton 기반 EC2 인스턴스를 선택하여 성능을 높이면서 비용을 절감할 수 있습니다. 


2. 사용량 모니터링 및 분석

AWS 네이티브 비용 관리 도구로는 AWS Cost Explorer와 AWS Budgets이 있으며, 리소스 사용량 모니터링을 위해서는 CloudWatch 가 일반적으로 사용됩니다.

(단, AWS Cost Explorer와 AWS Budgets 서비스의 경우 메가존클라우드와 같은 MSP 를 통해 AWS 서비스를 이용하고 있다면, 해당 서비스가 비활성화되어있을 수 있습니다.) 
Cost Explorer는 최대 지난 13개월간의 비용 데이터를 시각화하여 서비스별 사용 현황과 비용 추이를 제공합니다. 이를 통해 향후 12개월 동안의 지출 예측이 가능하며, 예약 인스턴스 등 비용절감을 위한 방법을 찾아볼 수 있습니다. 예를들어 EC2나 RDS 등의 서비스 사용 패턴을 분석하고 비용 최적화에 도움을 받을 수 있습니다.

AWS Budgets는 사용자 지정 예산을 설정하고, 관리하는데 도움을 주는 서비스입니다. 비용 또는 사용량이 예산을 넘거나, 초과가 예상될 때 알림을 제공합니다. 특정 프로젝트나 서비스에 대한 예산을 설정하고, 태그 및 계정, 리소스 유형 등을 기반으로 예산을 관리할 수 있습니다. 또한 예산 초과시 즉각적으로 발송되는 알림을 통해 신속하게 대응할 수 있습니다.

AWS CloudWatch를 활용하면 리소스 사용량을 실시간으로 모니터링할 수 있습니다. AWS CloudWatch 역시 사전에 설정한 임계값을 초과할 경우 알림을 받도록 설정 가능합니다. 예를 들어, EC2 인스턴스의 CPU 사용률이나 메모리 사용량을 모니터링하여 비정상적인 사용 패턴을 감지한다면, 이에 대한 대응 조치도 자동화할 수 있습니다. 이를 통해 리소스의 과다 사용을 방지하여, 사전에 효율적인 비용관리가 가능합니다.


3. 스케일링 및 서버리스 서비스 활용

AWS Auto Scaling은 애플리케이션의 수요 변화에 따라 EC2 인스턴스의 수를 자동으로 조정하여 성능을 유지하면서도 비용을 최적화할 수 있습니다.  Auto Scaling 그룹을 생성하면 최소 및 최대 인스턴스 수를 설정하고, CPU 사용률과 같은 지표를 기반으로 자동으로 인스턴스를 추가하거나 제거 가능합니다.이를 통해 트래픽이 증가하더라도 시스템 성능을 유지하고, 트래픽이 감소하게되면 불필요한 리소스를 줄이므로 비용을 절감할 수 있습니다.

또한, AWS Lambda와 같은 서버리스 기술을 도입하는것도 고려해볼 수 있습니다. AWS Lambda 서비스는 인프라를 관리할 필요 없이 코드를 실행하며, 코드 실행 시간과 요청 횟수에 따라 비용이 부과됩니다. 트래픽이 없을 때는 비용이 발생하지 않기 때문에 실제 사용한 만큼만 비용을 지불한다는 이점이 있습니다. 예를 들어, 이미지 처리나 데이터 변환과 같은 이벤트 기반 작업의 경우 Lambda를 사용하면, 필요할 때만 리소스를 사용하여 비용을 보다 효율적으로 사용할 수 있습니다.

AWS Compute Optimizer를 이용한 EC2 인스턴스 비용 최적화 전략

AWS Compute Optimizer 서비스 활성화

콘솔 → AWS Compute Optimizer→ 시작하기(Get started) 클릭→ 옵트인(Opt in)

옵트인 설정을 활성화 하면 Compute Optimizer는 지난 14일 동안의 Amazon CloudWatch 지표를 분석하여 권장 사항을 무료로 제공합니다. 유료 기능인 Compute Optimizer의 향상된 인프라 지표를 활성화 하게되면 월별 또는 분기별 사용 패턴을 캡처하는 Amazon EC2 또는 Auto Scaling 그룹 권장 사항을 확인할 수 있습니다.

Compute Optimizer 대시보드 확인하기

좌측 탐색 탭 → 대시보드(Dashboard)→View: 리전 선택

Dashboard

주요 항목별 설명

절감 기회(Estimated savings opportunities)
해당 계정을 리소스를 대상으로 Compute Optimizer 권장 사항 적용시, 절감 가능한 월별 총 예상 금액 및 비율(온디맨드 인스턴스 요금 기준)이 표시됩니다.

성능 개선 기회(Estimated performance improvement opportunities)
Compute Optimizer에서 워크로드의 성능 요구 사항을 충족하지 못하는 위험이 탐지된 리소스 수량 및 비율이 표시됩니다.

리소스 유형별 성능 위험
리소스 유형별 성능 위험은 ‘매우 낮음 (Very Low), 낮음 (Low), 중간 (Medium), 높음 (High)’의 네 가지 단계로 나뉩니다. 성능 위험이 ‘매우 낮다’는 것은 현재 인스턴스가 항상 충분한 기능을 제공 할 수 있을 것으로 예측한다는 의미입니다. 성능 위험이 높을수록 현재 리소스가 성능 병목을 유발할 가능성이 크므로 Compute Optimizer의 권장 사항을 고려해 볼 수 있습니다. 

AWS Compute Optimizer
AWS Compute Optimizer는 EC2, Lambda, Fargate 등 다양한 리소스에 대해 ‘과소 프로비저닝(Under-provisioned), 오버 프로비저닝(Over-provisioned), 최적화됨(Optimized)’ 상태로 분류 합니다. 각 리소스의 CPU, 메모리, 디스크 I/O, 네트워크 트래픽 등 지표를 기반으로 과거 14~30일간의 사용 데이터를 머신러닝이 분석합니다. 이를 통해 성능 위험이 높은 리소스는 권장 사항을 검토하고 인스턴스 타입 조정을 고려할 수 있습니다.

Amazon EBS 볼륨
Amazon EBS 볼륨은 프로비저닝된IOPS나 처리량을 워크로드에 적합한지 평가하여,  ‘최적화됨(Optimized), 과 최적화되지 않음(Not Optimized)’로 분류 됩니다.
상용 소프트웨어 라이선스는 사용패턴을 분석하여 ‘ 최적화됨(Optimized), 최적화되지 않음(Not Optimized), 지표가 충분하지 않음(Insufficient Metrics)’로 분류합니다.

리소스 유형별 권장사항 – EC2 인스턴스

좌측 탐색 탭 → 리소스 유형별 권장 사항 (Recommendations) → EC2 인스턴스

EC2 인스턴스의 최적화 결과와 Compute Optimizer에서 생성한 주요 권장 옵션을 확인할 수 있습니다.

인스턴스 ID를 클릭하여 세부 정보를 확인할 수 있습니다.


CPU 아키텍처 설정

드롭다운에서 ‘Graviton(aws-arm64)’ 을 선택하여 AWS Graviton 기반 인스턴스에서 워크로드를 실행할 경우 가격 및 성능 영향을 확인할 수 있습니다. 현재 인스턴스와 동일한 CPU 아키텍처를 기반으로 하는 권장 사항을 보려면 ‘현재(Current)’’를 선택합니다.

(※참고 -AWS Graviton은 AWS가 설계한 맞춤형 ARM 기반 프로세서로 동일 스펙 대비 저렴한 비용으로 EC2 인스턴스를 사용할 수 있습니다. 다만, 도입 시 충분한 테스트를 권장합니다.)


현재 사용 중인 옵션과 권장 사양의 요금, 지표를 비교할 수 있습니다. 권장 옵션을 기반으로 EC2 인스턴스 유형을 변경하여 최적화할 수 있습니다

메가존클라우드와 함께하는 AWS 비용 최적화

지금까지 AWS 서비스의 전반적인 요금 구조와 비용 절감 방안을 살펴보았고, 실제 고객 사례를 통해 AWS Compute Optimizer를 활용한 EC2 인스턴스 비용 최적화 방법도 함께 알아보았습니다.

AWS 프리미어 컨설팅 파트너인 메가존클라우드는 고객의 비용 관리를 돕기 위해 전용 툴과 정기 리포트 등을 제공하고 있습니다. 특히 HyperBilling 서비스는 AWS 전체 사용량을 효과적으로 모니터링하고, 기업 맞춤형 절감 전략을 체계적으로 수립하는 데 유용합니다. 또한, 월간 AWS 사용량이 일정 기준을 초과하는 경우에는 CSM(Customer Success Management)팀의 전문 분석 서비스를 통해 심층적인 비용 최적화 지원도 받아보실 수 있습니다.

빠르고 전문적인 비용 최적화 지원이 필요하시다면, 언제든지 메가존클라우드에 문의해 주세요.

👉🏻 온라인 상담 문의


글 │메가존클라우드, Cloud Tech Unit, AWS Account SA 정은영 매니저

함께 보면 좋을 콘텐츠

re:Invent 2024 에서 소개된 Cost Optimization 신규 기능 확인하기

AWS 101 영문 시리즈 >  Cost Optimization 시청하기

게시물 주소가 복사되었습니다.

이런 콘텐츠도 있어요!