Amazon Web Services 한국 블로그

Amazon DocumentDB 신규 출시 – MongoDB 호환 가능한 빠르고 확장성 높은 고가용성 문서 데이터베이스

AWS 데이터베이스 페이지를 보면, AWS에서는 고객들의 특정 요구 사항을 충족하기 위해 각각 고유한 용도의 다양한 유형의 데이터베이스 서비스를 제공하고 있습니다.  즉, 애플리케이션에 따라서 관계형(RDB), 키-값(Key-Value), 인메모리(In-memory), 그래프(Graphe), 시계열(Time series), 원장(Ledger) 데이터베이스 등을 다양하게 조합하여 멋지고 강력한 애플리케이션을 구축할 수 있습니다.

Amazon DocumentDB(MongoDB 호환성 포함) 소개

오늘 AWS에서는 빠르고 확장 가능하면서 고가용성을 제공하는 문서 데이터베이스로서 기존의 MongoDB 애플리케이션 및 도구와 호환되도록 설계된 Amazon DocumentDB를 출시합니다. DocumentDB는 3개의 개별 가용 영역에 걸쳐 6개의 복제를 제공하는 특수 용도의 SSD 기반 스토리지 계층을 사용합니다. 이 스토리지 계층은 분산형으로 구성되어 내결함성 및 자가 복구 기능을 탑재하고 있어 정식 서비스 규모의 MongoDB 워크로드를 전환하는 데 필요한 성능, 확장성 및 가용성을 제공합니다.

각 MongoDB 데이터베이스는 일련의 컬렉션을 포함합니다. 관계형 데이터베이스 테이블과 유사한 각 컬렉션에는 일련의 문서를 포함하며 각 문서는 JSON과 유사한 BSON 형식을 사용합니다. 예를 들면 다음과 같습니다.

{
  name: "jeff",
  full_name: {first: "jeff", last: "barr"},
  title: "VP, AWS Evangelism",
  email: "jbarr@amazon.com",
  city: "Seattle",
  foods: ["chocolate", "peanut butter"]
}

각 문서는 필드-값 쌍과 데이터로 이루어진 고유한 세트를 가질 수 있으며 별도로 정해져 있거나 사전 정의된 스키마를 사용하지 않습니다. MongoDB API는 일반적인 CRUD(create, read, updatedelete) 작업과 다양한 쿼리 모델을 포함합니다. 이는 일부에 불과합니다. MongoDB API는 매우 강력하고 유연하므로 자세한 내용은 지원되는 MongoDB 작업, 데이터 유형 및 함수를 참조하십시오.

DocumentDB 소개

Amazon DocumentDB는 아래와 같은 특징을 가지고 있습니다.

  • 호환성 –  MongoDB  API 버전 3.6과 호환됩니다.
  • 확장성 – 스토리지는 10GB에서 시작하여 10GB 단위로 증가하여 최대 64TB까지 확장할 수 있습니다. 스토리지를 사전 할당하거나 여유 공간을 모니터링할 필요도 없습니다. Amazon DocumentDB가 이 과정을 알아서 처리해 줍니다. 고객은 6가지의 인스턴스 크기(15.25GiB ~ 488GiB 메모리) 중에서 선택할 수 있으며 최대 15개의 읽기 복제본을 생성할 수 있습니다. 스토리지와 컴퓨팅은 분리되어 있으며 각 리소스의 크기는 독립적으로 필요에 따라 조정할 수 있습니다.
  • 성능Amazon DocumentDB는 데이터베이스 변경 사항은 로그 스트림 형태로 저장하므로 초당 수백만 건의 읽기 작업을 밀리초 수준의 지연 시간 내에 처리할 수 있습니다. 이 스토리지 모델은 데이터 내구성의 타협 없이 우수한 성능을 제공하며 전반적인 확장성을 대폭 향상해 줍니다.
  • 안정성 – 6중 스토리지 복제는 고가용성을 보장합니다. Amazon DocumentDB는 기본 데이터베이스에서 복제본으로 30초 내에 장애 조치를 수행하며, MongoDB 복제본 세트 에뮬레이션을 지원하므로 애플리케이션이 장애 조치를 신속하게 처리할 수 있습니다.
  • 완전관리형 – 다른 AWS 데이터베이스 서비스와 같이 Amazon DocumentDB는 모니터링, 장애 탐지 및 장애 조치가 내장된 완전관리형 서비스입니다. 고객은 일일 스냅샷 백업을 설정하고, 수동 스냅샷을 생성할 수 있으며 필요한 경우 둘 중 하나를 사용하며 새로운 클러스터를 생성할 수 있습니다. 또한 1~35일 백업 보존 기간 내의 원하는 지점으로 시점(point-in-time) 복원(보조 레벨 해상도 포함)을 수행할 수 있습니다.
  • 보안 – 고객은 Amazon DocumentDB 클로스터를 생성할 때 원하는 KMS 키를 사용하여 활성 데이터, 스냅샷 및 복제본을 암호화할 수 있습니다. 인증 및 이동 중인 데이터의 암호화는 기본적으로 활성화되어 있습니다.
  • 호환성 – 앞에서 말씀 드렸듯이 Amazon DocumentDB는 기존의 MongoDB 애플리케이션 및 도구와 작동하도록 설계되어 있습니다. 다만 잊지 말고 MongoDB 3.4 이상을 위한 드라이버를 사용해야 합니다. 내부적으로 Amazon DocumentDB는 MongoDB 클라이언트가 MongoDB 서버로부터 예상하는 응답을 에뮬레이션하여 MongoDB 3.6 API를 구현합니다.

시작하기

Document DB 클러스터는 AWS 관리 콘솔, 명령줄, CloudFormation에서 또는 CreateDBCluster 함수에 대한 호출을 사용하여 생성할 수 있습니다. 여기에서는 Amazon DocumentDB 콘솔을 사용하겠습니다.

시작하려면 콘솔을 열고 Launch Amazon DocumentDB(Amazon DocumentDB 시작)을 클릭합니다.

클러스터의 이름을 지정하고 인스턴스 클래스를 선택한 다음 인스턴스의 수를 지정합니다(하나는 기본 인스턴스이고 나머지는 복제본). 그런 다음 마스터 사용자 이름 및 암호를 입력합니다.

클러스터에는 다음과 같은 여러 인스턴스 클래스 중 하나를 사용할 수 있습니다.

이 시점에서 Create cluster(클러스터 생성)를 클릭하여 기본 설정을 사용하거나 Show advanced settings(고급 설정 표시)를 클릭하여 추가적으로 설정을 제어할 수 있습니다. 여기에서 원하는 VPC, 서브넷 및 보안 그룹을 선택할 수 있습니다. 클러스터에 대한 포트 및 파라미터 그룹도 설정할 수 있습니다.

암호화(기본적으로 활성)를 제어하고, 백업 보존 기간을 설정하고 시점 복원을 위한 백업 기간을 설정할 수 있습니다.

새 클러스터에 대한 유지관리 기간을 제어할 수도 있습니다. 준비가 되면 Create cluster(클러스터 생성)를 클릭하여 계속 진행합니다.

클러스터는 creating(생성 중) 상태에서 시작한 다음 곧바로 available(사용 가능) 상태로 전환됩니다.

클러스터 내의 인스턴스도 똑같이 시작됩니다.

클러스터 연결

클러스터가 실행되면 EC2 인스턴스 중 하나에 mongo shell을 설치(세부 사항은 배포 환경에 따라 다름)하고 인증서를 가져와 보안 연결을 설정합니다.

$ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

콘솔에는 연결을 설정하기 위해 사용해야 할 명령이 표시됩니다.

클러스터를 생성할 때 지정했던 암호를 사용하여 간단하게 명령을 사용자 정의합니다.

여기에서 다양한 mongo shell 명령을 사용하여 데이터를 삽입, 쿼리 및 검사할 수 있습니다. 저는 매우 간단한 문서를 삽입한 다음 똑같이 간단한 쿼리를 실행했습니다(여러분은 더 복잡한 작업도 수행하실 수 있을 것입니다).

정식 출시

Amazon DocumentDB(MongoDB 호환성 포함)는 정식 출시되었으며 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(오레곤)유럽(아일랜드) 리전에서 바로 사용할 수 있습니다. 요금은 인스턴스 클래스, 현재 문서 및 스냅샷이 사용하는 스토리지 용량, I/O 작업 및 데이터 전송에 기반합니다.

Jeff;