아마존 심플DB

Amazon Simple
SimpleDB 로고

Amazon SimpleDB는 Amazon.com에서 Erlang으로[1] 작성된 분산 데이터베이스입니다.Amazon Elastic Compute Cloud(EC2) 및 Amazon S3함께 서비스로 사용되며 Amazon Web Services의 일부입니다.그것은 [2]2007년 12월 13일에 발표되었다.

EC2 및 S3와 마찬가지로 Amazon은 인터넷을 통한 SimpleDB 스토리지, 전송 및 throughput에 대해 요금을 부과합니다.2008년 12월 1일, Amazon은 1GB의 데이터와 25시간의 머신 아워에 대해 Free[3] Tier를 사용한 새로운 가격을 발표했습니다.다른 Amazon Web Services로의 전송은 [2]무료입니다.

제한 사항

SimpleDB는 다른 데이터베이스 관리 시스템에 비해 일관성이 약한 최종적인 일관성을 제공합니다.이것은 종종 제한으로 간주됩니다.이거는 추론하기가 어려우므로 SimpleDB를 사용하는 올바른 프로그램을 작성하기가 어렵습니다.이러한 제한은 기본적인 설계 트레이드오프의 결과입니다.전술한 일관성을 통해 시스템은 다음 두 가지 매우 바람직한 특성을 달성할 수 있습니다.

  1. 가용성 – 시스템 컴포넌트에 장애가 발생할 수 있지만 서비스는 계속 정상적으로 작동합니다.
  2. 파티션 허용 – 시스템 내의 컴포넌트는 컴퓨터 네트워크에 의해 서로 연결됩니다.컴포넌트가 네트워크를 사용하여 서로 통신할 수 없는 경우(네트워크 파티션이라고 함) 시스템의 동작은 계속됩니다.

컴포넌트 장애는 불가피하다고 가정합니다.따라서 이들 속성은 모두 신뢰성 높은 웹 서비스를 제공하기 위해 필요하다고 간주되었습니다.CAP 정리에 따르면 시스템이 일관성과 함께 이러한 특성을 보이는 것은 불가능하므로 설계자는 보다 약한 형태의 일관성에 만족해야 합니다.

공개된 [4]제한 사항:

스토어 제한

기여하다 최대치
도메인 계정당 250개의 활성 도메인양식을 [5]작성하면 더 많은 것을 요청할 수 있습니다.
각 도메인의 크기 10 GB
도메인별 속성 1,000,000,000
항목당 속성 256 아트리뷰트
속성당 크기 1,024 바이트

쿼리 제한

기여하다 최대치
쿼리 응답에서 반환된 항목 2,500개 품목
쿼리 실행 시간(초) 5초
쿼리 술어별 속성 이름 1 애트리뷰트명
술어별 비교 22명의 오퍼레이터
쿼리 식별 술어 술어 20개

특징들

조건부 입력 및 삭제

조건부 풋과 조건부 삭제는 2010년 2월에 추가된 새로운 작업입니다.SimpleDB에 동시에 액세스할 때 발생하는 문제에 대처합니다.카운터를 저장하기 위해 SimpleDB를 사용하는 간단한 프로그램(증분 가능한 숫자)을 생각해 보십시오.프로그램은 다음 세 가지 작업을 수행해야 합니다.

  1. SimpleDB에서 카운터의 현재 값을 가져옵니다.
  2. 값에 1을 추가합니다.
  3. 새 값을 SimpleDB의 이전 값과 동일한 위치에 저장합니다.

다른 프로그램이 SimpleDB에 액세스하지 않고 이 프로그램을 실행하면 정상적으로 동작합니다.단, 소프트웨어 애플리케이션(특히 웹 애플리케이션)은 같은 데이터에 동시에 액세스 하는 것이 바람직합니다.같은 데이터에 동시에 액세스 하면 레이스 상태가 발생하여 검출할 수 없는 데이터 손실이 발생합니다.

앞의 예에서 A와 B의 2개의 프로세스가 같은 프로그램을 실행하고 있다고 생각해 주세요.1단계에서 설명한 바와 같이 SimpleDB가 A와 B 모두에서 데이터 요청을 처리한다고 가정합니다.A와 B의 값은 동일합니다.카운터의 현재 값이 0이라고 합니다.스텝 2와 스텝3에 의해 A는 1을 저장하려고 합니다.따라서 시스템이 A와 B의 2개의 증분 조작을 시도했기 때문에 예상되는 최종 카운터 값은 2이지만 최종 카운터 값은 1이 됩니다.

이 문제는 조건부 풋을 사용함으로써 해결할 수 있다.스텝 3을 다음과 같이 변경한다고 가정합니다.새로운 값을 무조건 저장하는 대신 현재 보유하고 있는 값이 스텝1에서 취득한 값과 동일한 경우에만 프로그램은 SimpleDB에 새로운 값을 저장하도록 요구합니다.그러면 카운터의 값이 실제로 증가하는 것을 확인할 수 있습니다.이로 인해 몇 가지 추가 복잡성이 발생합니다. SimpleDB가 현재 값이 예상과 달라서 새로운 값을 저장할 수 없는 경우 조건부 입력 조작에 의해 실제로 저장된 값이 변경될 때까지 프로그램은 스텝1 ~ 3을 반복해야 합니다.

일관성 있는 읽기

일관성 있는 읽기는 조건부 풋과 조건부 삭제와 동시에 출시된 새로운 기능입니다.이름에서 알 수 있듯이 일관된 읽기는 SimpleDB의 궁극적인 일관성 모델로 인해 발생하는 문제에 대처합니다(제한사항 섹션 참조).다음의 조작 순서를 고려해 주세요.

  1. 프로그램 A는 일부 데이터를 SimpleDB에 저장합니다.
  2. 그 직후 A는 방금 저장한 데이터를 요청한다.

SimpleDB의 궁극적인 일관성 보증에서는 2단계에서 취득한 데이터가 1단계에서 수행한 업데이트를 반영한다고 말할 수 없습니다.최종적으로 일관성이 확보되는 것은 스텝2가 스텝1의 전체 업데이트세트를 반영하거나 이러한 업데이트는 반영하지 않는 것 뿐입니다.일관된 읽기를 사용하여 2단계에서 검색된 데이터가 1단계에서 변경된 내용을 반영하도록 할 수 있습니다.

일관성 있는 읽기 작업을 사용하지 않을 때 일관성 없는 결과가 발생할 수 있는 이유는 SimpleDB가 (가용성을 위해) 여러 위치에 데이터를 저장하기 때문에 스텝2에서 SimpleDB가 데이터 요청을 수신할 때 스텝1의 새로운 데이터가 모든 위치에 기록되지 않을 수 있습니다.이 경우 스텝 2의 데이터 요구는 새로운 데이터가 기입되지 않은 장소 중 하나에서 처리될 수 있습니다.

Amazon은 정확성을 위해 필요하지 않는 한 일관된 읽기를 사용하지 않는 것이 좋습니다.이 권장사항이 있는 이유는 일관된 읽기 작업이 처리되는 속도가 일반 읽기보다 낮기 때문입니다.

다이너모와의 관계DB

SimpleDB가 DynamoDB로 대체된다는 이야기가 있었습니다(Amazon은 삭제할 계획이 없지만 더 이상 "[6]반복"되지 않습니다).DynamoDB는 그 [7][8]후계자로 보인다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Amazon에 대해 알아야 할 사항 심플DB
  2. ^ a b "AWS Amazon SimpleDB – Simple Database Service". Amazon Web Services, Inc.
  3. ^ SimpleDB - Free Tier - AWS 가격 변경 2008-12-25 Wayback Machine에서 아카이브됨
  4. ^ "Limits", SimpleDB Developer Guide, Amazon (API 최신 버전).
  5. ^ Amazon SimpleDB 도메인의 할당을 늘리기 위한 요청입니다.Aws.amazon.com 를 참조해 주세요.2013-08-09에 취득.
  6. ^ "AWS Developer Forums: SimpleDB future? ..." forums.aws.amazon.com.
  7. ^ http://aws.amazon.com/dynamodb/faqs/ #How_does_Amazon_DynamoDB_differ_from_Amazon_SimpleDB_Which_I_use Dynamo"는 SimpleDB의 제한에 대처하기 위해 작성되었습니다.
  8. ^ "Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications - All Things Distributed". www.allthingsdistributed.com. 18 January 2012.

외부 링크