Amazon Web Services 한국 블로그

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

오늘 Aurora PostgreSQL 및 MySQL에 대해 Amazon Aurora Serverless v2의 정식 출시를 발표하게 되어 매우 기쁩니다. Aurora Serverless는 Amazon Aurora의 온디맨드 자동 크기 조정 구성으로서, 이를 통해 애플리케이션의 요구 사항에 따라 데이터베이스의 용량을 확장하거나 축소할 수 있습니다.

Amazon Aurora는 클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 데이터베이스입니다. 이 데이터베이스는 Amazon Relational Database Service(RDS)에서 완전히 관리하므로 하드웨어 프로비저닝, 데이터베이스 설정, 패치, 백업과 같은 시간 소모적인 관리 작업이 자동화됩니다.

Amazon Aurora의 주요 기능 중 하나는 컴퓨팅과 스토리지의 분리입니다. 이에 따라 독립적으로 크기가 조정됩니다. Amazon Aurora 스토리지는 데이터베이스의 데이터 양이 증가함에 따라 자동으로 크기가 조정됩니다. 예를 들어, 많은 양의 데이터를 저장할 수 있으며 언젠가 해당 데이터 대부분을 삭제하기로 한다면 프로비저닝된 스토리지가 조정됩니다.

Amazon Aurora의 작동 방식 - 컴퓨팅 및 스토리지 분리

그러나 많은 고객은 대부분의 데이터베이스 워크로드에 일정한 양의 컴퓨팅이 필요하지 않기 때문에 Amazon Aurora의 컴퓨팅 계층에서 동일한 유연성이 필요하다고 말했습니다. 워크로드는 변동폭이 크거나, 빈번하지 않거나, 일정 기간 동안 예측 가능한 급증이 발생할 수 있습니다.

이러한 종류의 워크로드를 처리하려면 데이터베이스에 필요한 최대 용량을 프로비저닝해야 합니다. 그러나 데이터베이스 워크로드가 최대 용량으로 실행되는 경우는 거의 없으므로 이 접근 방식은 비용이 많이 듭니다. 적절한 양의 컴퓨팅을 프로비저닝하려면 데이터베이스 용량 소비를 지속적으로 모니터링하고 사용량이 많은 경우 리소스를 확장해야 합니다. 그러나 이 과정에서 전문 지식이 필요하며 종종 가동 중지 시간이 발생합니다.

이 문제를 해결하기 위해, 2018년에 Amazon Aurora Serverless의 첫 번째 버전을 출시했습니다. 출시 이후, 수천 명의 고객이 빈도가 낮고 간헐적이며 예측할 수 없는 워크로드에 대한 비용 효율적인 옵션으로 Amazon Aurora Serverless를 사용해 왔습니다.

오늘 Amazon Aurora Serverless의 다음 버전을 정식 출시합니다. 이를 통해 고객은 즉각적이고 중단 없는 크기 조정, 세분화된 용량 조정 및 읽기 전용 복제본, 다중 AZ 배포, Amazon Aurora Global Database 등을 포함한 추가 기능을 통해 가장 까다로운 워크로드도 서버리스에서 실행할 수 있습니다.

Aurora Serverless v2는 Amazon Aurora에서 제공되는 최신 메이저 버전으로 출시됩니다. 지원되는 버전: PostgreSQL 13을 사용하는 Aurora PostgreSQL 호환 버전 및 MySQL 8.0을 사용하는 Aurora MySQL 호환 버전

Aurora Serverless v2의 주요 기능
Aurora Serverless v2를 사용하면 데이터베이스를 초당 수십만 개의 트랜잭션으로 크기 조정하고 가장 까다로운 워크로드를 비용 효율적으로 관리할 수 있습니다. 데이터베이스 용량을 세분화된 단위로 조정하여 연결이나 트랜잭션을 중단하지 않고 워크로드의 요구 사항에 거의 부합하도록 합니다. 또한 정확히 사용한 용량에 대해서만 비용을 지불하면 되므로 피크 로드에 대한 프로비저닝에 비해 최대 90%까지 절약할 수 있습니다.

기존 Amazon Aurora 클러스터가 있는 경우 동일한 클러스터 내에 Aurora Serverless v2 인스턴스를 생성할 수 있습니다. 이렇게 하면 프로비저닝된 인스턴스와 Aurora Serverless v2 인스턴스가 모두 동일한 클러스터 내에서 공존할 수 있는 혼합 구성 클러스터를 갖게 됩니다.

Amazon Aurora 기능의 전체 범위를 지원합니다. 예를 들어 여러 가용 영역에 배포된 Amazon Aurora 읽기 전용 복제본을 최대 15개까지 생성할 수 있습니다. 이러한 읽기 전용 복제본은 Aurora Serverless v2 인스턴스일 수 있으며 고가용성 또는 읽기 작업 크기 조정을 위한 장애 조치 대상으로 사용될 수 있습니다.

마찬가지로 Global Database를 사용하면 모든 인스턴스를 Aurora Serverless v2로 할당하고 유휴 상태일 때는 최소 용량에 대해서만 비용을 지불할 수 있습니다. 보조 리전의 이러한 인스턴스는 서로 다른 리전 간의 다양한 워크로드를 지원하기 위해 독립적으로 크기가 조정될 수 있습니다. 포괄적인 기능 목록은 Amazon Aurora 사용 설명서를 참조하세요.

Aurora Serverless 컴퓨팅 및 스토리지 크기 조정

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

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

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

Aurora Serverless v2 크기 조정 작동 방식
Aurora Serverless v2의 작동 방식을 보여주기 위해 반짝 세일을 하는 경우를 시뮬레이션해 보겠습니다. 전자 상거래 사이트를 운영한다고 상상해 보세요. 고객이 제한된 시간 동안 상품을 50% 할인된 가격으로 구매할 수 있는 마케팅 캠페인을 실행합니다. 판매 기간 동안 사이트 트래픽이 급증할 것으로 예상됩니다.

기존 데이터베이스를 사용한다면, 이러한 마케팅 캠페인을 정기적으로 실행하는 경우 예상되는 피크 로드에 대해 프로비저닝해야 합니다. 또는 가끔 실행하는 경우 판매 기간 동안 예상되는 트래픽 피크에 맞게 데이터베이스를 재구성해야 합니다. 두 경우 모두, 필요한 용량을 귀하가 정확히 예측해야 합니다. 예상보다 판매량이 많으면 어떻게 될까요? 데이터베이스가 수요를 따라잡을 수 없는 경우 서비스 저하가 발생할 수 있습니다. 아니면 마케팅 캠페인이 예상된 판매량을 창출하지 못하는 경우엔 어떻게 될까요? 필요하지 않은 용량에 대해 불필요한 비용을 지불하게 됩니다.

이 데모에서는 Aurora Serverless v2를 트랜잭션 데이터베이스로 사용합니다. AWS Lambda 함수가 전자 상거래 사이트의 판매 이벤트 중에 데이터베이스를 호출하고 주문을 처리하는 데 사용됩니다. Lambda 함수와 데이터베이스는 동일한 Amazon Virtual Private Cloud(VPC)에 있으며 Lambda 함수는 데이터베이스에 직접 연결하여 모든 작업을 수행합니다.

반짝 세일의 트래픽을 시뮬레이션하기 위해 Artillery라는 오픈 소스 로드 테스트 프레임워크를 사용할 것입니다. 이를 통해 여러 Lambda 함수를 호출하여 다양한 로드를 생성할 수 있습니다. 예를 들어 적은 양의 로드로 시작한 다음 빠르게 증가시켜 데이터베이스 용량이 워크로드에 따라 어떻게 조정되는지 관찰할 수 있습니다. 이 Artillery 로드 테스트는 동일한 VPC 내의 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 실행됩니다.

아키텍처 다이어그램

다음 Amazon CloudWatch 대시보드는 주문 수가 증가할 때 데이터베이스 용량이 어떻게 작동하는지 보여줍니다. 대시보드에는 주문이 파란색으로 표시되고 현재 데이터베이스 용량은 주황색으로 표시됩니다.

판매를 시작할 때 Aurora Serverless v2 데이터베이스는 구성된 최소 데이터베이스 용량인 5ACU로 시작합니다. 처음 몇 분 동안은 주문이 증가하지만 데이터베이스 용량은 즉시 증가하지 않습니다. 데이터베이스는 프로비저닝된 시작 용량으로 로드를 처리할 수 있습니다.

그러나 15:55 무렵에는 주문 수가 12,000개로 급증했습니다. 그 결과 데이터베이스의 용량이 14ACU로 늘어납니다. 데이터베이스 용량은 밀리초 단위로 증가하여 로드에 정확하게 맞춰 조정됩니다.

주문 수는 몇 초 동안 유지되고 15:58 경에는 급격히 감소합니다. 그러나 데이터베이스 용량은 트래픽 감소에 정확히 맞춰 조정되지 않습니다. 대신 5ACU에 도달할 때까지 단계적으로 감소합니다. 캐시된 페이지의 조기 제거로 인한 성능 영향을 방지하도록 축소를 보다 보수적으로 수행합니다. 이는 급증하는 워크로드에 대한 불필요한 대기 시간을 방지하고 캐시 및 버퍼 풀이 적극적으로 제거되지 않도록 하기 위해 수행됩니다.

Cloudwatch 대시보드

기존 Amazon Aurora 클러스터로 Aurora Serverless v2 시작하기
Amazon Aurora 클러스터가 이미 있으면서 Aurora Serverless v2를 사용하려는 경우 가장 빠른 시작 방법은 서버리스 인스턴스와 프로비저닝된 인스턴스를 모두 포함하는 혼합 구성 클러스터를 사용하는 것입니다. 먼저 기존 클러스터에 새 리더를 추가합니다. 리더 인스턴스를 Serverless v2 유형으로 구성합니다.

서버리스 리더 추가

워크로드로 새 서버리스 인스턴스를 테스트합니다. 예상대로 작동하는지를 확인했으면 서버리스 인스턴스에 대한 장애 조치를 시작할 수 있습니다. 이 작업을 완료하는 데 30초 미만이 소요됩니다. 이 옵션을 사용하면 Aurora Serverless v2 시작하는 데 있어서 가동 중지 시간을 최소화할 수 있습니다.

서버리스 인스턴스로 장애 조치

새 Aurora Serverless v2 데이터베이스를 생성하는 방법
Aurora Serverless v2를 시작하려면 RDS 콘솔에서 새 데이터베이스를 생성합니다. 첫 번째 단계는 엔진 유형인 Amazon Aurora를 선택하는 것입니다. 그런 다음 MySQL 또는 PostgreSQL과 호환되도록 할 데이터베이스 엔진을 선택합니다. 엔진 버전에서 필터를 열고 Serverless v2를 지원하는 버전 표시(Show versions that support Serverless v2) 필터를 선택합니다. 그러면 Aurora Serverless v2에서 지원하는 옵션만 사용 가능한 버전(Available versions) 드롭다운 목록에 표시됩니다.

엔진 옵션

다음으로 데이터베이스를 설정해야 합니다. 데이터베이스 관리자의 사용자 이름과 암호를 사용하여 자격 증명 설정을 지정합니다.

데이터베이스 설정

그런 다음 데이터베이스의 인스턴스를 구성합니다. 원하는 인스턴스 클래스의 종류를 선택해야 합니다. 이렇게 하면 데이터베이스 인스턴스에 대한 컴퓨팅, 네트워크, 메모리 용량이 할당됩니다. 서버리스(Serverless)를 선택합니다.

그런 다음 용량 범위를 정의해야 합니다. Aurora Serverless v2 용량은 최소 및 최대 구성 내에서 확장 및 축소됩니다. 여기서 워크로드에 대한 최소 및 최대 데이터베이스 용량을 지정할 수 있습니다. 지정할 수 있는 최소 용량은 0.5ACU이고 최대 용량은 128ACU입니다. Aurora Serverless v2 용량 단위에 대한 자세한 내용은 즉각적인 자동 크기 조정 설명서를 참조하세요.

용량 구성

그런 다음 새 VPC 및 보안 그룹을 생성하여 연결을 구성하거나, 기본값을 사용합니다. 마지막으로 데이터베이스 생성(Create database)을 선택합니다.

연결 구성

데이터베이스를 생성하는 데 몇 분 정도 걸립니다. 상태가 사용 가능(Available)으로 전환되면 데이터베이스가 준비되었음을 알 수 있습니다.

데이터베이스 목록

데이터베이스 페이지에서 데이터베이스에 대한 연결 세부 정보를 확인할 수 있습니다. 새 Aurora Serverless v2 데이터베이스에 연결하기 위해서는 엔드포인트 및 포트와, 관리자의 사용자 이름 및 암호만 있으면 됩니다.

데이터베이스 세부 정보 페이지

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

이번 출시에 대한 자세한 내용은 Amazon Aurora Serverless v2 페이지를 참조하세요.

Marcia