Amazon Web Services 한국 블로그

Amazon Aurora DSQL 미리보기 출시 – 서버리스 글로벌 분산 SQL 데이터베이스

지금으로 부터 10년전 AWS는 상용 데이터베이스의 1/10 비용으로 MySQL 및 PostgreSQL과 완벽하게 호환되는 탁월한 성능과 가용성을 제공하는 Amazon Aurora를 출시했습니다. 하지만, 이전 보다 관리가 더 쉽고, 워크로드에 따라 확장 및 축소되며, 고가용성 멀티 리전 및 멀티 AZ 아키텍처를 더 쉽게 구축할 수 있는 관계형 데이터베이스를 요구하는 고객의 피드백이 있었습니다.

오늘 가장 빠른 서버리스 분산 SQL 데이터베이스인 Amazon Aurora DSQL을 미리보기로 출시합니다. Aurora DSQL은 사실상 무제한의 확장성과 최고의 가용성 및 제로 인프라 관리를 제공합니다. 데이터베이스 샤딩이나 인스턴스 업그레이드 없이 모든 워크로드 수요에 맞게 확장할 수 있습니다.

혁신적인 액티브-액티브(Active-Active) 분산 아키텍처를 갖춘 Aurora DSQL은 단일 리전 구성에서 99.99%, 멀티 리전 구성에서 99.999%의 가용성을 제공하도록 설계되었으며, 혁신적인 액티브-액티브 분산 아키텍처를 갖추고 있어 고가용성 애플리케이션을 구축하는 데 이상적입니다.

서버리스 설계를 통해 패치, 업그레이드, 유지 관리 중단 시간 등의 운영 부담을 없애줍니다. 또한 Aurora DSQL은 몇 단계만 거치면 빠른 데이터베이스 생성으로 시작하는 간단한 환경을 제공합니다. Aurora DSQL은 PostgreSQL과 호환되므로 개발자는 잘 알려진 관계형 데이터베이스 개념과 이미 알고 있는 드라이버, 도구 및 프레임워크를 사용하여 애플리케이션을 신속하게 구축하고 배포할 수 있습니다.

Aurora DSQL 아키텍처 및 이점
Aurora DSQL은 구성 요소 장애 또는 가용 영역(AZ) 중단 시, 서비스를 지속하는 단일 리전 구성과 멀티 AZ 장애를 처리하면서 데이터 처리 및 저장 위치를 완벽하게 제어하는 멀티 리전 구성의 두 가지 구성으로 실행되도록 설계되었습니다. 고유한 세분화된 액티브-액티브 아키텍처는 장애 조치 또는 전환으로 인한 다운타임을 제거하여 고가용성 및 비즈니스 연속성을 쉽게 설계할 수 있습니다.

1. 단일 리전 구성
Aurora DSQL은 3개의 AZ에서 액티브-액티브인 단일 리전 클러스터를 제공하여 복제 지연과 기존 데이터베이스 장애 조치 작업을 최소화합니다. 하드웨어 또는 인프라에 장애가 발생하는 경우 수동 개입 없이 정상적인 인프라로 요청을 자동으로 라우팅합니다. Aurora DSQL의 트랜잭션은 지연 시간에 미치는 영향을 최소화하면서 여러 리전에 걸쳐 모든 ACID 속성(원자성, 일관성, 격리 및 내구성)을 제공합니다. 강력한 스냅샷 격리를 구현하고 클러스터 엔드포인트에 대한 읽기 및 쓰기에 대한 강력한 데이터 일관성을 제공합니다.

다음 다이어그램은 단일 리전 배포에서 Aurora DSQL의 고가용성 클러스터 토폴로지를 보여줍니다.

단일 리전 구성에서 Aurora DSQL은 모든 쓰기 트랜잭션을 분산 트랜잭션 로그에 커밋하고, 커밋된 모든 로그 데이터를 3개의 AZ에 있는 사용자 스토리지 복제본에 동기식으로 복제합니다. 클러스터 스토리지 복제본은 최적의 데이터베이스 성능을 위해 스토리지 플릿에 분산됩니다. Aurora DSQL은 자동화된 장애 조치 복구를 위해 설계되었습니다. 구성 요소 또는 AZ가 손상되면 자동으로 정상적인 구성 요소로 액세스를 리디렉션하고 복제본을 비동기식으로 복구합니다. 손상된 복제본이 복원되면 Aurora DSQL은 자동으로 해당 복제본을 스토리지 쿼럼에 다시 추가하고 클러스터에서 사용할 수 있도록 합니다.

2. 멀티 리전 구성
멀티 리전 클러스터는 단일 리전 클러스터와 동일한 복원력과 연결성을 제공하는 동시에 각 연결된 리전(Linked Region)에 하나씩 두 개의 리전 엔드포인트를 통해 가용성을 개선합니다. 연결된 클러스터의 두 엔드포인트는 모두 단일 논리 데이터베이스를 제공하며 강력한 데이터 일관성으로 동시 읽기 및 쓰기 작업을 지원합니다. 이를 통해 지리적 위치, 성능 또는 복원력을 위해 애플리케이션과 연결의 균형을 맞출 수 있으므로 독자가 동일한 데이터를 일관되게 볼 수 있습니다. Aurora DSQL은 애플리케이션에 최고의 복원력이 필요한 경우 99.999%의 멀티 리전 가용성을 제공합니다.

다음 다이어그램은 Aurora DSQL 멀티 리전 클러스터를 사용하는 애플리케이션의 아키텍처를 보여줍니다.

멀티 리전 클러스터를 생성하면 Aurora DSQL은 다른 리전에 다른 클러스터를 생성하고 함께 연결합니다. 연결된 리전을 추가하면 커밋된 트랜잭션의 모든 변경 사항이 다른 연결된 리전으로 복제됩니다. 각 연결된 클러스터에는 리전 엔드포인트가 있으며, Aurora DSQL은 리전 간에 쓰기를 동기식으로 복제하여 모든 연결된 클러스터에서 강력한 일관된 읽기 및 쓰기를 가능하게 합니다.

세 번째 리전은 감시 역할을 합니다. 감시 리전(Witness Region)은 연결된 클러스터에 기록된 데이터를 수신하지만 클러스터 또는 연결된 엔드포인트가 없습니다. 암호화된 트랜잭션 로그의 제한된 창을 저장하며, Aurora DSQL은 이를 사용하여 멀티 리전 내구성 및 가용성을 제공합니다.

Aurora DSQL 시작하기
Aurora DSQL은 이제 미리 보기로 제공되므로 시작하는 것이 얼마나 쉬운지 직접 경험할 수 있습니다. Aurora DSQL 콘솔 로 이동 하거나 AWS Command Line Interface (AWS CLI) 또는 AWS SDK를 사용하여 프로그래밍 방식으로 액세스 합니다.

AWS 관리 콘솔에서 Create cluster를 선택하면, 원클릭으로 클러스터를 생성할 수 있습니다.

멀티 리전 구성을 구성하고 싶다면, Add linked Regions를 선택하면, 모든 트랜잭션이 모든 연결된 리전에 복제됩니다.

연결된 리전(Linked Region)은 Aurora DSQL은 선택한 리전에 다른 클러스터를 만든 다음 클러스터를 연결합니다. 연결된 클러스터에는 각각 리전 엔드포인트가 있습니다. DSQL은 리전 간에 쓰기를 동기적으로 복제하므로 강력한 일관성을 유지하면서 연결된 모든 클러스터에서 읽고 쓸 수 있습니다.

감시 리전(Witness Region)은 연결된 클러스터에 쓰여진 모든 데이터를 수신합니다. Witness 리전에는 클러스터나 연결된 엔드포인트가 없습니다. Witness 리전은 암호화된 트랜잭션 로그의 제한된 창을 저장합니다. Aurora DSQL은 이러한 기능을 사용하여 다중 리전 내구성과 가용성을 제공합니다.

Create cluster를 선택하면, 이제 새로운 DSQL 클러스터가 만들어집니다. 이 클러스터는 US East (N. Virginia) 리전에 클러스터를 두고, US East (Ohio) 리전에 연결된 클러스터와 US West (Oregon) 리전에 감시 리전을 두고 있는 멀티 리전 구성으로 이루어져 있습니다.

AWS CLI을 통해서도 간단하게 클러스터를 구성할 수 있습니다.

$ aws dsql create-cluster --region us-east-1

다음과 같은 응답을 받을 수 있습니다.

{
 "identifier": "foo0bar1baz2quux3quuux4",
 "arn": "arn:aws:dsql:us-east-1:111122223333:cluster/foo0bar1baz2quux3quuux4",
 "status": "CREATING",
 "creationTime": "2024-05-25T16:56:49.784000-07:00",
 "deletionProtectionEnabled": true
}

Aurora DSQL은 새로운 API 인터페이스를 제공합니다. API을 사용하여 Aurora DSQL에서 리소스를 관리할 수 있습니다. 예를 들어, Aurora DSQL을 데이터베이스로 사용하는 Django 기반 애완동물 병원 웹 애플리케이션을 만들거나, AWS Lambda 함수를 이용해서 손쉽게 데이터베이스 연결이 가능합니다. Aurora DSQL GitHub 리포지토리에 다양한 프로그래밍 언어로 Aurora DSQL을 연결하고 사용하는 방법에 대한 코드 예제가 포함되어 있습니다.

이제 멀티 리전 액티브-액티브 기능을 활용하여, 글로벌 애플리케이션을 구축하는 방법에 대해서는 아래 데모 영상을 참고하세요. 신규 클러스터를 생성하는 방법, 보안 연결을 위한 인증 토큰을 생성하는 방법, AWS Amplify를 포함하여 2개의 개별 AWS 리전에서 작동하는 방법을 소개합니다.

알아두실 사항
몇 가지 염두해 두실 추가 기능입니다.

  • 확장성 – Aurora DSQL은 모든 워크로드 수요를 충족하는 데 도움이 되는 거의 무제한의 확장성을 제공합니다. 쿼리 처리 계층, 커밋 계층 및 스토리지 계층은 독립적으로 확장되어 다양한 읽기/쓰기 비율, 데이터 크기 및 쿼리 복잡성을 포함한 모든 형태의 워크로드에 적응합니다.
  • 동시성 – 기존 데이터베이스와 달리 Aurora DSQL은 기존 잠금 방식 대신 낙관적 동시성 제어(OCC)를 사용합니다. 규모가 확장됨에 따라 OCC는 더 긴 트랜잭션으로 인해 다른 진행 중인 트랜잭션의 속도가 느려지지 않도록 합니다. Aurora DSQL의 OCC에 대한 자세한 내용은 Amazon Aurora DSQL의 동시성 제어를 참조하세요.
  • 편리성 – Aurora DSQL은 단일 API 호출로 새 클러스터를 빠르게 생성하고 몇 분 내에 PostgreSQL 호환 데이터베이스를 사용할 수 있습니다. 많은 일반적인 PostgreSQL 드라이버 및 도구뿐만 아니라 ACID 트랜잭션, SQL 쿼리, 보조 인덱스, 조인, 삽입 및 업데이트와 같은 핵심 관계형 기능을 지원합니다.
  • 보안성 – Aurora DSQL은 간단한 선언적 개인 정보 보호 및 보안 제어와 함께 AWS Identity and Access Management (AWS IAM) 및 AWS CloudTrail과의 완전한 통합을 통해 보안을 강화합니다. PostgreSQL wire protocol 호환성을 희생하지 않고, AWS CLI 및 AWS SDK를 통한 토큰 생성을 통해 표준 사용자 암호 기반 인증을 차단 합니다.

미리 보기 출시
Aurora DSQL은US East (N. Virginia) 리전에서 미리보기로 테스트 해 보실 수 있습니다. 더 자세한 것은 Aurora DSQL 제품 페이지를 참조하거나 AWS 서비스 사용 설명서를 참조하세요. 피드백을 보내려면 AWS re:Post for Aurora DSQL를 이용하거나 평소 연락하는 AWS Support 담당자를 통해 전달해 주세요.

이 글은 AWS Database Blog의 Introducing Amazon Aurora DSQL를 한국어로 번역 및 재편집하였습니다.