관리 메뉴

피터의 개발이야기

[AWS] Aurora와 Aurora serverless의 비용 효율성 분석 본문

AWS

[AWS] Aurora와 Aurora serverless의 비용 효율성 분석

기록하는 백앤드개발자 2022. 6. 7. 13:16
반응형

 

해당 자료는 미국의 블러그를 기초로 하였으며,
미국 서부(오레곤 us-west-2, 0.07 USD)의 요금체계를 가지고 있다.
서울 리전의 경우 시간당 0.10 USD이라 오히려 요금이 더 비싸질 수 있다.
(2022.8.2 기준)

 

ㅁ 개요

 ㅇ Aurora를 사용하면서 적절한 시기에 서버를 증설해 주지 않는다면, 서버가 터질 수 있다.

 ㅇ 그래서 서버 부하에 대해 모니터링이 필요한데, 이를 자동으로 처리해 주는 Aurora Serverless를 고민하게 되었다.

 ㅇ Aurora Serverless V1과 V2가 존재하며 V2의 경우 비용이 더 비싸다.

 ㅇ 실질적 요금 계산은 AWS 요금계산기를 통해 산정해 보는 것이 좋다.

 ㅇ 이 글은 Aurora와 Aurora Serverless의 비용적 측면에서 효율성에 대해서 분석을 해 보았다.

 

 

ㅁ DB 환경의 변화

 ㅇ On-premise: 회사에 24시간 에어콘이 가동되는 서버실이 있었다. 직접 하드웨어를 설치하고 OS 및 드라이브를 설치한 후에 DB를 설치하였다. 개발자가 많은 부분에서 직접 작업을 해야만 했다.

 ㅇ EC2 + Mysql: 서버 하드웨어 구성은 신경쓸 필요가 없어졌다. 하지만 서버 장애 시 복구는 개발작의 몫이었다.

 ㅇ RDS Aurora: DB의 복구 및 백업이 용이해졌다. 하지만 때에 따라 디비의 Scale up down을 해주는 상황이 발생하고 이를 위해 모니터링이 필요한 상황이다.

 ㅇ Serverless: 개발자는 DB의 설계에 집중할 수 있고, 그 이외의 용량이나 부하에 따른 서버 확장에서 한결 자유로워질 수 있다.

 

 

ㅁ Aurora Serverless란?

  Aurora Serverless는 현재 Aurora MySQL 호환 버전용으로 기본 제공되는 새로운 온디맨드 Auto Scaling 구성이다. Aurora Serverless를 사용하면 애플리케이션 요구 사항에 따라 데이터베이스가 자동으로 시작, 종료 및 확장/축소된다. 따라서 사용하지 않는 리소스에 대해서는 요금을 지불하지 않고 Aurora의 고가용성, 확장성 및 속도를 활용할 수 있다.

 기존에는 데이터베이스를 관리하려면 새로운 부하 상황에 대해서 미리 예상하여 증설을 해야만 했었다. 하지만 더러 예상과 다르게 고성능의 디비를 운영하면서 필요 이상의 요금이 발생하기도 한다. Aurora Serverless로 이러한 추측을 없앨 수 있습니다. Aurora Serverless는 애플리케이션에 필요할 때 데이터베이스 스토리지와 컴퓨팅 용량을 확장하고 애플리케이션에 덜 필요할 때 용량을 줄인다. 데이터베이스를 사용한 만큼 초당 요금으로 지불하고 AWS Management Console에서 클릭 몇 번으로 표준 및 서버리스 구성 사이에서 마이그레이션할 수 있다.

 

 

ㅁ ACU란?

  Aurora Serverless 용량은 ACU(Aurora Capacity Unit, Aurora 용량 단위)로 측정된다. 각 ACU는 약 2GiB(기비바이트)의 메모리, 해당 CPU, 네트워킹의 조합이다. Aurora Serverless v2를 사용하면 최소 0.5ACU 용량으로 시작할 수 있으며 지원되는 최대 용량은 128ACU이다. 또한 데이터베이스 용량이 워크로드 요구 사항에 거의 부합할 수 있도록 0.5ACU 단위로 용량을 미세하게 증분할 수 있다.

  Aurora Serverless v2는 CPU 및 메모리 리소스를 추가하여 기본 인스턴스의 용량을 늘려 운영 중단 없이 즉시 크기가 조정된다. 이 기술을 사용하면 기본 인스턴스가 크기 조정을 위해 새 인스턴스로 장애 조치하지 않고 적절한 용량을 늘리거나 줄일 수 있습니다.

  축소 시 Aurora Serverless v2는 좀 더 보수적인 접근 방식을 취합니다. 워크로드에 필요한 용량에 도달할 때까지 단계적으로 축소됩니다. 너무 빨리 축소하면 캐시된 페이지가 조기에 제거되고 버퍼 풀이 줄어들어 성능에 영향을 줄 수 있다.

 

 

ㅁ Aurora Serverless v2 용량 측정

  Aurora Serverless v2 용량은 프로비저닝된 클러스터에 사용하는 DB 인스턴스 클래스에 연결되지 않는다. 각 ACU는 약 2기가바이트(GB)의 메모리로 해당 CPU 및 네트워킹의 합한 용량입니다. 이 측정 단위를 사용하여 데이터베이스 용량 범위를 지정한다. 

  Aurora Serverless v2 DB 라이터 또는 리더에는 용량이 있다.  ServerlessDatabaseCapacity  ACUUtilization 지표는 데이터베이스가 실제로 사용하고 있는 용량을 알려준다. 언제든지 각 용량은 ACU를 나타내는 부동 소수점 숫자로 표시되며, 라이터 또는 리더가 확장될 때마다 용량이 증가하거나 감소한다. 이 값은 매초마다 측정된다. 

  참조1: Aurora Serverless v2 크기 조정 작동 방식

  참조2: Aurora Serverless v2 용량

  참조3: Aurora Serverless v2의 성능 및 크기 조정

 

ㅁ Amazon Aurora Serverless v2 세션 및 Q&A (22.11.02)

 ㅇ AWS 엔지니어와 Aurora Serverless V2 세션의 기회가 생겨 그 시간에 주요 포인트를 정리함.

 ㅇ 트래픽 발생에 따른 ACU 변경 작업은 20초 내외로 수행됨.

 ㅇ Serverless V1의 경우 다운타임이 발생하였지만, V2의 경우에는  DB 서버와 직연결이 아닌 Proxy Layer에 있는 Proxy fleet을 통하기 때문에 다운타임 문제를 해결함.

 ㅇ 다만, Batch로 갑자기 부하가 발생하는 가운데, ScaleUp이 이루어지면 버퍼 풀이 늘어나는 동안  행이 발생할 수 있음.

 ㅇ 기존 serverliess 2xlarge 4시간 사용 비용과 Aurora 2xlarge 풀타임 사용하는 요금이 동일하다.

 ㅇ 사용 사례에는 게임업체가 초기 접속자를 예측할 수 없을 때에 serverless로 구축하였다가 안정화가 되면 serverless -> aurora로 바꾸기도 하였다.

 ㅇ aurora DB에서 serverless로 바꾸는 작업은 콘솔에서 서비스타입을 선택하는 방식처럼 간단하게 이루어지지 않고, 먼저 MySQL DB 인스턴스의 Aurora MySQL 읽기 전용 복제본을 생성하여 RDS for MySQL DB 인스턴스에서 마이그레이션할 수 있다. 백업본에서 신규로 인스턴스를 생성하는 과정에서 마이그레이션 가능함. 기존 클러스터를 Aurora Serverless v2로 변환하는 절차에 대한 자세한 내용은 Aurora Serverless v2 시작하기 섹션을 참조.

 

 

“어느 쪽을 선택해야 할까요? Aurora 또는 Aurora Serverless v2?”

 

이 질문에 답하는 좋은 방법은 기업이 일반적으로 겪는 일련의 시나리오를 살펴보는 것입니다.

이러한 각 예에 대해 다음과 같은 표를 제공했습니다.

  1. 각 시나리오에 대한 일반적인 데이터베이스 사용 패턴(Aurora 용량 단위, 즉 ACU로 측정)을 모델링합니다. 이는 가상 값입니다.
  2. 각 데이터베이스 선택에 해당하는 비용을 제공합니다(Aurora VS Aurora Servleress)
    — 표에 표시된 비용 기준은 us-west-2 리전입니다.

이 예에서 제공한 ACU 값은 소규모 회사와 관련이 있으며, 더 큰 회사의 경우 ACU 비율은 비슷하지만 훨씬 더 큰 규모입니다.

또한 하루 종일 각 데이터베이스 선택에 대한 비용 변동을 보여주는 그래프도 제공했습니다.

 

 

예 #1: 음식 배달 회사

데이터베이스 사용량

이 첫 번째 예는 음식 배달 회사입니다. 데이터베이스 사용량은 점심(오후 12시 - 오후 1시)과 저녁(오후 8시 - 오후 10시)에 두 가지 피크가 있습니다. 가장 많은 고객이 음식을 주문하는 시간대입니다.

 

비용 그래프 Aurora vs. Aurora Serverless (음식 배달 회사)

 

 ㅇ 비용 비교는 이 예에서 음식 배달 회사에 Aurora Serverless가 더 나은 선택임을 분명히 보여줍니다. 

 ㅇ 최대 용량(8 ACU의 경우 $0.368 vs. $0.56)에서 더 저렴함에도 불구하고
     Aurora는 데이터베이스 기반 사용량이 최소인 경우에도 회사가 하루 종일 8 ACU에 대해 비용을 지불해야 합니다. 

 ㅇ 반면에 Aurora Serverless를 사용하면 회사에서 사용한 만큼만 비용을 지불할 수 있습니다.

 

일일 비용: Aurora($8.832) 및 Aurora Serverless v2($5.04)

승자: Aurora Serverless

 

 

예 #2: 운송 회사

데이터베이스 사용량

이 예에서 운송 회사의 데이터베이스 사용은 사용 가능한 기차나 버스가 없는 오전 2시~오전 4시 사이에 최소화됩니다. 데이터베이스 사용량은 오전 4시 이후에 증가하여 활동량이 가장 많은 하루 중 대부분(오전 8시 – 오후 9시)에 최대값 6ACU에서 정체됩니다. 이용 가능한 버스나 기차의 수가 점차 줄어들기 때문에 오후 9시 이후에는 사용량이 줄어듭니다.

비용 그래프 Aurora vs. Aurora Serverless(운송 회사)

 

비용 비교는 이 예에서 운송 회사에 Aurora가 더 나은 선택임을 분명히 보여줍니다. Aurora는 최대 용량(6 ACU의 경우 $0.276 vs. $0.42)에서 Aurora Serverless보다 저렴하며 데이터베이스 사용량이 최대인 하루 중 상당 부분(오전 8시~오후 9시)이 있습니다.

 

일일 비용: Aurora($6.624) 및 Aurora Serverless v2($8.19)

승자: Aurora

 

 

예 #3: 기업 인트라넷

데이터베이스 사용량

이 세 번째 예에서 데이터베이스 사용량은 근무 시간(오전 12시~오전 4시) 전에 최소화되고 하루가 시작되면 최대 용량(4ACU)에 도달합니다. 점심 시간(오후 12시~오후 1시) 동안 사용량이 약간 감소한 후 근무일이 끝날 때까지 최대 용량으로 다시 돌아갑니다. 사용량은 오후 8시에 감소하기 시작하여 오후 10시 이후에 최소화됩니다.

비용 그래프 Aurora vs. Aurora Serverless(기업 인트라넷)

 

Aurora 또는 Aurora Serverless?

 

이 예에서 비용 비교는 어느 선택(Aurora 또는 Aurora Serverless)이 회사에 적합할 수 있음을 나타냅니다. 데이터베이스 사용량이 최소인 하루 중 상당한 시간(근무 시간 외)이 있습니다. 그러나 데이터베이스 사용량이 최대인 하루 중 많은 시간(오전 7시 - 오후 7시)도 있습니다.

즉, Aurora Serverless는 사용자에게 데이터베이스 사용량의 예상치 못한 변화를 처리할 수 있는 유연성을 제공하고 데이터베이스 용량을 관리해야 하는 번거로움을 덜어주기 때문에 여전히 더 매력적인 옵션일 수 있습니다.

 

일일 비용: Aurora($4.416) 및 Aurora Serverless v2($4.69)

승자: Aurora Serverless

 

 

예 #4: 날씨 분석 회사

데이터베이스 사용량

이 마지막 예에서 날씨 분석 회사의 데이터베이스 사용량은 계산 및 시뮬레이션을 수행하기 위해 하루 종일 최대 용량입니다.

비용 그래프 Aurora vs. Aurora Serverless (기상 분석 회사)

 

 이 예의 비용 비교는 Aurora가 더 나은 선택임을 분명히 보여줍니다. Aurora는 최대 용량에서 Aurora Serverless보다 저렴하며(8 ACU의 경우 $0.368 vs. $0.56) 회사는 하루 종일 최대 용량으로 데이터베이스를 사용해야 합니다.

 

일일 비용: Aurora($8.832) 및 Aurora Serverless v2($13.44)

승자: Aurora

 

 

솔루션 아키텍처 가능성

다음은 이러한 솔루션의 아키텍처가 어떻게 생겼는지에 대한 예입니다.

 

 

Aurora

Aurora Serverless

 

데이터베이스 사용량, 핵심 요소

데이터베이스 사용량은 Aurora와 Aurora Serverless 사이의 선택을 좌우하는 핵심 요소입니다. Aurora Serverless는 예 1에서 설명한 음식 배달 회사와 같이 하루 중 다른 시간대에 중간 정도 또는 최소한의 사용량으로 데이터베이스 사용량이 갑자기 급증하는 회사에 이상적입니다. 서버리스로 전환하면 이러한 회사에서 원치 않는 비용을 최소화하고 사용한 만큼만 비용을 지불할 수 있습니다.

 

  그러나 Aurora는 예 #4에서 논의한 날씨 분석 회사와 같이 하루 종일 최대 데이터베이스 용량이 필요한 회사에 완벽한 선택입니다. 대부분의 시간 동안 최대 데이터베이스 용량이 필요한 회사의 경우 Aurora 인스턴스를 미리 예약하면 추가 비용 효율성이 발생합니다. 계약 기간(보통 1년 또는 3년)에 따라 기업은 데이터베이스 관련 클라우드 비용을 30~70% 절감할 수 있습니다.

 

  이 스펙트럼의 중간에 있는 회사(예제 #2 및 #3)의 경우 이 기사에서 수행한 것과 같은 비용 비교를 통해 더 나은 데이터베이스 선택을 빠르게 알 수 있습니다. 마지막으로, 데이터베이스 용량 관리에 많은 시간을 소비하지 않으려는 회사의 경우 Aurora Serverless가 더 나은 선택입니다.

 

 

ㅁ 사용가능 지역(2022.06.07 현재)

Aurora Serverless v2는 미국 동부(오하이오), 미국 동부(버지니아 북부), 미국 서부(캘리포니아 북부), 미국 서부(오레곤), 아시아 태평양(홍콩), 아시아 태평양(뭄바이), 아시아 태평양(서울), 아시아 태평양(싱가포르), 아시아 태평양(시드니), 아시아 태평양(도쿄), 캐나다(중부), EU(프랑크푸르트), EU(아일랜드), EU(런던), EU(파리), EU(스톡홀름), 남아메리카(상파울루)에서 제공됩니다.

 

 

ㅁ AWS 요금 계산

 ㅇ 이곳에서 샘플로 요금 계산을 하였다.

# Aurora Serverless 설정

1 시간당 ACU x 730 시간(1달 기준) x 0.20 USD = 146.00 USD
MySQL 호환 Aurora Serverless 비용 (월별): 146.00 USD

 

 

# 데이터베이스 스토리지

Amazon Aurora 데이터베이스에서 사용하는 스토리지는 월별 GB당 증분 단위로 청구되고, 사용한 IO는 요청 1백만 개당 증분 단위로 청구된다.

  • 기준 IO 속도: 1000 초당 * (60 분(1시간 기준) x 60 초(1분 기준)) = 3600000 시간당
  • 피크 IO 속도: 3000 초당 * (60 분(1시간 기준) x 60 초(1분 기준)) = 10800000 시간당
  • 1,000 GB x 0.12 USD = 120.00 USD(데이터베이스 스토리지 비용)
  • 730 시간(1달 기준) - 1 월별 피크 시간 = 729.00 월별 기준 시간
  • 3,600,000 기준 IO x 729.00 월별 기준 시간 = 2,624,400,000 (월별 기준 IO)
  • 2,624,400,000 (월별 기준 IO) x 0.00000024 USD = 629.856 USD(기준 IO 비용)
  • 10,800,000 피크 IO x 1 월별 피크 시간 = 10,800,000 (월별 피크 IO)
  • 10,800,000 (월별 피크 IO) x 0.00000024 USD = 2.592 USD(피크 IO 비용)
  • 629.856 USD(기준 IO 비용) + 2.592 USD(피크 IO 비용) = 632.45 USD(IO 속도 비용)
  • 120.00 USD(데이터베이스 스토리지 비용) + 632.45 USD(IO 속도 비용) = 752.45 USD (총 스토리지 비용)
  • 총 스토리지 요금 (월별): 752.45 USD

 

 

# 백업 스토리지

Amazon Aurora의 백업 스토리지는 자동화된 데이터베이스 백업 및 고객이 시작한 모든 DB 클러스터 스냅샷에 연결된 스토리지이다. 각 Aurora DB 클러스터에 대한 총 Aurora 데이터베이스 스토리지의 최대 100%에 해당하는 백업 스토리지에 대해서는 추가 비용이 없다. 백업 보존 기간이 1일이고 보존 기간 이후에도 스냅샷이 없는 경우 백업 스토리지에 대한 추가 비용은 없다.

1,000 GB x 0.023 USD = 23.00 USD
추가 백업 스토리지 비용 (월별): 23.00 USD

 

 

ㅁ 함께 보면 좋은 사이트

 

Amazon Aurora Serverless | MySQL PostgreSQL 관계형 데이터베이스 | Amazon Web Services

Amazon Aurora Serverless v2는 수십만 건의 트랜잭션 처리도 가능하도록 1초 미만으로 즉시 확장합니다. 확장을 통해 애플리케이션에 필요한 정확한 양의 데이터베이스 리소스를 제공하도록 세분화된

aws.amazon.com

 

Amazon Aurora Serverless v2 정식 출시 – 워크로드 요구 사항에 따른 즉각적인 DB 크기 조정 | Amazon Web Se

오늘 Aurora PostgreSQL 및 MySQL에 대해 Amazon Aurora Serverless v2의 정식 출시를 발표하게 되어 매우 기쁩니다. Aurora Serverless는 Amazon Aurora의 온디맨드 자동 크기 조정 구성으로서, 이를 통해 애플리케이션

aws.amazon.com

 

Aurora or Aurora Serverless v2, Which Is More Cost-Effective?

Aurora and Aurora Serverless

medium.com

 

AWS Pricing Calculator

 

calculator.aws

 

Aurora Serverless v2 작동 방식 - Amazon Aurora

Aurora Serverless v1에서는 클러스터에 최소 및 최대 용량 값 사이에서 확장할 수 있는 단일 컴퓨팅 용량 측정값이 있습니다. Aurora Serverless v2에서는 클러스터에 라이터 외에 리더도 포함될 수 있습니

docs.aws.amazon.com

 

 

알아보자 Aurora Serverless 배워보자 Aurora Serverless (AKA. 알A배A)

모 프로젝트에서 메인 저장소로 Amazon Aurora를 통해 사용하고 있었다. 어느 날과 다를 거 없이 관련 문서를 찾아보던 중 아래 같은 글을 찾게 된다. Amazon Aurora Serverless 정식 출시 | Amazon Web Services..

tech.yangs.kr

 

반응형
Comments