brunch

You can make anything
by writing

C.S.Lewis

by Patrick 김도연 Oct 18. 2021

저희는 완전 싼 비용으로 클라우드 구축하고 싶습니다.

WWC (World Wide Cloud)

제가 베트남에서 경험하기에 aws를 처음 구축하시는 고객 사분들은 보통 EC2 1~2대 (Web, Application server), DB 1대, S3 storage로 시작하시는 게 일반적이었습니다. 초기 고객사 월 사용료가 $200~$300로 나올 때 대부분 고객 사분들께 aws가 가성비 대비 최고의 solution이라고 칭찬을 많이 들었는데요. 실 가입자가 늘어나고, 트래픽이 급증하고, 서버가 늘어나고 아키텍처가 실처럼 꼬이면서 갑작스러운 카톡과 전화도 많이 받습니다. “갑자기 요금이 너무 많이 나오는 거 아닙니까?” “이렇게 많이 쓰는데 좀 깎아줘야 하는 거 아닙니까?” 


오늘 WWC (World Wide Cloud)에서는 대부분의 고객사가 알고 있는 AWS의 On-Demand (사용한 만큼 요금)외 요금 체계를 알아보고 어떻게 하면 비용을 줄일 수 있을지 실화(?)를 바탕으로 알아보도록 하겠습니다.



 

AWS 요금 체계의 이해 먼저


아래 그림과 같이 AWS의 장점을 그려 보았는데, 클라우드 사용의 가장 큰 장점은 

“초기 하드웨어, 장비, 라이센스등 구매 비용이 없고 (No CAPEX), 필요한 만큼만 설계 (Elastic)하고, 사용한 만큼만 월 요금을 낸다 (Pay as you go)” 입니다. 



No CAPEX

일반적으로 서버를 IDC (Internet Data Center)에 구성한다고 해도 하드웨어 서버나 네트워크 장비, 각종 소프트웨어 라이센스 (OS, Database, 보안)를 일시불 혹은 임대로 구매해야 하고 초기에 구성을 위해 최소 반나절 이상을 투자해야 합니다. 


Elastic

대부분 기업이 하드웨어 서버를 처음 구매할 때 앞으로 5년 동안 견딜 수 있을 만큼의 빠방한 서버를 구매합니다. 하여 CPU, Memory, HDD (HDD는 데이터의 증가에 따라 업그레이드)는 초기 시스템의 이용률보다 당연히 높게 잡게 되고 CAPEX의 비용은 당연히 높습니다. 


클라우드의 장점은 초기에 필요한 만큼만 설계하고 사용하면서 사용자, 데이터, 트래픽, 워크로드에 따라 Elastic하게 확장해 나갈 수 있습니다. 


IT관리의 최소화와 기업의 핵심 비지니스에 집중 (aws 내부자료)


Pay as you go 사용한 만큼만 과금

aws에서 가장 대표적인 Pay as you go 서비스가 Storage와 CDN라고 할 수 있습니다. 

실제로 클라우드 환경에서는 스토리지 공간을 미리 정해서 미리 구매하는 게 아니라 내가 사용하는 만큼만 매월 요금을 지불합니다. 


예를 들어 서버에 1TB SSD를 미리 구매하고 그 안에서 사용을 하는게 아니라 매월 사용량 (aws S3의 경우 월 사용료가 GB당 $0.025)에 따라 요금이 부과됩니다. 또한 데이터가 1TB 이상 늘어난다고 해도 클라우드에서는 별도의 S3를 추가할 필요없이 늘어난 양만큼, 혹은 줄어든 양만큼 계산되어 요금 청구 됩니다. 


Dell Server의 SSD구매 가격과 Amazon S3 사용료 비교 (www.dell.com)


Amazon CloudFront (CDN)역시 월 전송 1GB당 $0.12부터 청구됩니다. 최초에 OVP (Online Video Platform)이나 OTT (Over The Top)서비스 구축시 상당히 많은 edge 서버를 POP에 미리 구축하고 트래픽 추가시 서버 증설하는 것에 비해 상당한 시간과 비용의 절감입니다. 

On-premise의 Edge 서버 (자료 제공: VNG Cloud)


자주 사용하지 않는 서버는 꺼둘수 있습니다. 

초기에 개발서버를 하나 둘 구성하다 보면 서버도 많아지고 언제부터인가는 개발서버용 EC2, RDS 비용도 무시할 수 없는 수준에 이르게 됩니다. 하지만 대부분의 초기 개발 서버나, Test Bed, QA, 야간 Batch 서버등은 24시간 사용하지 않아도 되고, 정해진 시간에만 on (Start)/off (Stop)함으로써 서버의 비용을 절감할 수 있습니다. 물론 초기 구성 내용은 그대로 보존하면서요. 


AWS EC2는 시간당 서버 비용이 나가는 거라 많은 분들이 서버를 끄면 비용을 줄일 수 있는지 많이 묻습니다. EC2는 서버의 사용 용도, 시간에 따라 on/off가 가능하며 구성도 그대로 유지할 수 있습니다. 예를 들어 개발 Test Bed, QA서버, 야간에 배치 위주의 작업을 하는 서버등은 적절히 on/off를 하시면서 비용을 줄일 수 있습니다. 


고객사 질문

비용을 줄이기 위해 EC2, RDS를 특정 시간에 따라 자동으로 끄고 킬 수 있을까요?


클라우드 상담사

"AWS에서는 EC2, RDS의 자동 스위치 on/off 기능의 API를 제공하고 있습니다. AWS의 경우 EC2 Instance Scheduler라는 솔루션으로 미리 설정된 시간과 요일에 자동으로 EC2를 켜고 끌 수 있습니다. 


자세한 내용은 아래를 참고하시기 바랍니다."

https://aws.amazon.com/ko/solutions/implementations/instance-scheduler/


서버의 용량이 모자란다면 자동으로 scale up 기능

이는 컴퓨팅 파워가 모자랄때 미리 설정한 인스턴스를 자동으로 증설해 주는 개념입니다. 즉, 서버의 로드가 넘어 갔을때 서버를 자동으로 더 증설하라고 명령을 줄 수 있습니다. aws의 기능 중에는 서버를 실시간 모니터링 하는 기능 (CloudWatch)가 있는데, 여기는 서버에 설정한 특정 Thresh hold (예를 들어 CPU 사용률이 90% 초과시) 가 넘어가게 되면 알람을 발생하고 서버의 성능에 따라 EC2를 자동으로 증설하게 하는 AutoScaling이라는 기능을 가지고 있습니다. 


짧은 시간에 집중 사용이 필요하다면 Spot Instance로 

1~6시간 내에 짧은 워크로드나, 갑작스런 peak time 에 해당하는 컴퓨팅 리소스를 확보해야 할때 이용할 수 있는 요금 옵션입니다. 대부분의 회사 업무시간 오전 9시~오후 6시 기준으로는 클라우드 서버와 네트워크의 사용률이 높지만, 야간이나 주말에는 상대적으로 이용률이 적어 남는 서버자원으로 좀더 저렴한 가격에 EC2를 이용할 수 있습니다. 마치 항공권 같은거죠. 비성수기나 한가한 일정 (야간 비행등)에는 비행기값이 내려가고 피크시즌이나 business hour에는 금액이 올라가죠. 


Spot Instance는 주로 밤에 할 수 도 있는 작업 야간의 배치 작업, 이미지 렌더링, 테스트, 웹&데이터 크롤링, 데이터 분석, 처리 등을 활용할 수 있습니다. Spot Instance는 입찰 가격을 정해놓고 저렴한 가격을 이용하는 서비스라 다른 더 높은 입찰 가격을 제시한 사용자에게 인스턴스를 뺏길 수 있습니다. 


마치 KTX를 입석 티켓으로 빈 좌석에 앉아서 가다가 좌석 티켓 주인이 나타나 ‘내 자린데요?’ 하면 얄짤없이 좌석을 내줘야 하는 느낌입니다. 



그럼 어떻게 하면 클라우드 비용을 줄일 수 있나요?

계속 쓰는 서버는 RI로 1분만에 전환

AWS는 RI (Reserved Instance)예약 구매 할인이 있는데요. 

일정한 시간을 약정해 두고 그 기간동안 EC2나 RDS를 사용하면 할인을 받을 수 있는 프로그램입니다. 마치 일반 렌탈과 같이 약정 기간이 길면 할인율도 높아 집니다. 


1~3년 단위로 이지만 1년단위 No upfront (선불 없이)로 구매하시는 경우가 가장 많습니다. RI가 적용되는 서비스는 RDS, RedShift, ElasticSearch, ElasticCahe 등입니다. 


RI를 사용하시고 싶다면 AWS console에 로그인 하시고 현재 Instance를 검새하여 RI를 쉽게 변경할 수 있습니다. 

https://aws.amazon.com/ko/ec2/purchasing-options/reserved-instances/getting-started/


AWS Console에서 RI 변경하기


클라우드 상담사

"많은 분들이 기존 On-Demand를 RI로 바뀌면 세팅을 다시해야 하는지 물으시는데 할인 요금만 적응하는것이지 EC2나 RDS를 새로 구성하실 필요는 없습니다. 


단, RI를 구매하시면 해당 약정기간동안 다른 EC2 Type 변경이나 취소, 환불등이 불가능하므로 신중하게 선택하셔야 합니다." 



• 표준 (Standard) RI 

표준 RI는 일정한 사용하는 EC2나 RDS에 적용합니다. 1년 혹은 3년 약정 등으로 가격 할인을 30% 이상 받으실 수 있습니다. 단 한번 설정하시면 약정기간동안 교환, 환불, EC2 type 변경이 불가능합니다. 


• 컨버터블 (Convertible) RI

RI할인률 보다는 적지만 약정기간 동안 RI 속성을 변경할 수 있습니다. EC2, RDS의 Type 변경 및 OS 변경 (Windows, Linux)도 가능합니다. (단, 교체하려는 EC2 type이 이전 type보다 높거나 금액이 높아야 합니다 -_-) 


• 예정된 (Reserved) RI:

일정한 예약한 시간 범위 내에서 인스턴스를 시작할 수 있습니다. 즉 EC2나 RDS를 지정된 시간에만 사용하겠다고 설정하고 약정 기간을 설정하여 할인을 받을 수 있습니다. 


RI 지불옵션은 No upfront (선불 없음), All upfront (모두 선불), Partial Upfront (일부 선불)에 따라 할인율이 차이가 많습니다.


할인율을 비교해 보기 위해 임의의 EC2를 선정하여 대략적인 가격을 아래와 같이 비교해 보았습니다. 약정이 길고 선불을 미리 납부하시면 할인율이 높지만, 처음 사용하시는 aws 고객분에게는 안전하게 RI Convertible 1년, No upfront로 추천드립니다. 

https://aws.amazon.com/ko/ec2/purchasing-options/reserved-instances/getting-started/


RDS와 Serverless 로 바꾸자

AWS 사용 고객중에 Database 사용률이 많이 나와서 고민하시는 분들이 많으십니다. 일반적으로 EC2 RDS 의 경우 다른 EC2 보다 사양이 높고, 이중화 구성으로 다른 Web Server, Application 용 EC2보다는 금액이 높습니다. 

이런 고객님들에게는 현재 사용하고 계시는 DB (Oracle, MySQL, MS-SQL, PostgreSQL..)등을 Amazon Aurora RDS나 NoSQL 제품인 DynamoDB로 서서히 변경하실 것을 추천드립니다. 이 두개의 제품은 AWS의 완전 관리형과 Serverless database입니다. 


Serverless라는 말대로 위의 RDS for MySQL 나 RDS for PostgreSQL 에서의 EC2를 선택(구매)할 필요가 없이 서버 없이Database가 소비하는 Storage, 컴퓨팅 용량 및 I/O에 대한 요금만 지불하면 됩니다. (실제로 서버는 존재하지만 개발자의 업무에서 사라지는 것처럼 보여 서버리스 혹은 서버리스 컴퓨팅이라고 불리고 EC2 가상 머신에 대한 월 고정 사용료를 지불하지 않아도 됩니다)


또한 MySQL, PostgreSQL과 완벽히 호환, 성능면에서 5배 이상 빠른 속도를 냅니다.경제적인 면에서 Aurora DB의 #Serverless 의 가장 큰 장점은 서비스를 사용할 때만 요금이 부과되고 Database의 license 비용이 전혀 들지 않는다는 점입니다. 


RI보다 더 유연한 선택 Savings Plans

Savings Plan은 RI와 같이 1년 또는 3년동안 시간당 사용 비용을 약정하여 EC2와 Fargate, Lambda 사용량에 대해 저렴한 가격을 제공하는 할인 모델입니다. ($/시간 단위로 약정 가능)


RI와 유사하지만 적용되는 서비스 대상이 다양하고, RI Convertible과 같이 약정기간에도 EC2 Type, OS, Region, Tenancy 등을 변경할 수 있는 좀더 flexible한 할인입니다. 할인율은 RI와 비슷하거나 좀더 낮은 수준입니다. 할인 대상은 아래와 같이 EC2, Fargate, 최근 추가된 SageMaker가 있습니다. 

(RDS는 Savings Plans에 포함되지 않는 점 유의하세요)


특히 Compute Savings Plans을 선택하시면 정해진 약정 기준에 따라 EC2, Fargate, Lambda등의 compute option을 이동하면서 사용하실 수 있습니다. 

AWS Savings Plan 할인


Savings Plans 사용을 위해서는 

AWS Console > AWS Cost Management > Savings Plans > Recommendation

으로 가시면 아래 화면과 같이 AWS에서 자동으로 recommendation 해주는 정보를 바탕으로 Savings Plans을 바로 선택하실 수 있습니다. 


위의 동일 EC2사양으로 RI, Savings Plans을 비교해 보면 아래와 같이 Savings Plans의 EC2 Compute는 RI Convertible (1년, 선납없이)와 EC2 Instance Savings Plans은 RI Standard (1년, 선납없이)와 동일한 할인율이 나오는 것으로 보실 수 있습니다. 



베트남에서는 Savings Plans을 많이 사용하고 있지는 않습니다. Savings Plans나 RI나 비슷한 서비스, 할인율이고, 오히려 Savings Plans이 RDS를 지원하지 않으니 RI를 더 선호합니다.


MSP 파트너에게 할인받자


e-commerce나 Media service (OTT, OVP)를 직접 웹서버나 스트리밍 서버를 EC2에 구축하여 쓰신다면 상당한 트래픽과 Data Transfer비용이 발생합니다. Amazon CloudFront는 이러한 이미지, 영상들의 캐싱을 전 세계 Amazon POP (edge server)에 배포하여 자동 sync해 주는 서비스입니다. 


CloudFront는 AWS MSP 파트너를 통해 일정 기간 약정을 하면 할인 (Capacity Reserved)를 받으실 수 있습니다. 


또한 AWS MSP 파트너 사는 고객사의 초기 아키텍쳐 설계 및 컨설팅, 자체 빌링 솔루션, 초기 요금 설계, 사용료 실시간 모니터링 및 예측, 요금 최적화 서비스를 제공하고 있습니다. 

MegazoneCloud에서 제공하는 Hyper Billing 솔루션


그외에 AWS Console에서 제공되는 Cost Explorer나 Trusted Adviser를 사용하셔도 요금에 대한 분석, Recommendation을 받으실 수 있습니다. 


마무리하며

이상으로 AWS 대표적인 할인 서비스 대상을 아래와 같이 그려 보았습니다.


AWS 할인 정책 구분


그림에서 보시는 것과 같이 과거와 현재 EC2가 가장 많이 사용되고 있고 EC2에 대한 할인이 상대적으로 많지만 향후 Serverless, Container 서비스가 확대된다면 Savings Plans이 더 다양해 지지 않을까 예상이 됩니다.


과거에 IDC를 사용하셨다면 월별로 고정된 비용 (서버임대 or 코로케이션 비용)만 청구되지만 클라우드에서는 사용량에 따라 비용이 매월 달라지기 때문에 예상치 못한 일들로 인해 비용도 예상치 못하게 급증하는 경우들이 생깁니다. 


위의 여러가지 비용을 줄이는 방법을 소개해 드렸지만 가장 중요한 것은 초기에 푼돈이 큰 청구서로 불어나지 않게 (Every penny it’s worth) 개발자는 불필요한 서버는 정리하고, 무분별하게 서버를 늘리는 일이 없도록 IT관리자가 관리를 해야 합니다. 즉, 아무리 tool이 뛰어나다 해도 사람이 직접 모니터링을 보면서 하면서 매월 사용 패턴을 분석하고 가격과 성능을 최적해야 합니다. 


아울러 Amazon이 제공하는 할인과 MSP 파트너의 추가 할인도 알아보시면 능동적으로 자사의 클라우드 시스템을 설계하는 것이 중요합니다. 


#aws #aws비용 #베트남클라우드 #aws구축 #serverless #서버리스 #RDS #aurora #DynamoDB #S3 #EFS #EBS #onpremise #IDC #로컬클라우드 #aws초보 #aws기본 #glacier #VPC #Cloudfront #CDN #MSP #RI #CFRC #savingsplans #s3가격

이전 21화 우리 사장님도 아셔야 할 클라우드 1편- AWS
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari