Amazon Web Services 한국 블로그

Amazon Aurora Serverless 정식 출시

Amazon Aurora는 고성능 상용 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합하였으며 클라우드를 위해 구축된 MySQL 및 PostgreSQL 호환 데이터베이스 서비스입니다.

Aurora의 새로운 기능인 Aurora Serverless는 지난 해 AWS re:Invent에서 발표되었습니다. 드디어 오늘 MySQL용 Aurora Serverless를 정식 출시합니다. Aurora 서버리스는 온디맨드 방식으로 제공되고, 자동으로 크기 조정되는 서버리스 Aurora입니다. 인스턴스 또는 확장에 대해 고민할 필요가 없으며 사용량에 대해서만 지불하면 됩니다.

이러한 새로운 데이터베이스 패러다임은 로드를 예측할 수 없거나 수요가 많지 않은 애플리케이션에 적합합니다. 이제 작동 방식을 살펴볼텐데, 먼저, 서버리스 클러스터를 시작하는 방법을 보여 드리겠습니다.

Aurora 서버리스 클러스터 생성

먼저, Amazon Relational Database Service(RDS) 콘솔로 이동하고 [Clusters] 하위 콘솔을 선택합니다. 거기서 오른쪽 위 모서리에 있는 [Create database] 버튼을 클릭하여 이 화면으로 이동합니다.

위의 화면에서 엔진 유형을 선택하고 [Next]를 클릭합니다. 현재는 Aurora MySQL 5.6만 지원됩니다.

이제 용량 유형을 [Serverless]로 지정하면 모든 인스턴스 선택 및 구성 옵션이 사라집니다. 클러스터 이름과 마스터 사용자 이름/암호 조합을 지정한 다음 [Next]를 클릭하기만 하면 됩니다.

여기서 다수의 옵션을 선택할 수 있습니다. 사용할 ACU(Aurora 컴퓨팅 단위)의 최소 및 최대 수량을 지정할 수 있습니다. ACU는 최소 5분부터 초 단위로 비용이 청구되며 클러스터는 지정된 최소 ACU 수량과 최대 ACU 수량 사이에서 자동으로 크기가 조정됩니다. 자동 조정에 대한 규칙 및 지표는 Aurora 서버리스에서 자동으로 생성되어 CPU 사용률 및 연결 수에 포함됩니다.

클러스터에 추가 용량이 필요하다는 것을 Aurora 서버리스가 감지하면 활성 리소스 풀에서 용량을 가져와 수요를 충족합니다. Aurora의 설계에 내장된 컴퓨팅 계층과 스토리지 계층이 분리되어 있기 때문에 이 새로운 용량으로 몇 초 내에 트래픽을 처리할 수 있습니다.

클러스터 활동이 없는 경우 클러스터 크기를 0까지 축소할 수도 있습니다. 따라서 장시간 사용하지 않거나 사용량이 거의 없는 개발 데이터베이스에 적합합니다. 클러스터를 일시 중지하면 기본 스토리지 요금만 부과됩니다. 대규모 트래픽 스파이크에 대비하여 수동으로 확장하거나 축소하려는 경우 단일 API 호출을 사용하여 쉽게 확장/축소할 수 있습니다.

마지막으로 오른쪽 아래에서 [Create database]를 클릭하고 클러스터를 사용할 수 있게 될 때까지 기다립니다. 오래 기다리지 않습니다. 지금은 제한된 수의 클러스터 매개 변수만 지원되지만 고객 피드백을 반복적으로 반영하여 더 많은 사용자 지정 옵션을 지원할 계획입니다.

이제, 콘솔에서 다른 모든 RDS 데이터베이스와 유사한 다량의 데이터를 사용할 수 있습니다.

여기서 다른 모든 MySQL 데이터베이스와 같이 클러스터에 연결할 수 있습니다. 또한 sysbench 또는 mysqlslap 같은 도구를 실행하여 조정 이벤트를 로드하고 트리거하거나 서비스가 축소되고 일시 중지될 때까지 기다릴 수 있습니다.

아래로 스크롤하거나 이벤트 하위 콘솔을 선택하면 특정 시점의 인스턴스 일시 중지 등 다수의 자동 조정 이벤트를 볼 수 있습니다.

이 기능의 장점은 다른 작업을 수행하다가 이 서버를 종료하는 것을 잊어버려도 괜찮다는 것입니다. 다시 사용할 때에는 연결을 요청하기만 하면 됩니다. 그러면 클러스터가 몇 초 안에 응답을 시작합니다.

Aurora 서버리스의 작동 방식

이 기능을 활성화하기 위해 막후에서 벌어지는 일에 대해 좀 더 자세히 살펴보도록 하겠습니다. Aurora 서버리스 데이터베이스를 프로비저닝하면 서비스가 다음과 같은 몇 가지 작업을 수행합니다.

  • 여러 AZ에 복제되는 Aurora 스토리지 볼륨을 생성합니다.
  • VPC에 엔드포인트를 생성하여 애플리케이션이 연결할 수 있도록 합니다.
  • 이 엔드포인트 뒤에 Network Load Balancer(고객에게는 표시되지 않음)를 구성합니다.
  • 데이터베이스 트래픽을 기본 인스턴스로 라우팅하도록 다중 테넌트 요청 라우터를 구성합니다.
  • 초기 최소 인스턴스 용량을 프로비저닝합니다.

클러스터를 자동으로 확장 또는 축소해야 하거나 일시 중지 후 다시 시작해야 하는 경우 Aurora가 이미 사용 가능한 노드의 풀에서 용량을 가져와 요청 라우터에 추가합니다. 이 프로세스는 거의 즉시 수행되며 노드 간에 스토리지가 공유되므로 Aurora는 대부분의 워크로드에 대해 몇 초 내에 확장 또는 축소를 수행할 수 있습니다. 현재 이 서비스의 자동 조정 휴지 기간은 확장의 경우 1분 30초이고 축소의 경우 5분입니다. 조정 작업에서는 기존 연결 및 세션 상태가 새 노드로 전송되므로 연결된 클라이언트 및 애플리케이션에 영향을 미치지 않습니다. 일시 중지 후 다시 시작의 유일한 차이점은 첫 연결 시 지연 시간(일반적으로 약 25초)이 더 길다는 것입니다.

지금 이용 가능

이제 Aurora MySQL용 Aurora 서버리스를 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤), 유럽(아일랜드)에서 사용할 수 있습니다. Aurora 엔진에 대한 자세한 내용은 설계 보고서에서 확인할 수 있습니다. 이후 게시물에서 Aurora 서버리스의 작동 방식을 보다 자세히 다룰 예정이니 관심이 있다면 기다려 주십시오!

제 개인적으로는 서버리스가 데이터베이스의 역사에 한 획을 긋는 기술이라고 생각합니다. 고객이 이 기술을 통해 무엇을 구축하게 될지가 매우 기대됩니다!

Randall;