BLOG

Amazon 데이터베이스 신기능, QLDB(Amazon Quantum Ledger Database) 출시
작성일: 2019-10-16

광범위한 데이터 유형, 쿼리 모델, 인덱싱 옵션, 스케일링 기대 및 성능 요구 사항을 감안할 때 데이터베이스는 모든 제품에 맞는 1가지의 사이즈는 아닙니다. 그렇기 때문에 각기 다른 유형의 애플리케이션 요구를 충족시키기 위해 각기 다른 전용 AWS 데이터베이스가 다수 제공되고 있습니다.

QLDB의 소개

오늘은 2019년 9월 10일 출시된 AWS 데이터베이스 제품군의 최신 기능인 Amazon QLDB에 대해 말씀드리겠습니다. AWS re: Invent 2018에서 처음 발표되어 프리뷰 형식으로 제공되었으며 이제 5개의 AWS 지역에서 프로덕션 형식으로 제공됩니다.

 

원장 데이터베이스인 QLDB는 저장된 데이터에 대한 권한 있는 데이터 소스 (대부분 기록 시스템)를 제공하도록 설계되었습니다. 업데이트, 변경 또는 삭제할 수 없는 데이터에 대해 관련된 모든 변경 사항의 변경 불가능한 기록을 유지합니다. QLDB는 이력 데이터에 대한 PartiQL SQL 쿼리를 지원하며 이력이 정확하고 합법적인지 암호화로 확인할 수 있는 API를 제공합니다. 이러한 기능 덕분에 QLDB는 은행 및 금융, 전자 상거래, 운송 및 물류, HR 및 급여, 제조 및 정부 응용 분야 및 저장된 데이터의 무결성과 이력을 유지해야 하는 기타 많은 사용 사례에 적합합니다.

 

중요한 QLDB 개념

들어가기 전에 가장 중요한 QLDB 개념을 검토해 보겠습니다.

 

원장 – QLDB 원장은 일련의 QLDB 테이블과 테이블에 대한 변경 불가능한 전체 이력을 유지하는 저널로 구성됩니다. 원장은 이름이 지정되며 태그를 지정할 수 있습니다.

 

저널 – 저널은 변경 사항을 확인할 수 있도록 일련의 블록으로 구성되며 각 블록은 이전 블록에 암호화되어 연결됩니다. 또한 블록에는 효율적인 검색을 위해 인덱스 된 테이블에 대한 실제 변경 사항이 포함됩니다. 이 추가 전용 모델을 사용하면 이전 데이터를 편집하거나 삭제할 수 없으며 원장을 변경할 수 없습니다. QLDB를 사용하면 저널의 일부 또는 전부를 S3으로 내보낼 수 있습니다.

 

테이블 – 테이블은 원장 내에 존재하며 문서 개정 모음을 포함합니다. 테이블은 문서 필드에서 선택적 인덱스를 지원합니다. 인덱스는 등호 (=) 를 사용하는 쿼리의 성능을 향상시킬 수 있습니다.

 

문서 – 문서는 테이블 내에 존재하며 Amazon Ion  형식이어야 합니다. 이온은 추가 데이터 유형, 유형 주석 및 주석을 추가하는 JSON의 상위 집합입니다. QLDB는 중첩 JSON 요소가 포함된 문서를 지원하며, 이러한 요소를 참조하고 포함하는 쿼리를 작성하는 기능을 제공합니다. 문서는 특정 스키마를 준수하지 않아도 되므로 변경 사항에 쉽게 적용 할 수 있는 응용 프로그램을 유연하게 구축할 수 있습니다.

 

PartiQL – PartiQL 은 특정 데이터 소스와 독립적으로 유지하면서 관계형 데이터, 반 구조적 데이터, 중첩된 데이터에 대한 SQL 호환 액세스를 지원하는 새로운 개방형 표준 쿼리 언어입니다. 자세한 내용은 ‘PartiQL 발표: 모든 데이터에 대한 하나의 쿼리 언어’ 를 참조하십시오.

 

서버리스 – 용량 프로비저닝 또는 읽기 및 쓰기 처리량 구성에 대해 걱정할 필요가 없습니다. 원장을 작성하고 테이블을 정의하면 QLDB가 자동으로 애플리케이션의 요구에 맞게 확장됩니다.

 

QLDB의 사용

AWS Management ConsoleAWS Command Line Interface (CLI), CloudFormation 템플릿 또는 QLDB API를 호출하여QLDB 원장을 생성 할 수 있습니다. QLDB 콘솔을 사용하고 ‘Amazon QLDB 시작하기’의 단계를 따릅니다. 콘솔을 열고 자습서 시작을 클릭하여 시작하십시오.

시작하기 페이지는 처음 세 단계를 간략하게 설명합니다. ‘원장 만들기’를 클릭하여 계속 진행합니다. (새 브라우저 탭에서 열립니다).

원장의 이름을 입력하고 (차량 등록) 태그를 지정한 다음 원장 만들기를 다시 클릭하여 계속 진행합니다.

원장은 상태 생성으로 시작하여 1-2분 내에 활성으로 전환됩니다.

시작하기 페이지로 돌아가서 원장 목록을 새로 고침하고 새 원장을 선택한 다음 샘플 데이터 로딩을 클릭합니다.

이것은 1초 정도 걸리며 4개의 테이블과 6개의 인덱스를 만듭니다.

또한 같은 PartiQL 문구를 사용할 수 있습니다 CREATE TABLE, CREATE INDEX그리고 INSERT INTO같은 작업을 수행 할 수 있습니다.

 

내 테이블, 인덱스 및 샘플 데이터가 로딩되면 Editor를 클릭하고 첫 번째 쿼리 (단일 테이블 SELECT)를 실행합니다.

이렇게 하면 단일 행이 반환되고 VIN필드의 인덱스가 도움이 됩니다. 두 테이블을 결합하는, 보다 복잡한 쿼리를 실행할 수도 있습니다.

문서의 ID를 취득하여 (여기에서 쿼리 사용) 문서를 업데이트 할 수 있습니다.

특정 범위 내 및 특정 문서에서 변경 사항을 찾을 수 있는 기능을 사용하여 테이블 또는 테이블의 특정 문서에 대한 변경 기록을 쿼리 할 수 있습니다. (자세한 내용은 쿼리 수정 내역 기록 참조). 다음 VehicleRegistration은 이 게시 글을 작성한 날에 작성된 표의 모든 문서에 대한 변경 기록을 반환하는 간단한 쿼리입니다.

보시다시피, 각 행은 구조화된 JSON 객체입니다. 원하는 행을 선택하고 추가 검사를 위해 JSON보기를 클릭 할 수 있습니다.

앞서 PartiQL이 중첩된 데이터를 처리 할 수 ​​있다고 언급했습니다. 이 VehicleRegistration 테이블에는 다음과 같은 소유권 정보가 포함되어 있습니다.

 

{

   “Owners”:{

      “PrimaryOwner”:{

         “PersonId”:”6bs0SQs1QFx7qN1gL2SE5G”

      },

      “SecondaryOwners”:[

 

      ]

  }

PartiQL에서는“.”표기법을 사용하여 중첩 된 데이터를 참조 할 수 있습니다.

또한 원장 일지에 저장된 문서의 정합성을 확인할 수도 있습니다. 이것은 ‘원장의 문서 확인’에서 자세히 설명되어 있으며 암호화 검증의 힘 (및 가치)에 대한 훌륭한 예입니다. 각 QLDB 원장에는 연관된 다이제스트가 있습니다. 다이제스트는 256비트 해시값으로 특정 시점에서 원장의 전체 문서 개정 내역을 특유의 형태로 나타냅니다. 다이제스트에 액세스하려면 원장을 선택하고 ‘다이제스트 가져오기’를 클릭하십시오 .

저장을 클릭하면 원장을 확인하는 데 필요한 모든 정보가 포함된 짧은 파일이 콘솔에서 제공됩니다. 원장에서 문서를 확인할 때 사용할 수 있도록 이 파일을 안전한 곳에 저장합니다. 그 때가 되면 파일을 가져와서 왼쪽 탐색에서 ‘확인’을 클릭하고 수행하는 데 필요한 값을 입력합니다. 여기에는 문서 개정의 차단 주소 및 문서의 ID가 포함됩니다. 또한 이전에 저장된 다이제스트를 선택하고 확인을 클릭합니다.

QLDB는 해시를 다시 계산하여 문서가 부당하게 변경되지 않았는지 확인하고 검증을 표시합니다.

실제 가동 환경에서는 QLDB API를 사용하여 정기적으로 다이제스트를 다운로드하며, 문서의 정합성을 검증합니다.

 

QLDB를 이용한 애플리케이션의 구축

Java 용 Amazon QLDB Driver를 사용하여 원장 데이터베이스에 액세스하고 조작하는 코드를 만들 수 있습니다. 세션을 생성하고 트랜잭션 범위 내에서 PartiQL 명령을 실행하며 결과를 취득할 수 있는 Java 드라이버입니다. 다른 언어의 드라이버가 개발 중이므로, 자세한 내용은 계속 관심 가져 주시길 바랍니다.

 

정식 출시

아마존 QLDB는 미국 동부 (N. 버지니아), 미국 동부 (오하이오), 미국 서부 (오레곤), 유럽 (아일랜드) 및 아시아 태평양 (도쿄) 지역에서 사용할 수 있습니다. 가격은 다음 요소를 기반으로 하며 ‘Amazon QLDB 가격 페이지’에 실제 사례와 함께 자세히 설명되어있습니다.

  • 쓰기 작업
  • 읽기 작업
  • 저널 저장
  • 인덱스 스토리지
  • 데이터 전송

 

원문 URL: https://aws.amazon.com/ko/blogs/aws/now-available-amazon-quantum-ledger-database-qldb/

 

** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.