top of page

인프라 구축 전 AWS 예상 비용 산출부터 비용 최적화 방안까지 - 1편

인프라 구축 전 AWS 예상 비용 산출부터 비용 최적화 방안까지 ① AWS의 대표적인 서비스 소개

인프라 구축 전 AWS 예상 비용 산출부터 비용 최적화 방안까지 - 1편

Written by Jongho Son


<목차>

  1. AWS의 대표적인 서비스 소개

    1. 예상 스펙 선정하기

      1. EC2 (가상 서버)

      2. EBS (블록 스토리지)

      3. RDS (데이터베이스)

  2. 부하 테스트 진행 및 AWS 비용 계산기 사용하기 (2편)

  3. 서비스 출시 후 비용 최적화 방안 (3편)

  4. 마무리 (3편)



※ AWS를 처음 다뤄 보시는 분들을 위한 가이드입니다.
가이드를 시작하기 앞서 아래 스마일샤크 블로그를 참고하시면 이해하시는 데 도움이 됩니다.
1. 초보자를 위한 VPC 가이드 : VPC와 프라이빗 클라우드
2. AWS의 대표적인 10가지 서비스

글로벌 사용자를 위한 빠르고 민첩한 인프라 구축 및 배포를 위해 AWS에서는 다양한 서비스를 제공하고 있습니다. 서비스가 많은 만큼 사용하는 방식도 다양해 많은 고객 사례들이 있습니다.


그 중에서 스마일샤크와 함께하고 있는 고객의 모범 사례들을 바탕으로 AWS를 처음 다뤄 보시는 분들께 공유해 드리려고 합니다.


이번 포스팅에서는 AWS 구축 전 예상 비용을 산출하는 방법과 서비스 출시 후 비용 최적화를 할 수 있는 방안들에 대해 말씀드리겠습니다.


AWS에서 인프라를 구축하고 실제 애플리케이션을 배포하기 전에 비용을 정확히 예측하려면 고려해야 할 것이 한두 가지가 아닙니다. 또한 AWS의 다양한 서비스를 사용할 계획이신 경우 많은 변수를 고려해야 하므로 당장 사례 별로 말씀드리기는 어렵습니다. 그렇기 때문에 이번 포스팅에서는 컨설팅 시 가장 기본적으로 권장해 드리는 서비스인 EC2와 RDS만 다뤄보도록 하겠습니다.



1. AWS의 대표적인 서비스 소개


AWS 도입을 고민하고 계신 분들을 만나면 가장 많이 하시는 질문 중 하나가 ‘비용이 어느 정도 발생할까요?’입니다. 그중에서도 동시 접속자 수(CCU) or 월별 사용자 수(MAU)를 기준으로 문의하시는 경우가 가장 많았습니다. 그러나 사용자 수를 바탕으로 AWS 예상 비용을 바로 말씀드리는 것은 쉽지 않은 일입니다.

aws 비용이 어느 정도 발생할까요?
출처: https://community.rememberapp.co.kr/post/35076

예를 들어 SaaS 서비스를 제공하는 업체 A와 B의 CCU나 MAU가 비슷하다고 가정해 보겠습니다.


CCU나 MAU가 비슷하다고 해서 개발 로직 및 아키텍처가 같다고 할 수는 없습니다.


그렇기 때문에 비용이 상이한 경우가 많고, 비슷한 기능의 서비스를 제공하더라도 반드시 PoC(Proof of Concept) 과정이 필요하며 일반적으로 지금부터 말씀드리는 프로세스를 권장 드립니다.


1) 예상 스펙 선정하기

① EC2(가상서버)

우선 PoC를 진행하기 전 AWS에서 제공하는 가상 서버인 Amazon EC2에서 코어(vCPU) 및 메모리(GiB) 사이즈를 정하여 스펙을 준비해야 합니다. 스펙을 정하실 때 어떤 패밀리 타입을 선택할지 고민이 되실 텐데요,

EC2 타입 : 범용 M or T Family,  컴퓨팅 최적화 - C Family,  메모리 최적화 - R Family

가장 많이 사용하고 있는 타입은 일반적인 워크로드에 적합한 범용 인스턴스 M or T Family부터 vCPU를 중심으로 고성능 프로세서를 활용하는 컴퓨팅 최적화 인스턴스 C Family, 메모리 사용량이 많은 워크로드에 적합한 메모리 최적화 인스턴스 R Family 정도가 있습니다.


현재 워크로드에 최적화된 인스턴스 패밀리를 선택하신 뒤에 부하 테스트를 수행하고 더 적합한 인스턴스로 변경하는 작업을 수행해야 합니다. (PoC 진행)


온프레미스와 달리 AWS에서는 서버 패밀리 유형이나 사이즈를 변경하는 것에 별도의 비용이 발생하지 않으므로 스펙을 선정하기 전에 너무 많은 시간을 할애하는 것보다 적당한 인스턴스를 선택하고 테스트를 통해 최적의 인스턴스를 찾는 것을 권장 드립니다.


② EBS(블록 스토리지)

EC2를 사용하기 위해서는 반드시 Amazon EBS가 필요합니다. AWS에서는 EBS를 IO 특성에 따라 구분하고 있습니다. 가장 많이 사용되는 EBS는 SSD 타입이며, 범용 gp3 타입이 있습니다. gp2는 gp3보다 이전 세대이고 동일한 성능에 가격이 더 비싸기 때문에 gp3를 권장 드립니다. 또한 대용량 워크로드, 고성능의 io1/io2 타입이 있습니다. io1/io2가 고성능이기 때문에 gp2/gp3보다 비용이 많이 발생합니다. SSD 타입 보다 많이 사용되고 있지는 않지만, HDD 타입인 st1과 sc1도 존재합니다.


모든 EBS의 경우에 볼륨을 늘리기는 쉽지만, 볼륨을 줄이기 위해서는 스냅샷을 생성하고 새롭게 EBS를 만들어야 합니다. 그렇기 때문에 EBS를 처음 생성하시기 전에 워크로드에 맞는 적절한 타입을 선택하시는 것이 중요합니다.


많은 분이 실수하는 대표적인 사례는 높은 성능의 IO가 보장되는 프로비저닝된 io1 타입의 EBS를 선택하셨지만 충분한 크기의 인스턴스와 연결되지 않아서 인스턴스의 대역폭 제한으로 EBS의 성능을 모두 쓰지 못하게 되는 경우입니다. 이 경우 높은 비용의 io1 타입을 사용하시더라도 충분한 IOPS를 사용하지 못하는 문제가 발생합니다. 따라서 인스턴스의 유형별로 EBS에 할당된 최대 IOPS를 확인해야 합니다.


*이외에 AWS에서 제공하는 다양한 스토리지 서비스가 궁금하시다면 Amazon S3 vs EFS vs EBS : 어떤 AWS 스토리지를 써야 하나요?를 참고해 주세요.

③ RDS(데이터베이스)

Amazon RDS의 6가지 엔진: Amazon Aurora, PostgreSQL, MySQL, Maria DB, Oracle Database, SQL Server(MSSQL)

Amazon RDS는 관계형 데이터베이스의 대표라고 할 수 있는 6 종류의 엔진(Amazon Aurora, PostgreSQL, MySQL, Maria DB, Oracle Database, SQL server)을 클라우드에서 이용할 수 있는 서비스입니다. 물론 NoSQL 데이터베이스를 위한 서비스도 존재하지만, RDS를 사용하시는 분들이 많기 때문에 RDS를 먼저 다뤄보겠습니다.


AWS에서 데이터베이스를 다루기 위해서 반드시 RDS를 사용해야 하는 것은 아닙니다.

EC2에 올려서 사용하시는 경우도 있습니다. (EC2 vs RDS)


여러 가지 엔진 중에서 특히 Amazon Aurora는 MySQL 및 PostgreSQL과 호환되는 엔진입니다. 일부 워크로드의 경우 Aurora는 기존 애플리케이션을 거의 변경하지 않고도 MySQL의 처리량을 최대 5배, PostgreSQL의 처리량을 최대 3배까지 제공할 수 있습니다.


또한, RDS의 read replicas(읽기 전용 복제본)Multi-AZ(다중 AZ) 기능의 차이를 알고 구성하신다면 더욱 효과적으로 사용하실 수 있습니다.


코어(vCPU) 및 메모리(GiB) 사이즈는 EC2 인스턴스의 스펙을 산정하실 때처럼 다양한 인스턴스 유형을 고려해서 선택하시면 됩니다.

 

2편에 이어서 계속 됩니다 ▶▶


조회수 486회댓글 0개

관련 게시물

전체 보기

Comments


bottom of page