23
Amazon Web Services AWS 스토리지 옵션 2010 12 AWS 클라우드의 스토리지 옵션 Joseph Baron, Amazon Web Services Robert Schneider, Think88 2010 12

AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

AWS 클라우드의 스토리지 옵션

Joseph Baron, Amazon Web Services Robert Schneider, Think88

2010 년 12 월

Page 2: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

2/23 페이지

서론

AWS (Amazon Web Services)는 다양한 클라우드 기반 데이터 스토리지 옵션이 포함된 유연하고 비용 효율적이며

사용이 간편한 클라우드 컴퓨팅 플랫폼입니다. 이러한 스토리지 옵션은 설계자와 개발자에게 폭넓은 옵션을

제공합니다.

본 백서는 AWS 클라우드 컴퓨팅 플랫폼에서 사용할 수 있는 기본 데이터 스토리지 옵션에 대한 사용자의 이해를

돕기 위해 마련되었습니다. 본 백서에는 각 스토리지 옵션에 대한 개요, 이상적인 사용 시나리오, 탄력성 및

확장성과 같은 중요한 클라우드 특성이 나와 있습니다. 특히 각 스토리지 옵션의 내구성 수준을 집중적으로

다루었습니다. 본 백서 말미에는 여러 스토리지 옵션이 비교된 빠른 참조 표가 있습니다. 추가 리소스는 “참고

문헌” 섹션을 참조하십시오.

마지막으로, 별도의 부록에는 스토리지 사용 사례가 몇 가지 나와 있습니다. 이 사례에서 여러 AWS 클라우드

스토리지 옵션을 조합하여 사용하는 방법을 보여줍니다. 사용할 스토리지 아키텍처를 설계할 때 이러한 사용

사례를 지침으로 활용할 수 있습니다.

기존 방식의 스토리지 방식과 클라우드 기반 방식 비교

기존 방식의 온 프레미스 IT 인프라 및 애플리케이션의 구축가가 선택할 수 있는 데이터 스토리지 종류는 수없이

많습니다.

메모리—파일 캐시, 객체 캐시, 메모리 내 데이터베이스, RAM 디스크와 같은 메모리 내 스토리지는 데이터

액세스 속도가 매우 빠릅니다.

메시지 대기열—컴퓨터 시스템 또는 애플리케이션 구성 요소 간에 비동기적으로 발송된 데이터를 위한

내구성이 뛰어난 임시 스토리지입니다.

SAN (스토리지 영역 네트워크)—전용 SAN 의 블록 디바이스(가상 디스크 LUN)는 보통 비즈니스 크리티컬

파일 데이터 및 데이터베이스 스토리지에 최고 수준의 디스크 성능과 내구성을 제공합니다. 하지만 가장

비싼 시스템에 속합니다.

DAS (직접 연결 스토리지)—각 서버에 상주하는 로컬 하드 디스크 드라이브 또는 배열은 SAN 보다 우수한

성능을 제공하나 임시 및 영구 파일, 데이터베이스 스토리지 및 OS(운영 체제) 부팅 스토리지에 대한

내구성은 SAN 보다 다소 부족합니다.

NAS (네트워크 연결 스토리지)—NAS 스토리지는 여러 시스템에서 공유할 수 있는 스토리지에 파일 수준의

인터페이스를 제공합니다. NAS 는 SAN 또는 DAS 보다 속도가 느립니다.

데이터베이스—구조화된 데이터는 일반적으로 MySQL, PostgreSQL, Oracle, Microsoft SQL Server 및 DB2 와

같은 관계형 데이터베이스나 비관계형 데이터베이스 리포지토리를 통해 관리되거나 액세스됩니다.

데이터베이스 스토리지 볼륨은 일반적으로 SAN 또는 DAS 디바이스에 상주합니다.

오프라인—백업 및 보관을 위한 데이터는 일반적으로 테이프, CD, DVD 등과 같은 디스크 이외의 미디어에

저장되며, 이러한 미디어는 보통 재해 복구를 위해 안전한 원격지에 보관됩니다.

Page 3: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

3/23 페이지

이러한 기존 방식의 스토리지 옵션은 성능, 내구성, 비용 및 인터페이스에 있어서 각각 차이가 있습니다. 구축가는

당면한 작업에 적합한 스토리지 솔루션을 모색할 때 이러한 요소 모두를 고려합니다. 특히 대부분의 IT 인프라와

애플리케이션 아키텍처에는 여러 스토리지 기술이 서로 조화롭게 기능하고, 이러한 각 기술은 데이터 스토리지의

특정 하위 클래스에 대한 요구가 충족되도록 선택된 것입니다. 이러한 기술 조합으로 인해 데이터 스토리지

티어의 계층이 형성됩니다.

본 백서 전반에 걸쳐 살펴보겠지만, AWS 는 여러 클라우드 기반 스토리지 옵션을 제공합니다. 각 옵션은 성능,

내구성, 비용, 인터페이스가 고유한 방식으로 조합을 이루고 탄력성, 가용성 및 확장성 등의 추가 요소 덕분에

한층 더 향상되었습니다. 이러한 추가 요소는 웹 스케일 클라우드 기반 솔루션에 있어 필수적입니다. 기존 방식의

온 프레미스 애플리케이션에서와 마찬가지로 여러 클라우드 스토리지 옵션을 함께 사용하여 광범위한 데이터

스토리지 계층을 형성할 수 있습니다.

본 백서에서는 다음과 같은 AWS 클라우드 스토리지 옵션을 다룹니다.

Amazon EC2 Elastic Block Storage (EBS) 볼륨

Amazon EC2 로컬 인스턴스 스토리지(임시) 볼륨

Amazon Simple Storage Service (Amazon S3)

Amazon Simple Queue Service (SQS)

Amazon SimpleDB

Amazon EC2 관계형 데이터베이스

Amazon Relational Database Service (RDS)

이제 각 AWS 스토리지 옵션을 좀 더 자세하게 살펴보겠습니다. 각 옵션별로 다음과 같은 정보가 제공됩니다.

이름 및 설명

이상적인 사용 시나리오

성능

내구성 및 가용성

비용

탄력성 및 확장성

인터페이스

안티 패턴, 안티 패턴. 상황에 따라 다른 스토리지 옵션이 더 나을 수 있음

Page 4: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

4/23 페이지

AWS 스토리지 모음 간 추가 비교 범주는 36 페이지의 AWS 스토리지 빠른 참조를 참조하십시오.

Amazon Elastic Block Store (EBS) 볼륨

Amazon Elastic Block Store (EBS) 볼륨은 Amazon EC2 인스턴스(가상 머신)에 사용할 수 있는 내구성이 뛰어난 블록

수준의 스토리지를 제공합니다. Amazon EBS 볼륨은 단일 Amazon EC2 인스턴스의 수명과 관계없이 지속되는 오프

인스턴스, 네트워크 연결 스토리지입니다. EBS 볼륨을 Amazon EC2 인스턴스에 연결하면 일반적으로 선택한 파일

시스템으로 포맷팅하여 실제 하드 디스크 드라이브를 이용하는 것처럼 볼륨을 자유롭게 이용할 수 있습니다.

EBS 볼륨을 사용하여 Amazon EC2 인스턴스(EBS AMI 만 해당)를 부팅하고 여러 EBS 볼륨을 단일 Amazon EC2

인스턴스에 연결할 수 있습니다. 그러나 단일 EBS 볼륨은 특정 시점에서 단 하나의 Amazon EC2 인스턴스에만

연결될 수 있습니다. EBS 볼륨은 EBS 스냅샷을 생성하지 않는 한 다른 사용자와 공유할 수 없습니다(다음 “내구성

및 가용성” 섹션 참조). EBS 볼륨의 크기는 1GB ~ 1TB 이며, 1GB 간격으로 증분 할당됩니다.

이상적인 사용 시나리오

Amazon EBS 는 비교적 자주 변경되며 장기간 지속되어야 하는 데이터에 적합합니다. EBS 는 Amazon EC2 가상

서버를 위한 영구 가상 블록 모드 스토리지를 제공하므로 실제 서버에서 하드 드라이브를 이용하는 것처럼

이용할 수 있습니다. Amazon EBS 는 세분화된 업데이트가 필요하고 형식이 지정되지 않은 블록 수준의 원시

스토리지에 액세스해야 하는 애플리케이션 또는 파일 시스템이나 데이터베이스의 기본 스토리지로 사용하기에

특히 적합합니다.

성능

일반적으로 개별 EBS 볼륨은 외부 전원으로 연결된 USB 드라이브와 비슷한 수준의 성능, MTTF(평균 고장 시간) 및

안정성을 보입니다. EBS 볼륨은 로컬 디스크 드라이브처럼 보이기는 하나, 실제로는 Amazon EC2 인스턴스에

네트워크로 연결되어 있습니다. 따라서 인스턴스에 의해 수행되는 다른 네트워크 I/O 와 공유 네트워크상에서의

총 로드가 개별 EBS 볼륨 성능에 영향을 미칠 수 있습니다.

각 애플리케이션과 관련 성능이 고유하긴 하지만 EBS 볼륨을 사용하면 기존 방식의 여러 디스크 처리량 최적화

기술을 자유롭게 설계하고 배포할 수 있습니다. Amazon EC2 와 EBS 를 조합하면 온 프레미스 서버 및

스토리지에서 사용하는 것과 동일한 성능 최적화 기술을 상당수 사용할 수 있습니다. 예를 들어, 몇몇 볼륨을

생성하여 단일 Amazon EC2 인스턴스에 모두 연결할 수 있습니다. 여러 EBS 볼륨이 연결되면 로그 데이터,

데이터베이스, 파일 데이터에 각각 하나의 볼륨을 할당하여 전체 애플리케이션 I/O 로드를 분할할 수 있습니다.

또는 소프트웨어 RAID 0 디바이스 드라이버를 사용한 다음 사용 가능한 IOP, 전체 볼륨 처리량, 전체 볼륨 크기를

집계하여 데이터를 여러 EBS 볼륨에 나누어 저장할 수 있습니다.

내구성 및 가용성

각 Amazon EBS 볼륨은 단일 하드웨어 구성 요소의 고장으로 인한 데이터 유실을 방지하기 위해 동일한 가용 영역

내에 자동으로 복제됩니다. Amazon EBS 는 또한 PIT (Point in Time) 볼륨 스냅샷을 생성할 수 있는 기능을

제공합니다. 생성된 스냅샷은 Amazon S3 에 영구 저장됩니다(아래 참조). 스냅샷에서 새로운 Amazon EBS 볼륨을

생성할 수 있습니다. 이러한 스냅샷은 데이터를 장기간 보호하기도 합니다.

Page 5: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

5/23 페이지

EBS 볼륨의 내구성은 볼륨의 크기와 마지막 스냅샷 이후 변경한 데이터의 양에 따라 달라집니다. EBS 스냅샷은

마지막 스냅샷 이후 변경된 데이터 블록만을 포함하는 PIT (Point in Time) 백업입니다. 최근 스냅샷 이후 수정된

데이터 크기가 20GB 이하인 EBS 볼륨의 경우 AFR(연간 실패율)이 0.1% ~ 0.5%에 이를 것으로 예상됩니다.

EBS 볼륨에 저장된 데이터의 내구성과 가용성을 모두 극대화하기 위해 사용자는 EBS 볼륨의 스냅샷을 자주

생성해야 합니다. Amazon EBS 볼륨에 오류가 발생하더라도 볼륨의 모든 스냅샷은 온전히 유지되며 마지막

스냅샷을 이용해 볼륨을 재생성할 수 있습니다.

Amazon EBS 볼륨은 높은 가용성을 갖추도록 설계되었습니다. 그러나 EBS 볼륨은 특정 가용 영역에 생성되므로

가용 영역 자체를 사용할 수 없는 경우에는 EBS 볼륨도 사용할 수 없습니다. 단일 EBS 볼륨이 단일 가용 영역으로

제한되는 반면, 볼륨의 EBS 스냅샷은 지역 내 모든 가용 영역에서 사용할 수 있으며 EBS 스냅샷을 사용하여 어떤

가용 영역에서든 새로운 EBS 볼륨을 하나 이상 생성할 수 있습니다. EBS 스냅샷은 또한 다른 사용자 계정과 공유할

수도 있으며, 사용이 간편한 “디스크 클론” 및 “디스크 이미지” 백업과 공유 메커니즘을 제공합니다.

EBS 데이터의 내구성과 가용성을 모두 극대화하기 위해 사용자는 EBS 볼륨의 스냅샷을 자주 생성해야 합니다.

비용

모든 Amazon Web Services 에서와 마찬가지로 Amazon Elastic Block Store 요금은 최소 요금 또는 장기 약정이 없는

종량 과금제입니다. Amazon EBS 는 프로비저닝된 스토리지의 월별 GB 사용량과 I/O 요청 100 만 개에 대해 요금이

책정됩니다. 볼륨 스토리지는 사용자가 볼륨 스토리지를 해제할 때까지 할당된 양만큼 요금이 부과됩니다.

Amazon EBS 스냅샷은 저장된 데이터의 월별 GB 사용량, 스냅샷을 저장하고 로딩할 때 발생하는 GET 요청

10,000 개 및 PUT 요청 1,000 개에 대해 요금이 책정됩니다. EBS 스냅샷의 경우 실제로 사용한(소비한) 스토리지에

대해서만 요금이 부과됩니다. EBS 스냅샷은 증분되고 압축되므로, 어떤 스냅샷에서든 사용한 스토리지는

일반적으로 EBS 볼륨에서 소비한 스토리지보다 훨씬 적습니다. 요금에 대한 자세한 정보는

http://aws.amazon.com/ec2/pricing/ 에서 확인할 수 있습니다.

다양한 AWS 스토리지 솔루션(예: Amazon EC2 인스턴스와 EBS, Amazon S3, Amazon RDS 등)이 동일한 AWS 지역

내에 있으면 AWS 스토리지 솔루션 간에 정보를 전송할 때 추가 요금이 부과되지 않습니다.

탄력성 및 확장성

AWS 는 Amazon EC2 인스턴스에 사용할 스토리지 공간을 쉽게 확장할 수 있게 해줍니다. 새 EBS 볼륨을 생성하여

인스턴스에 연결하고 기존 인스턴스와 함께 사용할 수 있습니다. 새 볼륨을 생성하고 관리하기를 원하지 않을

경우 다음과 같이 단일 볼륨의 크기를 늘릴 수 있습니다.

1. 애플리케이션 또는 파일 시스템을 정지합니다.

2. EBS 볼륨 데이터의 스냅샷을 Amazon S3 (“Create Snapshot from Volume” 사용)에 생성합니다.

3. 스냅샷에서 새 EBS 볼륨을 생성하고 원래 볼륨보다 큰 크기를 지정합니다.

4. 원래 볼륨보다 크게 만든 새 볼륨을 Amazon EC2 인스턴스에 연결합니다.

5. 원래 EBS 볼륨을 분리하여 삭제합니다.

Page 6: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

6/23 페이지

인터페이스

Amazon EC2 인스턴스의 EBS 볼륨을 생성, 삭제, 설명, 연결 및 분리할 수 있도록 Amazon 은 SOAP 와 REST 형식

모두로 제어 API 를 제공합니다. API 를 사용하여 EBS 에서 스냅샷과 관련 속성을 생성, 삭제, 설명하며 Amazon S3

로 이동할 수도 있습니다. 그래픽 도구로 작업하려는 경우 AWS Management Console 및 ElasticFox Firefox 확장

프로그램은 사용이 편리한 브라우저 인터페이스의 API 기능을 모두 제공합니다. EBS 볼륨을 생성하는 방법과

관계없이 모든 스토리지는 볼륨 생성 시점에 할당되며, 스토리지를 사용하지 않더라도 이 스토리지에 대한 요금이

부과됩니다.

EBS 는 Amazon EC2 인스턴스에 블록 디바이스 인터페이스를 제공합니다. 즉, EBS 볼륨은 로컬 디스크

드라이브처럼 보이나 Amazon EC2 인스턴스에 연결되어 있습니다. 따라서 EBS 볼륨에서 데이터를 쓰고 읽으려면

선택한 운영 체제의 네이티브 파일 시스템 인터페이스를 사용하면 됩니다.

Amazon EBS 안티 패턴

앞서 설명한 바와 같이 EBS 는 단일 Amazon EC2 인스턴스의 수명 기간 이상 동안 지속되어야 하는 정보에 가장

적합합니다. 그러나 특정 상황에서는 다른 AWS 스토리지 옵션이 더 적합할 수도 있습니다.

임시 스토리지—Amazon EC2 인스턴스가 종료된 후에 데이터(임시 파일, 스크래치 디스크, 버퍼 등)에 계속

액세스하지 않아도 된다면 대부분의 Amazon EC2 인스턴스와 함께 자동으로 제공되는 스토리지 볼륨을

활용하는 것을 고려해 보십시오. 이러한 임시 볼륨은 Amazon EC2 인스턴스의 표준 비용을 초과하지

않으며 추가 비용 없이 제공됩니다. 자세한 정보는 다음 섹션을 참조하십시오.

내구성이 뛰어난 스토리지—내구성이 뛰어난 스토리지가 필요하다면 Amazon S3 를 사용하십시오.

Amazon S3 표준 스토리지는 객체당 99.999999999%의 연간 내구성을 달성하도록 설계되었습니다.

그에 반해서 마지막 스냅샷 이후 수정된 데이터 크기가 20GB 이하인 EBS 볼륨의 경우 연간 내구성이

99.5% ~ 99.9%에 이르도록 설계되었습니다. 수정된 데이터가 더 많은 볼륨은 그에 비해 내구성이 더

낮을 것으로 예상됩니다.

정적 데이터 또는 웹 콘텐츠—데이터를 자주 변경하지 않는다면 Amazon S3 는 고정된 정보를 저장할 수

있는 보다 비용 효율적이며 확장성이 뛰어난 솔루션을 제공할 수도 있습니다. 또한 EBS 외부의 웹

콘텐츠는 Amazon EC2 에서 실행할 웹 서버가 필요하며, Amazon S3 외부에서 직접 웹 콘텐츠를 전송할 수

있습니다.

키-값 쌍 정보—Amazon SimpleDB 14 페이지의 "Amazon SimpleDB" 섹션에 나와 있듯이 Amazon SimpleDB 는

“스키마가 없는” 데이터를 저장할 수 있는 확장성이 뛰어나고 탄력적인 수단을 제공합니다. 관계형

기술(관련 EBS 볼륨 포함)을 사용하여 키-값 정보를 관리하고자 한다면 대안으로 SimpleDB 를 사용해 볼만

합니다.

Page 7: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

7/23 페이지

Amazon Elastic Compute Cloud (EC2) 로컬 인스턴스 스토리지 볼륨

Amazon EC2 로컬 인스턴스 스토리지 볼륨(또는 임시 드라이브)은 Amazon EC2 인스턴스를 위한 임시 블록 수준

스토리지를 제공합니다. Amazon 머신 이미지(AMI)에서 Amazon EC2 인스턴스를 생성할 때 대부분의 경우 미리

연결된 디스크 스토리지의 미리 구성된 블록이 함께 제공됩니다.1 EBS 볼륨과는 달리 인스턴스 스토리지

볼륨의 데이터는 관련 Amazon EC2 인스턴스의 수명 기간 동안만 지속됩니다. 이 디스크 스토리지의 크기는

160GB ~ 1.7TB 이며, Amazon EC2 인스턴스 유형에 따라 다릅니다. 대형 Amazon EC2 인스턴스에는 용량이 더 큰

인스턴스 스토리지 볼륨이 있습니다. 그러나 이러한 용량이 매우 많아 보이고 종종 유용하더라도, 이 스토리지는

임시적이므로 스크래치 볼륨 또는 RAM 디스크로 사용하는 것이 가장 좋습니다.

이상적인 사용 시나리오

로컬 인스턴스 스토리지 볼륨은 버퍼, 캐시, 스크래치 데이터 및 기타 임시 콘텐츠와 같이 계속 변경되는 정보의

임시 스토리지나 로드가 분산된 웹 서버 풀과 같은 여러 인스턴스상에서 복제되는 데이터에 가장 적합합니다.

Amazon EC2 인스턴스 스토리지는 이러한 목적으로 설계되었으며, 가상 머신의 부팅 디바이스(인스턴스 스토리지

AMI 만 해당)와 Amazon EC2 인스턴스 전용인 하나 이상의 추가 볼륨(EBS AMI 와 인스턴스 스토리지 AMI 모두

해당)으로 구성됩니다. 이 스토리지는 해당 수명 기간 동안 단일 Amazon EC2 인스턴스에서만 사용 가능합니다.

EBS 볼륨과는 달리 인스턴스 스토리지 볼륨은 분리하거나 다른 인스턴스에 연결할 수 없습니다.

성능

Amazon EC2 인스턴스 가상 머신과 로컬 인스턴스 스토리지 볼륨은 동일한 실제 서버에 위치해 있으므로 이

스토리지와 매우 빠르게 상호 작용할 수 있습니다(특히 순차적 액세스의 경우). 초당 IOPS(I/O 처리 횟수)를

늘리거나 디스크 처리량을 개선하려면 RAID 0(디스크 스트라이핑) 소프트웨어를 사용하여 여러 인스턴스

스토리지 볼륨을 그룹으로 지정할 수 있습니다.

내구성 및 가용성

Amazon EC2 로컬 인스턴스 스토리지 볼륨은 내구성이 뛰어난 디스크 스토리지로 사용하도록 고안되지

않았습니다. 로컬 인스턴스 스토리지 볼륨에 저장된 데이터는 Amazon EC2 인스턴스의 수명 기간 동안만

지속됩니다. Amazon EC2 로컬 인스턴스 스토리지 볼륨의 데이터는 순서에 따른 인스턴스 재부팅 중에도 지속되나

Amazon EC2 인스턴스가 종료되거나 오류/재시작 주기를 거치면 사라집니다.

로컬 인스턴스 스토리지 볼륨은 영구 파일 또는 데이터베이스 스토리지와 같이 오랜 기간 동안 지속되어야 하는

데이터용으로 사용해서는 안 됩니다. 그러나 로컬 인스턴스 스토리지 볼륨이 영구적으로 지속되지 않지만 EBS

또는 Amazon S3 에 정기적으로 복사 또는 백업하여 데이터를 유지할 수 있습니다.

1 대부분의 Amazon EC2 인스턴스 유형은 로컬 인스턴스 스토리지 볼륨을 제공합니다. 그러나 t1.micro 유형과 같은 마이크로

인스턴스는 EBS 스토리지만 제공합니다. 또한 루트 디바이스(“EBS 에서 부팅”)용으로 Amazon EBS 를 사용하는 인스턴스는

기본적으로 임시 인스턴스 스토리지 볼륨을 노출시키지 않습니다. 원한다면 블록 디바이스 매핑을 지정하여 인스턴스를

시작할 때 인스턴스 스토리지 볼륨을 노출할 수도 있습니다. 자세한 내용은 Amazon EC2 User Guide 를 참조하십시오.

Page 8: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

8/23 페이지

비용

Amazon EC2 인스턴스 비용에는 모든 로컬 인스턴스 스토리지(임시) 볼륨이 포함됩니다. 로컬 인스턴스 스토리지

볼륨에 데이터를 저장할 때 요금은 부과되지 않으나 Amazon EC2 지역 외부에서 Amazon EC2 인스턴스 스토리지

볼륨에 데이터를 송수신하는 경우 데이터 전송 요금이 발생하며 Amazon S3, EBS 볼륨 및 EBS 스냅샷과 같은 영구

스토리지를 사용하는 경우에는 추가 요금이 적용됩니다. Amazon EC2, EBS 및 데이터 전송 요금에 대한 자세한

정보는 http://aws.amazon.com/ec2/pricing/ 에서 확인할 수 있습니다.

탄력성 및 확장성

로컬 인스턴스 스토리지 볼륨은 해당 Amazon EC2 인스턴스 유형에 대하여 크기가 고정되어 있고 특정 인스턴스에

연결되어 있으므로 이러한 유형의 스토리지는 비교적 탄력성이 적습니다. 그러나 Amazon EC2 스토리지 전략 수립

시 Amazon S3 또는 EBS (Elastic Block Storage)와 같은 다른 적합한 스토리지 옵션 하나를 포함시킴으로써 온전한

스토리지 탄력성을 유지할 수 있습니다.

인터페이스

Amazon EC2 인스턴스는 로컬 디스크 드라이브인 것처럼 로컬 인스턴스 스토리지 볼륨과 작동합니다. 다시 말해,

Windows NTFS 또는 Linux XFS 와 같은 네이티브 파일 시스템 메커니즘을 사용하여 로컬 인스턴스 스토리지에

호스팅된 데이터와 상호 작용 할 수 있습니다. 경우에 따라 로컬 인스턴스 스토리지 볼륨 디바이스가 시작될 때

Amazon EC2 인스턴스에 연결되기는 하지만 적합한 파일 시스템으로 형식을 지정하고 사용 전에 마운트해야

합니다.

Amazon EC2 로컬 인스턴스 스토리지 볼륨의 안티 패턴

Amazon EC2 로컬 인스턴스 스토리지 볼륨은 빠르고 무료로 제공(Amazon EC2 인스턴스 가격에 포함됨)되는

“스크래치 볼륨”이며, 재생성이 용이한 임시 데이터를 저장할 때 가장 적합합니다. 그러나 다른 AWS 스토리지

옵션이 더 적합한 상황도 많이 있을 수 있습니다.

영구 스토리지—단일 Amazon EC2 인스턴스 수명보다 더 오래 지속되어야 하는 파일이나 기타 데이터를

위해 실제 디스크 드라이브와 유사한 영구 가상 디스크 스토리지가 필요하다면 EBS 볼륨 또는

Amazon S3 가 더 적합합니다.

데이터베이스 스토리지—대부분의 경우 데이터베이스에는 단일 Amazon EC2 인스턴스 수명 기간 이상

지속되는 스토리지가 필요하므로 EBS 볼륨을 선택하는 것이 적합합니다.

공유 스토리지—인스턴스 스토리지 볼륨은 단일 Amazon EC2 인스턴스에만 사용되며 다른 시스템이나

사용자와 공유할 수 없습니다. 하나의 인스턴스에서 분리하여 다른 인스턴스에 연결할 수 있는

스토리지가 필요하거나 간편한 데이터 공유 기능이 필요하다면 Amazon S3 또는 EBS 볼륨이 더

효율적입니다.

스냅샷—편의성, 장기적인 내구성, 가용성 및 PIT (Point in Time) 디스크 스냅샷을 공유할 수 있는 기능이

필요하다면 EBS 볼륨이 더 효율적입니다.

Page 9: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

9/23 페이지

Amazon Simple Storage Service (Amazon S3)

Amazon S3 는 미션 크리티컬하고 기본 데이터 스토리지용으로 설계된 확장성, 내구성 및 가용성이 뛰어난 분산

객체 스토리지이며, 웹 서비스 인터페이스를 간편하게 사용할 수 있습니다. 기존 방식의 온 프레미스

애플리케이션에서 이러한 유형의 데이터는 보통 SAN 또는 NAS 에서 관리됩니다. 그러나 Amazon S3 와 같은

클라우드 기반 메커니즘은 훨씬 더 민첩하고 유연하며 지리적 중복이 가능합니다. Amazon S3 는 언제든지

Amazon EC2 내에서 또는 웹 어디에서나 원하는 양의 데이터를 저장하고 검색하는 데 사용할 수 있는 간단한 웹

서비스 인터페이스를 제공합니다. 1 바이트 ~ 5 테라바이트의 데이터가 포함된 객체를 쓰거나 읽거나 삭제할 수

있으며 Amazon S3 버킷에 저장할 수 있는 객체의 수에는 제한이 없습니다. Amazon S3 는 또한 확장성이 뛰어나

별도의 여러 클라이언트 또는 애플리케이션 스레드가 동시에 Amazon S3 데이터를 읽거나 쓰거나 액세스할 수

있습니다.

이상적인 사용 시나리오

Amazon S3 의 매우 일반적인 사용법은 정적 웹 콘텐츠를 저장하는 것입니다. Amazon S3 내의 각 객체가 고유한

HTTP URL 주소를 가지거나 Amazon CloudFront 와 같은 CDN(콘텐츠 전송 네트워크)을 통해 전송되므로 이 콘텐츠는

웹 서버를 통해 Amazon S3 에서 직접 전송될 수 있습니다. Amazon S3 의 탄력성 덕분에 대역폭 요구가 매우

'까다로운' 웹 콘텐츠도 무리 없이 호스팅할 수 있습니다. 또한 스토리지 프로비저닝이 없으므로 Amazon S3 는

사용자가 생성한 데이터 중심의 콘텐츠 호스팅으로 인해 콘텐츠 수가 빠르게 늘어나는 웹 사이트(예: 동영상 및

사진 공유)에서도 원활하게 작동합니다.

Amazon S3 는 또한 일반적으로 금융 거래 또는 클릭 스트림 데이터와 미디어 변환 분석 등 대규모 연산을 위한

데이터 스토리지로도 사용됩니다. Amazon S3 의 수평 확장성 덕분에 이제는 단일 연결이라는 제한 없이 동시에

여러 컴퓨팅 노드의 데이터에 액세스할 수 있습니다.

마지막으로, Amazon S3 는 미션 크리티컬 데이터를 위한 오리진 스토리지, Amazon EBS 볼륨을 위한 안정성이

뛰어난 스냅샷 스토리지, 비즈니스 연속성을 위한 백업 스토리지 애플리케이션 및 ‘인기 있는’ 재해 복구

솔루션으로 자주 사용되고 있습니다. Amazon S3 는 객체를 여러 설비의 여러 디바이스에 중복 저장하기 때문에

이러한 시나리오에 필요한 내구성이 뛰어난 인프라를 제공합니다.

성능

같은 지역의 Amazon Elastic Compute Cloud (EC2) 내에서 Amazon S3 에 빠르게 액세스할 수 있습니다. 여러 스레드,

여러 애플리케이션 또는 여러 클라이언트를 동시에 사용하여 Amazon S3 에 액세스하면 전체 Amazon S3 집계

처리량은 일반적으로 단일 서버가 생성 또는 소비할 수 있는 양을 훨씬 초과하는 비율로 확장됩니다.

관련 데이터에 액세스하는 속도를 높이기 위해 많은 개발자는 Amazon S3 와 Amazon SimpleDB 를 함께 사용합니다.

Amazon S3 는 실제 정보를 저장하며 SimpleDB 는 관련 메타데이터(예: 객체 이름, 크기, 키워드 등)를 위한

리포지토리로 사용됩니다. SimpleDB 는 자동으로 인덱스를 처리하므로 메타데이터를 검색하여 객체 참조 위치를

효율적으로 찾을 수 있습니다. 검색 반환 값은 Amazon S3 에서 객체의 정확한 위치를 파악하고 검색하는 데

사용됩니다.

Page 10: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

10/23 페이지

내구성 및 가용성

Amazon S3 스토리지는 선택한 지역 내에서 여러 디바이스와 여러 설비에 모두 데이터를 동시에 자동으로

저장함으로써 AWS 플랫폼에 최고 수준의 데이터 내구성 및 가용성을 제공합니다. 오류 수정이 내장되어 있으므로

단일 장애 지점이 없습니다. Amazon S3 는 두 설비에서 데이터가 동시에 손실되는 경우를 대비하기 위해

고안되었으므로 미션 크리티컬 데이터를 위한 기본 데이터 스토리지로 사용하기에 매우 적합합니다. 사실

Amazon S3 는 객체당 내구성 99.999999999% (“9 가 11 개”), 연간 가용성 99.99%를 달성하도록 설계되었습니다.

내장된 중복 기능 외에도 Amazon S3 버전 관리를 통해 애플리케이션 장애와 의도하지 않은 삭제로부터 Amazon S3

데이터를 보호할 수 있습니다. MFA Delete 로 Amazon S3 버전 관리를 활성화할 수도 있습니다. 버킷에서 이 옵션이

활성화되어 있는 상태에서 한 가지 버전의 Amazon S3 객체를 삭제하려면 두 가지 형식의 인증이 필요합니다. 즉

물리적 토큰 디바이스로부터 유효한 AWS 계정 자격 증명과 6 자리 코드(1 회용, 시간 기반 암호)를 받아야 합니다.

Amazon S3 에서는 코드 변환 미디어, 이미지 썸네일과 같이 필요할 때 쉽게 재생할 수 있는 중요하지 않은

데이터를 위해 RRS(낮은 중복 스토리지) 옵션을 사용할 수 있는데, 이 옵션은 스토리지 비용이 저렴하며 내구성

수준도 낮습니다. RRS 옵션을 사용하여 저장한 객체는 표준 Amazon S3 스토리지를 사용하여 저장한 객체보다

중복성이 떨어집니다. 어떤 경우이든 사용자의 데이터는 여러 위치에서 여러 디바이스에 계속 저장됩니다. RRS 는

해당 연도 동안 객체당 99.99%의 내구성을 제공하도록 설계되었습니다. RRS 는 표준 Amazon S3 에 비해 내구성이

부족한 반면, 일반적인 디스크 드라이브보다는 내구성이 400 배 이상 뛰어납니다.

비용

모든 Amazon Web Services 에서와 마찬가지로 Amazon S3 요금은 최소 요금 또는 장기 약정이 없는 종량

과금제입니다. Amazon S3 요금은 스토리지의 양(월별 GB 당), 송수신한 데이터의 양(월별 GB 당) 및 요청 수(월별

요청 1,000 개당)와 같은 세 가지 요소로 구성되어 있습니다. AWS 는 신규 고객을 위해 Amazon S3 스토리지(최대

5GB)를 무료로 사용할 수 있는 프리 티어를 제공합니다. Amazon S3 의 자세한 요금 정보는

http://aws.amazon.com/s3/pricing/에서 확인할 수 있습니다.

탄력성 및 확장성

Amazon S3 는 최고 수준의 탄력성 및 확장성을 자동으로 제공하도록 설계되었습니다. 디렉토리에 다수의 파일을

저장할 때 문제가 발생하는 일반적인 파일 시스템과는 달리 Amazon S3 는 버킷 내에 파일 수에 제한 받지 않고

파일을 저장할 수 있습니다. 또한 여러 드라이브 및/또는 서버상에서 데이터를 분할하기 전에 저장할 수 있는 전체

데이터 양이 제한되어 있는 디스크 드라이브와는 달리 Amazon S3 버킷은 바이트 수에 제한 받지 않고 바이트를

저장할 수 있습니다. 사용자는 다수의 객체를 저장할 수 있으며, Amazon S3 는 같은 지역 내 여러 위치에서 각기

다른 서버에 정보의 중복 사본을 조정하고 배포하는 관리 역할을 하는데, 이때 Amazon 의 고성능 인프라를

사용합니다.

인터페이스

Amazon S3 는 SOAP 및 RESTful 웹 서비스 API 를 모두 제공합니다. 이 API 를 사용하면 Amazon S3 객체(파일)를

이름이 고유한 버킷(최상위 수준 폴더)에 저장할 수 있습니다. 각 객체에는 해당 버킷 내 객체를 위한 식별자로

사용되는 고유한 객체 키(파일 이름)가 있어야 합니다. Amazon S3 가 기존 파일 시스템이 아닌 웹 기반

스토리지이긴 하지만 각 파일의 전체 경로 이름과 일치하는 객체 키 이름을 생성하여 Amazon S3 에서 파일 시스템

계층 구조(folder1/folder2/file)를 쉽게 에뮬레이트할 수 있습니다.

Page 11: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

11/23 페이지

Amazon S3 에 애플리케이션을 구축하는 대부분의 개발자는 상위 수준의 도구 키트를 사용합니다. AWS 및 타사는

자주 요청되는 소프트웨어 개발 언어 및 플랫폼을 위한 Amazon S3 인터페이스 도구 키트와 라이브러리를

생성하였으며, 그 예는 다음과 같습니다.

Java, Java 용 AWS SDK (http://aws.amazon.com/sdkforjava/) 및 AWS Toolkit for Eclipse

(http://aws.amazon.com/eclipse/) 사용

C#, .NET 용 AWS SDK (http://aws.amazon.com/sdkfornet/) 및 Visual Studio 템플릿 사용

PHP, PHP5 의 기본 설치 또는 PHP 용 AWS SDK (http://aws.amazon.com/sdkforphp/) 사용

Perl, Digest::SHA1, Bundle::LWP 및 XML::Simple 모듈 사용. 이러한 모듈 모두 Comprehensive Perl Archive

Network (http://www.cpan.org) 에서 다운로드 할 수 있습니다.

Amazon S3 는 주로 API 를 통해 액세스하도록 설계되어 있는데 반하여 AWS Management Console 및 타사 도구는

Amazon S3 버킷 및 객체와의 상호 작용을 위해 그래픽 및 명령줄 인터페이스도 제공합니다. Amazon S3 는 또한

BitTorrent 프로토콜을 지원하는 데, 이 프로토콜을 통해 고객은 S3 의 정보뿐만 아니라 다른 제공업체의 정보도

동시에 검색할 수 있습니다.

다량의 데이터를 업로드 또는 다운로드하기 위해 AWS Import/Export 서비스 (http://aws.amazon.com/importexport/)

를 사용할 수도 있습니다. AWS Import/Export 는 전송용 이동식 스토리지 디바이스를 사용하여 AWS 로(부터) 대용량

데이터를 더욱 빠르게 전송합니다. Amazon 은 지정된 Amazon S3 버킷으로(부터) 데이터를 복사하고 디바이스를

마운트합니다. 이 방식은 종종 인터넷상에서 다량의 데이터를 전송하는 것보다 빠르고 저렴합니다.

RRS 는 표준 Amazon S3 와 동일한 인터페이스를 사용합니다. RRS 옵션은 PUT 작업 중에 스토리지 클래스 속성을

설정하거나 AWS Management Console 에서 "Use Reduced Redundancy Storage" 설정을 선택하면 Amazon S3 객체

또는 버킷에 대해 지정됩니다.

Amazon S3 안티 패턴

Amazon S3 는 비교적 정적인 다수의 정보 클래스를 저장하는 데 가장 적합하며, 내구성, 가용성, 탄력성 기능의

장점을 활용합니다. 그러나 다음과 같은 수많은 상황에서 Amazon S3 는 최적의 솔루션이 아닙니다.

파일 시스템—Amazon S3 는 플랫 네임스페이스를 사용하나 독립 실행형 POSIX 호환 파일 시스템으로

사용하기 위한 것은 아닙니다. 그러나 구분 기호(일반적으로 ‘/’ 또는 ‘\’ 문자)를 사용하면 해당 버킷 내에

파일 시스템의 계층적 폴더 구조를 에뮬레이트하기 위해 키를 구성할 수 있습니다.

쿼리로 구조화된 데이터—Amazon S3 는 쿼리 기능을 제공하지 않습니다. 특정 객체를 검색하려면 버킷

이름과 키를 이미 알고 있어야 합니다. 따라서 Amazon S3 를 자체 데이터베이스로 사용할 수는 없습니다.

일반적인 사용 패턴은 Amazon S3 에 객체를 배치한 다음 Amazon SimpleDB 를 사용하여 객체의

메타데이터를 유지하는 것입니다. 또한 Amazon RDS 와 같은 다른 데이터베이스 기술이나 Amazon EC2

인스턴스에서 실행되는 데이터베이스를 사용할 수도 있습니다. 데이터베이스를 검색하여 객체의 버킷

이름과 키를 찾은 다음 Amazon S3 버킷에서 객체를 검색할 수 있습니다.

Page 12: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

12/23 페이지

빠르게—변하는 데이터—자주 업데이트해야 하는 데이터는 EBS 또는 데이터베이스와 같은 읽기/쓰기

지연 시간이 적은 스토리지 솔루션에서 더 잘 운용될 수 있습니다.

Amazon Simple Queue Service

Amazon Simple Queue Service (Amazon SQS)는 짧은(최대 64kB) 텍스트 기반 데이터 메시지를 전달하고 임시로

저장하기 위한 안정적이고 확장성이 뛰어난 호스팅 메시지 대기열 서비스를 제공합니다. Amazon SQS 대기열은

처리 대기 중인 메시지(보통 한 애플리케이션 구성 요소가 생성하여 다른 구성 요소가 사용하기를 기다리는

메시지)를 위한 임시 데이터 리포지토리입니다. Amazon SQS 메시지는 Amazon EC2 환경 내 또는 인터넷

어디에서나 서버 또는 분산 애플리케이션 구성 요소가 보내거나 받을 수 있습니다. Amazon SQS 는 대기열을 그

수에 제한 없이 지원하며 순서가 지정되지 않은 메시지를 적어도 1 회 이상 전송합니다.

Amazon SQS 및 기타 메시지 대기열 서비스는 보통 비동기 통신 프로토콜로 여겨지는 반면 Amazon SQS 는 여러

부류의 애플리케이션을 위한 일시적이지만 내구성이 좋은 데이터 스토리지로도 여겨지고 있습니다. Amazon

SQS 를 임시 스토리지로 사용하면 임시 디스크 파일과 같은 다른 스토리지 메커니즘 사용을 최소화할 수 있습니다.

이상적인 사용 시나리오

Amazon SQS 는 여러 애플리케이션 구성 요소가 느슨하게 결합된 방식으로 통신하고 작업을 조정해야 하는 모든

시나리오에 적합합니다. 특히 일부 구성 요소가 다른 구성 요소보다 더 빠르게 또는 느리게 작동하거나 상호

작용하는 구성 요소의 수가 시간이나 로드에 따라 변화하는 생산자-소비자 시나리오에서 발생합니다. Amazon

SQS 는 "소프트웨어 접착제"로 작용하여 구성 요소가 느슨하게 결합된 방식이나 동기화된 작업에 대한 의존도가

낮은 방식으로 또는 고정된 수의 구성 요소에서 안정적으로 통신할 수 있게 해줍니다.

Amazon SQS 의 전형적인 사용 예는 각 메시지가 처리해야 할 작업과 연결되어 있는 다단계 처리 파이프라인을

조정하는 것입니다. 각 작업에 대한 설명은 Amazon SQS 메시지로 표시되며, 이 메시지에는 수행해야 할 작업과

Amazon S3 의 작업 데이터를 가리키는 포인터가 포함되어 있습니다.

예를 들어, 다수의 이미지 파일을 인코딩해야 한다고 가정해 보겠습니다. SNS 작업자 대기열에서 Amazon S3 의

파일 위치와 명령(jpeg-encode)을 지정하는 각 파일의 SNS 메시지를 생성합니다. 필요한 이미지 처리

소프트웨어에서 실행되는 Amazon EC2 인스턴스 풀이 다음을 수행합니다.

1. 비동기적으로 대기열에서 작업 메시지를 가져옵니다.

2. 이름이 지정된 파일을 검색합니다.

3. 변환을 처리합니다.

4. Amazon S3 에 이미지를 다시 씁니다.

5. 다른 대기열에 "작업 완료" 메시지를 작성합니다.

6. 원본 작업 메시지를 삭제합니다.

7. 작업자 대기열에서 추가 메시지를 확인합니다.

Page 13: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

13/23 페이지

Amazon SQS 대기열을 사용하면 작업자 인스턴스의 수를 상향 또는 하향 조정할 수 있으며, 각 단일 작업자

인스턴스의 처리 성능도 상향 또는 하향 조정하여 애플리케이션을 변경하지 않고도 전체 워크로드에 맞게 확장할

수 있습니다.

성능

Amazon SQS 는 단일 스레드 송수신 속도 대신 수평 확장성에 대해 최적화된 분산 대기열 시스템입니다. 단일

클라이언트는 초당 약 5 ~ 50 개의 속도로 Amazon SQS 메시지를 보내거나 받을 수 있습니다. 단일 호출에서 여러

메시지(최대 10 개)를 요청하면 더 높은 수신 성능을 달성할 수 있습니다. 대기열로 보내진 메시지가 수신 가능한

상태로 전환될 때까지 몇 초 정도 소요될 수 있습니다.

내구성 및 가용성

Amazon SQS 의 메시지는 내구성은 좋으나 임시적으로 유지되도록 설계되었습니다. 메시지가 유실되거나

손상되지 않도록 모든 메시지는 여러 서버와 데이터 센터에 중복 저장됩니다. 메시지 보존 기간은 최소

1 시간에서 최대 14 일까지이며, 대기열마다 구성할 수 있습니다. 메시지는 명시적으로 삭제되거나 보존 기간이

만료되어 자동으로 삭제될 때까지 대기열에 보관됩니다.

비용

모든 Amazon Web Services 와 마찬가지로 Amazon SQS 요금은 최소 요금 또는 장기 약정이 없는 종량 과금제입니다.

간단한 애플리케이션을 시작하고 지원하기 위해 Amazon SQS 는 추가 비용 없이 매달 100,000 개의 요청을 무료로

제공하는 프리 티어 서비스를 운영하고 있습니다. 프리 티어 수준을 초과하면 Amazon SQS 는 요청 수(요청

10,000 개당) 및 송수신한 데이터의 양(월별 GB 당)에 따라 요금이 책정됩니다. Amazon SQS 요금에 대한 자세한

정보는 http://aws.amazon.com/sqs/pricing/에서 확인할 수 있습니다.

탄력성 및 확장성

탄력성과 확장성이 모두 뛰어난 Amazon SQS 는 무제한의 컴퓨터가 언제든지 무제한의 메시지를 읽고 쓸 수

있도록 설계되었습니다. 모든 사용자의 대기열마다 무제한의 대기열과 무제한의 메시지를 지원합니다.

인터페이스

SOAP 및 Query (HTTP) 인터페이스를 통해 Amazon SQS 에 액세스할 수 있습니다. 개발자는 다섯 개의

API (CreateQueue, SendMessage, ReceiveMessage, ChangeMessageVisibility, DeleteMessage)를 통해 SQS 를 쉽게

시작할 수 있습니다. 다른 API 를 추가로 사용하면 고급 기능을 활용할 수 있습니다. 항상 SOAP 및 쿼리 API 와 Java,

C#, Perl 및 PHP 를 함께 사용할 수 있습니다.

Amazon SQS 안티 패턴

이진 또는 대용량 데이터—Amazon SQS 메시지는 텍스트여야 하며 64KB 를 초과해서는 안 됩니다.

대기열에 저장해야 하는 데이터가 이 길이를 초과하거나 이진인 경우 Amazon S3 또는 RDS 를 사용하여

대용량 또는 이진 데이터를 저장하고 Amazon SQS 의 데이터를 가리키는 포인터를 저장하는 것이

좋습니다.

Page 14: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

14/23 페이지

장기 스토리지—메시지 데이터를 14 일 이상 저장해야 하는 경우 Amazon S3 또는 일부 다른 스토리지

메커니즘을 선택하는 것이 더 적합합니다.

Amazon SimpleDB

Amazon SimpleDB 는 클라우드에 구조화된 데이터를 저장하고 관리할 수 있는 새로운 접근 방법을 제시하며, 이는

관계형 데이터베이스 서버의 전형적인 방법과는 다릅니다. SimpleDB 는 데이터베이스 관리와 이와 관련된 시스템

관리 작업 부담을 상당 부분 덜어주는 가용성, 확장성, 유연성이 뛰어난 비관계형 데이터 스토리지입니다.

“스키마가 없는” 데이터 모델인 Amazon SimpleDB 를 사용하면 여러 이름/값 쌍으로 구성된 데이터 항목을 저장할

수 있습니다.

이상적인 사용 시나리오

이 스토리지 대안은 사용자에게 유지한 다음 쿼리해야 하는 구조화되고 세분화된 데이터(가용성과 내구성

좋음)가 있지만(주로 읽기 지향 상호 작용) 완전히 진행된 관계형 데이터베이스를 관리하는 오버헤드가 초래되지

않도록 하려는 경우에 적합합니다.

많은 조직에서 SimpleDB 를 대형 클라우드 기반 스토리지 아키텍처의 일부로 사용합니다. 일반적인 사용 패턴은

SimpleDB 를 사용하여 다른 AWS 제품에 저장된 정보에 대한 메타데이터를 유지하는 것입니다. 예를 들어, 수백만

개의 메가바이트 이미지를 저장할 클라우드 기반 솔루션을 구축한다고 가정해 보겠습니다. 이 상황에서는

Amazon Elastic Block Storage (EBS) 또는 Amazon Simple Storage Service (Amazon S3)를 사용하여 이미지를 직접

유지하거나 각 이미지의 세부 정보에 대한 리포지토리로 SimpleDB 를 사용할 수도 있습니다. SimpleDB 에

쿼리하여 특정 이미지를 찾고 이 정보를 사용하여 다른 Amazon 스토리지 솔루션에서 결과를 검색할 수 있습니다.

성능

SimpleDB 방식은 Amazon 의 검증된 고속 인프라를 활용하여 확장성이 뛰어나고 빠르고 가용성이 높은

데이터베이스를 만들어 냅니다. 최고의 처리량과 최저 지연 시간을 구현하기 위해 Amazon SimpleDB 는

기본적으로 consistent read 를 제공합니다. "나의 최근 쓰기 항목 읽기"를 요구하는 애플리케이션의 경우

consistent read 또한 제공됩니다.

내구성 및 가용성

SimpleDB 는 완전 자동화된 지리적 중복 복제를 통해 최고 수준의 데이터 내구성을 제공합니다. 모든 Simple DB

데이터 항목의 여러 복제본은 선택한 지리적 지역 내에서 여러 다른 위치에 저장됩니다.

비용

모든 Amazon Web Services 에서와 마찬가지로 Amazon SimpleDB 요금은 사전 확약금 또는 장기 약정이 없는 종량

과금제입니다. SimpleDB 의 비용에는 구조화된 데이터 스토리지의 양(월별 GB 당), 데이터 전송량(월별 GB 당) 및

PUT 와 GET 작업 관련 머신 사용 시간(월별)이 포함됩니다. 구조화된 데이터 스토리지를 사용한 첫 번째 달에는

1GB 와 25 시간의 머신 사용 시간(약 2M GET 또는 SELECT API 요청)이 무료로 제공됩니다. 이 프리 티어를 사용하면

다수의 애플리케이션에서 SimpleDB 요금을 결코 부과하지 않습니다.

Amazon SimpleDB 요금에 대한 자세한 정보는 http://aws.amazon.com/simpledb/pricing/ 에서 확인할 수 있습니다.

Page 15: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

15/23 페이지

탄력성 및 확장성

SimpleDB 도메인을 생성하면 AWS 에서 도메인당 최대 10GB 의 스토리지를 할당합니다. 컴퓨팅 및 스토리지

리소스를 활용할 때에만 해당 요금을 지불하면 되므로 명확하게 축소하고 확장할 수 있습니다. 스토리지 및

인덱싱 요구 사항은 Amazon SimpleDB 를 통해 처리되며, 이 Amazon SimpleDB 는 SimpleDB 도메인을 생성할 때

선택한 지역 내에서 여러 위치에 걸쳐 자동으로 인덱스 처리된 데이터를 중복 저장합니다. 따라서

데이터베이스를 관리할 필요가 없고 데이터를 간편하게 PUT 및 GET 처리할 수 있습니다. 단일 도메인의 한계를

넘어서도록 처리량 또는 데이터 세트 크기를 늘리기 위해 수평으로 확장하려는 경우 여러 SimpleDB 도메인을

만들어 여러 작업을 병렬로 실행할 수 있습니다. 데이터 세트의 크기가 10GB 를 넘는 경우 여러 SimpleDB

도메인에서 데이터를 분할하는 것을 고려해 볼 수 있습니다.

인터페이스

SimpleDB 와의 프로그래밍 방식 상호 작용을 위한 다수의 기술을 원하는 대로 사용할 수 있습니다. Amazon 은 웹

서비스 API 를 SOAP 와 RESTful 스타일로 모두 제공합니다. API 에서 현재 9 개의 작업을 제공하므로 도메인

관리(메타데이터 생성, 목록, 삭제, 획득)와 속성 작업(개별적으로 또는 일괄적으로 얻기, 쓰기, 삭제)을 수행할 수

있습니다. 표준 SQL 은 SimpleDB 에 사용할 수 없지만 SimpleDB Select 작업을 사용하면 사용자가 제공한 기준을

기반으로 속성 세트를 검색하는 SQL 과 유사한 쿼리를 생성할 수 있습니다.

소프트웨어 개발 키트를 사용하려는 경우 다음과 같은 자주 요청되는 소프트웨어 개발 언어와 플랫폼용 도구

키트 및 라이브러리를 사용할 수 있습니다.

Java, Java 용 AWS SDK (http://aws.amazon.com/sdkforjava/) 및 AWS Toolkit for Eclipse

(http://aws.amazon.com/eclipse/) 사용

C#, .NET 용 AWS SDK (http://aws.amazon.com/sdkfornet/) 및 Visual Studio 템플릿 사용

PHP, PHP5 의 기본 설치 또는 PHP 용 AWS SDK (http://aws.amazon.com/sdkforphp/) 사용

Perl, Digest::SHA1, Bundle::LWP 및 XML::Simple 모듈 사용. 이러한 모듈 모두 Comprehensive Perl Archive

Network (http://www.cpan.org)에서 다운로드 할 수 있습니다.

Amazon SimpleDB 안티 패턴

어떤 사용 시나리오가 SimpleDB 에 적합한지 쉽게 결정할 수 있습니다. 다음 기준이 적용된다면 다른 AWS

스토리지 옵션 중 하나를 사용해 볼 수 있습니다.

기존 관계형 데이터베이스에 의존하는 미리 작성된 애플리케이션—기존 애플리케이션을 AWS 클라우드에

이식하려 하고 관계형 데이터베이스를 계속 사용해야 하는 경우 Amazon RDS(데이터베이스가 MySQL 인

경우) 또는 미리 구성된 여러 Amazon EC2 데이터베이스 AMI 중 하나를 선택하여 사용할 수 있습니다. 또한

사용자 자신의 Amazon EC2 인스턴스를 생성하여 데이터베이스 엔진을 설치할 수도 있습니다.

조인 및/또는 복잡한 트랜잭션—많은 솔루션에서 사용자를 지원하기 위해 SimpleDB 를 활용할 수 있기는

하지만 애플리케이션에서 기존 데이터베이스 플랫폼에서 제공하는 조인, 복잡한 트랜잭션 및 기타 관계형

인프라를 요구할 수도 있습니다. 이러한 경우 설치되어 있는 데이터베이스를 통해 Amazon RDS 또는

Amazon EC2 를 탐색해 볼 수도 있습니다.

Page 16: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

16/23 페이지

BLOb (Binary Large Objects) 데이터—이진 데이터(예: 동영상, 사진 또는 음악)를 저장하려는 경우 Amazon

Elastic Block Storage (EBS) 또는 Amazon Simple Storage Service (Amazon S3)의 사용을 고려해 볼 수도

있습니다. 그러나 SimpleDB 는 여전히 이 시나리오에서도 수행할 역할이 있는데, 바로 이진 객체에 대한

메타데이터(예: 항목 이름, 크기, 생성 날짜, 소유자, 위치 등)를 추적하는 것입니다.

입력된 (숫자) 데이터—SimpleDB 는 모든 데이터를 텍스트 문자열로 저장하므로 입력된 데이터나 숫자

데이터를 조작해야 하는 경우 RDS 또는 Amazon EC2 의 기존 데이터베이스를 사용하는 것이 더 효율적일

수 있습니다.

대량의 데이터—앞서 언급한 바와 같이 SimpleDB 는 여러 애플리케이션에 적합한 스토리지 모델과 경쟁력

있는 요금을 제공합니다. 그러나 매우 큰 데이터 세트를 관리해야 한다면 Amazon S3 또는 EBS 와 같은

스토리지 솔루션을 고려해 보아야 합니다. 다시 말해, 대규모 데이터 세트에 대한 메타데이터를 추적하기

위한 효율적인 메커니즘으로 SimpleDB 를 계속해서 사용할 수 있습니다.

Amazon Relational Database Service (Amazon RDS)

Amazon Relational Database Service (RDS)는 관리형 클라우드 기반 서비스로 제공되는 완전한 기능을 갖춘 MySQL

관계형 데이터베이스입니다. 애플리케이션에 관계형 스토리지가 필요하나 데이터베이스 관리에 소요되는

시간을 줄여야 하는 경우 Amazon RDS 는 일반적인 관리 작업을 자동화하여 복잡성과 총 소유 비용을 줄입니다.

Amazon RDS 는 자동으로 데이터베이스를 백업하고 데이터베이스 소프트웨어를 유지 관리하므로 애플리케이션

개발에 더 많은 시간을 투자할 수 있습니다. Amazon 의 다른 데이터베이스 솔루션인 SimpleDB 에서 제공하는

것보다 훨씬 정교한 쿼리 및 조인 기능이 필요한 기존 방식의 구조화된 데이터에 가장 적합합니다.

이상적인 사용 시나리오

Amazon RDS 는 정보 리포지토리로서, MySQL 에 의존하는 모든 애플리케이션 및 코드 변경 없이 확장성이

뛰어나고 유지관리를 할 필요가 거의 없고 비용 효율적이며 클라우드 기반 데이터베이스를 활용하려는 경우에

적합합니다.

성능

Amazon RDS 는 Amazon 의 입증된 세계적인 수준의 인프라에서 실행되는 구성 가능한 인스턴스와 완전히

자동화된 유지관리 및 백업 작업의 조합을 통해 우수한 성능을 제공합니다. 사용 가능한 데이터베이스 구성은

스몰 인스턴스(1.7GB RAM, 1 개의 ECU (Elastic Computing Unit)가 장착된 64 비트 플랫폼)에서 최대 쿼드러플

엑스트라 라지 인스턴스(68GB RAM 과 26 개의 ECU 가 장착된 64 비트 플랫폼)까지 다양합니다.

최적의 성능을 위해서는 데이터베이스 설계자 및 관리자가 특정 컴퓨팅 요구에 적절한 인스턴스 프로파일

(RAM 및 스토리지를 포함)을 선택해야 합니다. 튜닝이 필요한 경우 Amazon 이 제공하는 API 를 자유롭게 사용하여

데이터베이스 설정을 조정할 수 있습니다. Amazon CloudWatch 는 성능 튜닝 및/또는 추가 탄력성이 필요할 때

도움이 될만한 메트릭을 제공합니다. 마지막으로, 관리자는 현재 인스턴스 리소스의 수요가 초과될 경우 더 큰

데이터베이스를 선택하여 구성할 수도 있습니다.

Page 17: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

17/23 페이지

탄력성 및 확장성

RDS 리소스를 데이터베이스 스토리지 크기, 데이터베이스 인스턴스 컴퓨팅 파워 및 읽기 복제본 수 등 탄력적으로

여러 차원으로 확장할 수 있습니다.

컴퓨팅 탄력성을 향상시키기 위해 추가 Amazon RDS 인스턴스를 구성하고 분할을 활용하여 워크로드를 분산시킬

수 있습니다.

RDS 데이터베이스 스토리지를 탄력적으로 확장하기 위해 명령줄 도구, API 또는 AWS Management Console 을

사용하여 추가 스토리지를 요청할 수 있습니다. 필요에 따라 추가 스토리지를 즉시 추가하거나 다음 유지관리

창에서 추가할 수 있습니다.

단일 API 또는 AWS Management Console 명령을 사용하면 컴퓨팅 리소스 규모를 상향 또는 하향으로 손쉽게

조정할 수 있습니다. 예를 들면, 월말에 인보이스를 만드는 데 추가 컴퓨팅 파워가 필요할 수 있습니다. 최대

쿼드러플 엑스트라 라지 인스턴스로 임시 확장하고 컴퓨팅 중심의 워크로드를 실행한 다음 더 작고 비용

효율적인 구성으로 돌아가 나머지 월간 작업을 처리할 수 있습니다.

RDS 데이터베이스 리소스 규모를 상향 또는 하향 조정(다중 RDS 인스턴스를 사용하여 수평으로 규모 조정)하기

위해 관리자는 하나 이상의 RDS 읽기 복제본을 생성할 수 있습니다. 읽기 복제본은 탄력적으로 RDS 리소스 규모를

조정할 수 있는 MySQL 에 내장된 비동기 복제 기능을 사용하여 읽기 중심의 워크로드를 지원합니다.

마지막으로, 관리자는 추가 Amazon RDS 인스턴스를 구성하고 데이터베이스 분할을 활용하여 워크로드를

분산함으로써 훨씬 더 높은 수준의 데이터베이스 탄력성과 확장성을 달성합니다.

내구성 및 가용성

내구성 향상을 위해 RDS 는 여러 가용 영역에서 복제되는 두 가지 유형의 데이터베이스 백업(자동화된 DB

인스턴스 백업 및 사용자가 시작한 데이터베이스 스냅샷)을 제공합니다. 자동화된 DB 인스턴스 백업을 사용하는

경우 RDS 는 자동으로 지정한 백업 창에서 데이터 전체를 일일 백업하고 DB 트랜잭션 로그도 캡처합니다. 이러한

자동화된 백업은 추가 비용 없이 제공되고 최대 8 일 동안 보관할 수 있으며 보존 기간이 시작되는 시점부터 현재

시간으로부터 약 5 분 이내까지 PIT (Point in Time) 복구를 수행하는 데 사용할 수 있습니다. DB 스냅샷은 사용자가

시작하며 언제든지 생성할 수 있고 명시적으로 삭제될 때까지 보관됩니다. DB 스냅샷을 사용하면

데이터베이스를 알려진 상태로 복구할 수 있습니다.

RDS 다중 AZ 배포 기능은 기본 RDS DB 인스턴스 및 다른 가용 영역에 있는 대기 인스턴스 간에 데이터를 동시에

복제하여 데이터베이스의 내구성과 가용성을 향상시킵니다. 혹시라도 DB 구성 요소 장애 또는 가용 영역 장애가

발생하면 RDS 는 자동으로 대기 상태로 장애 조치(일반적으로 약 3 분 소요)를 실시하고 대기 상태가 되자마자

데이터베이스 트랜잭션을 다시 시작할 수 있습니다. 이 동시 복제를 통해 데이터 손실을 완전히 차단할 수

있습니다.

RDS 다중 AZ 배포 기능이 제공하는 동기 복제는 RDS 읽기 복제본이 제공하는 내장된 비동기 복제를 보완합니다.

두 기능 중 하나만 사용하거나 두 기능을 조합하여 사용할 수도 있습니다.

Page 18: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

18/23 페이지

비용

모든 Amazon Web Services 에서와 마찬가지로 Amazon RDS 요금은 최소 요금 또는 장기 약정이 없는 종량

과금제입니다. Amazon RDS 는 데이터베이스 인스턴스의 크기, 배포 유형(단일 AZ/다중-AZ) 및 AWS 지역에 따라

분류된 요금 구조를 제공합니다. Amazon RDS 는 DB 인스턴스 시간(시간당), 프로비저닝된 데이터베이스

스토리지의 양(월별 GB 및 IO 요청 100 만 개당), 추가 백업 스토리지의 양(월별 GB 당) 및 송수신한 데이터의

양(월별 GB 당)과 같은 요인에 따라 요금이 책정됩니다. RDS 요금에 대한 자세한 정보는

http://aws.amazon.com/rds/pricing/에서 확인할 수 있습니다.

인터페이스

원활한 시작을 위해 Amazon 은 데이터베이스 인스턴스를 생성하고 관리하고 모니터링하고 중지하는 것과 관련된

이해하기 쉬운 일련의 명령줄 스크립트를 제공합니다. 또는 Amazon 의 웹 서비스에 기반한 작업을 사용하여

동일한 일련의 작업을 수행할 수도 있습니다.

인스턴스가 생성되면 관계형 데이터베이스에서 작동하는 도구를 사용하여 스키마와 데이터를 자유롭게 설정할

수 있습니다. 기존 온 사이트 데이터 양과 위치에 따라 mysqldump 유틸리티를 사용하여 로컬 데이터를 추출하고

MySQL 실행 파일로 바로 옮겨 Amazon RDS 에 삽입할 수도 있습니다. 데이터 세트가 큰 경우 먼저 Amazon RDS 에

스키마를 만들고 플랫 파일에 로컬로 데이터를 추출한 다음 mysqlimport 유틸리티를 사용하여 Amazon RDS 에

업로드 하는 것이 더 이로울 수도 있습니다. Aamzon RDS 로 마이그레이션하는 문제는 향후 백서에서 자세히

설명할 것입니다.

스키마와 데이터가 준비되면 표준 MySQL SQL, JDBC 및 자주 요청되는 다른 API 뿐만 아니라 관계형 데이터에

사용할 수 있는 그래픽 도구를 통해 해당 정보와 상호 작용할 수 있습니다. 애플리케이션과 RDS 와의 상호 작용을

위해 코드를 변경할 필요가 없습니다. 단 데이터베이스 서버의 주소(예: dbserver.yourcompany.com)만 인스턴스를

생성할 때 AWS 에서 제공한 공개 DNS 끝점(예: myinstance.c0cafggtpzd2.us-east-1.rds.amazonaws.com)으로

교체하기만 하면 됩니다. 이 DNS 끝점은 인스턴스 수명 기간 동안 변하지 않습니다. 끝점을 구성하는 것을

제외하고 MySQL 기반 애플리케이션에 대한 그 밖의 모든 사항은 원래대로 유지됩니다.

Amazon RDS 안티 패턴

Amazon RDS 는 클라우드 기반 MySQL 데이터에 매우 적합한 솔루션이나 다음과 같이 적용되지 않는 다수의

시나리오도 있습니다.

인덱스 및 쿼리에 집중된 데이터—다수의 클라우드 기반 솔루션에는 조인 및 복잡한 트랜잭션과 같은

관계형 데이터베이스에서 사용되는 고급 기능이 필요하지 않습니다. 사용 중인 애플리케이션이 데이터를

인덱스하고 쿼리하는 용도로 사용된다면 Amazon SimpleDB 가 사용자의 요구에 더 적합할 수도 있습니다.

다수의 BLOb (Binary Large Objects)—MySQL(및 Amazon RDS)이 BLOb 를 저장할 수 있지만

애플리케이션에서 BLOb(예: 오디오 파일, 동영상, 이미지 등)를 사용하는 빈도가 높다면 Amazon Simple

Storage Service (Amazon S3)를 선택하는 것이 더 나을 수도 있습니다.

Page 19: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

19/23 페이지

자동 탄력성—앞서 언급한 바와 같이 Amazon RDS 환경을 구성하여 탄력성을 높이는 것은 관리자의

책임입니다. 자동 탄력성을 원하고 데이터 구조가 적합하다면 Amazon SimpleDB 또는 Amazon S3 와 같은

다른 스토리지 솔루션을 선택할 수도 있습니다.

기타 데이터베이스 플랫폼—현재 Amazon RDS 는 MySQL 데이터베이스를 제공합니다. 다른 데이터베이스

플랫폼(예: IBM DB2 또는 Informix, Microsoft SQLServer, Oracle, PostgreSQL 또는 Sybase)이 필요하다면

전문화된 Amazon EC2 관계형 데이터베이스 AMI 를 활용하거나 사용자 자신의 플랫폼을 생성해야 합니다.

Amazon EC2 의 관계형 데이터베이스/관계형 데이터베이스 AMI

EBS 볼륨과 더불어 Amazon EC2 는 클라우드에서 사용자 자신의 관계형 데이터베이스를 운용하는 데 이상적인

플랫폼을 제공합니다. 많은 주요 데이터베이스 솔루션을 이미 구축되어 사용 준비를 마친 Amazon EC2 AMI 형태로

사용할 수 있으며, 여기에는 IBM DB2 및 Informix, Oracle 데이터베이스, MySQL, Microsoft SQL Server, PostgreSQL,

Sybase, EnterpriseDB 및 Vertica 등이 포함됩니다.

이상적인 사용 시나리오

Amazon EC2 및 EBS 에서 관계형 데이터베이스를 실행하는 것은 애플리케이션에 특정 기존 관계형

데이터베이스가 필요한 사용자 또는 최대 수준의 관리 제어 및 구성 성능을 필요로 하는 사용자에게 이상적인

시나리오입니다.

성능

관계형 데이터베이스 인스턴스가 Amazon EC2 에서 실행될 때의 성능은 Amazon EC2 인스턴스 유형, EBS 볼륨의

수와 구성, 데이터베이스 소프트웨어와 해당 구성, 애플리케이션 워크로드와 같은 여러 요인에 따라 달라집니다.

일반적으로 데이터베이스가 Amazon EC2 에서 실행될 때의 성능은 구성이 유사한 온 프레미스 장비에 설치된

동일한 데이터베이스와 유사할 것으로 예상됩니다. 최상의 구성을 선택하려면 여러 개의 스토리지 구성을

사용하여 여러 Amazon EC2 인스턴스 유형에 실제 애플리케이션을 벤치마크하는 것이 좋습니다.

더 큰 Amazon EC2 인스턴스를 선택하여 메모리와 컴퓨팅 리소스를 확장하면 데이터베이스 성능을 향상시킬 수

있습니다. EBS 볼륨의 수를 변경하거나 여러 EBS 볼륨에서 소프트웨어 RAID 0(디스크 스트라이핑)을 사용하면 I/O

성능을 확장할 수 있으며, 이를 통해 전체 IOPS 및 대역폭이 증가됩니다. 대부분의 경우 데이터베이스 클러스터링,

복제 및 여러 읽기 슬레이브를 사용하여 수평으로 확장하면 전체 데이터베이스 시스템 성능도 확장할 수

있습니다. 일반적으로 실제 서버 환경에서와 Amazon EC2 환경에서의 데이터베이스 성능 튜닝 옵션이 동일합니다.

내구성 및 가용성

Amazon EC2 의 관계형 데이터베이스는 EBS 볼륨을 데이터 스토리지로 사용하여 구조화된 데이터를 위한 영구

스토리지를 제공하므로 EBS 데이터의 가용성 및 내구성에 대한 모든 정보가 여기에도 적용됩니다. 즉, EBS

스냅샷을 사용하거나 타사의 데이터베이스 백업 유틸리티(예: Oracle 의 RMAN)를 사용하여 Amazon S3 에

데이터베이스 백업을 저장하면 EBS 볼륨에 저장된 관계형 데이터의 기본 내구성과 가용성을 한층 더 향상시킬 수

있습니다.

Page 20: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

20/23 페이지

비용

Amazon EC2 에서 데이터베이스 실행 시 발생하는 요금은 최소 요금 또는 장기 약정이 없는 종량 과금제입니다.

Amazon EC2 에서 사용자 자신의 데이터베이스를 실행하는 비용은 대부분 데이터베이스를 실행하는 데 사용된

Amazon EC2 인스턴스의 크기와 수, 데이터베이스 스토리지에 사용된 EBS 볼륨의 크기, Amazon EC2 에서 송수신된

데이터의 양 및 타사 데이터베이스 소프트웨어의 라이선스 비용에 따라 달라집니다. 많은 오픈 소스

데이터베이스 패키지는 무료 라이선스 모델을 사용합니다. 일부 상용 소프트웨어 공급업체는 Amazon DevPay

모델을 사용하며, 그 외 다수의 다른 공급업체들은 자체 라이선스 모델을 제공합니다. 해당되는 라이선스 요금

모델에 대한 자세한 정보는 데이터베이스 소프트웨어 공급업체 또는 Amazon Web Services 로 문의하십시오.

Amazon EC2, EBS 및 데이터 전송 요금에 대한 자세한 정보는 http://aws.amazon.com/ec2/pricing/에서 확인할 수

있습니다.

탄력성 및 확장성

대부분의 경우 기존 관계형 데이터베이스 솔루션을 Amazon EC2 에서 사용하는 사용자는 기본 AWS 플랫폼의

탄력성과 확장성을 활용할 수 있습니다. 예를 들어, 사용 중인 데이터베이스 솔루션으로 Amazon EC2 인스턴스를

구성한 후 해당 인스턴스를 사용자 지정 AMI 에 번들링할 수 있는데, 이때 인스턴스 스토리지 AMI 를 위한 Bundle

명령이나 EBS AMI 를 위한 Create Image 명령을 사용할 수 있습니다. 그런 다음 잠시 후에 사용 중인 데이터베이스

구성의 여러 인스턴스를 새로 생성할 수 있습니다.

Amazon EC2 의 관계형 데이터베이스 안티 패턴

Amazon EC2 에서 사용자 자신의 관계형 데이터베이스를 실행하면 최상의 솔루션이 되지만 다음과 같이 다른

솔루션을 선택하는 것이 더 효율적인 시나리오도 다수 존재합니다.

인덱스 및 쿼리에 집중된 데이터—다수의 클라우드 기반 솔루션에는 조인이나 복잡한 트랜잭션과 같은

관계형 데이터베이스에서 사용되는 고급 기능이 필요하지 않습니다. 사용 중인 애플리케이션이 데이터를

인덱스하고 쿼리하는 용도로 사용된다면 Amazon SimpleDB 가 사용자의 요구에 적합하고 관리도 훨씬

용이할 수 있습니다.

다수의 BLOb (Binary Large Objects)—많은 관계형 데이터베이스는 BLOb(오디오 파일, 동영상, 이미지 등)를

지원합니다. 사용 중인 애플리케이션에서 BLOb 를 사용하는 빈도가 높다면 Amazon S3 가 더 나은 선택일

수 있으며, 이 경우 메타데이터 관리를 위해 관계형 데이터베이스 또는 SimpleDB 를 사용하는 것이

좋습니다.

자동 탄력성—앞서 언급한 바와 같이 대부분의 경우 AWS 의 관계형 데이터베이스 사용자는 기본 AWS

플랫폼의 탄력성 및 확장성을 활용하나, 이 경우 시스템 관리자 또는 DBA 는 수동 또는 스크립트 작업을

수행해야 합니다. 완전 자동화된 탄력성을 원하고 데이터 구조가 적합하다면 Amazon SimpleDB 또는

Amazon S3 와 같은 다른 스토리지 솔루션을 선택할 수도 있습니다.

Page 21: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

21/23 페이지

클라우드 스토리지 사용 사례

AWS 스토리지 옵션을 실제로 사용하는 예를 보려면 웹 사이트

(http://media.amazonwebservices.com/AWS_Storage_Use_Cases.pdf) 에 나와 있는 백서 AWS 클라우드의 스토리지

옵션: 사용 사례를 참조하십시오.

참고 문헌

AWS Storage Services

Amazon Elastic Block Store (EBS) – http://aws.amazon.com/ebs Amazon EC2 Instance Store Volumes – http://docs.amazonwebservices.com/AWSAmazon EC2/latest/UserGuide

(인스턴스 유형, 인스턴스 스토리지 및 블록 디바이스 매핑에 대한 섹션 참조) Amazon Simple Storage Service (Amazon S3) – http://aws.amazon.com/s3 Amazon Simple Queue Service (Amazon SQS) – http://aws.amazon.com/sqs Amazon SimpleDB – http://aws.amazon.com/simpledb Running Databases on AWS – http://aws.amazon.com/running_databases Amazon Relational Database Service (Amazon RDS) – http://aws.amazon.com/rds

AWS 스토리지 관련 기사

Werner Vogel 의 기사, “Choosing Consistency” – http://www.allthingsdistributed.com/2010/02/strong_consistency_simpledb.html

Amazon Web Services 블로그 기사, “Amazon SimpleDB Consistency Enhancements” – http://aws.typepad.com/aws/2010/02/amazon-simpledb-consistency-enhancements.html

Amazon Web Services 개발자 센터 기사, “Amazon SimpleDB Consistency Enhancements” – http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3572&categoryID=152

Amazon Web Services 월 사용량 계산기 – http://aws.amazon.com/calculator

Cloud FAQ 의 Oracle – http://www.oracle.com/technetwork/topics/cloud/faq-098970.html

Amazon Web Services 개발자 센터 기사, “Running Databases on AWS” – http://aws.amazon.com/running_databases/

Oracle 사례 연구: Oracle Database in the Cloud – http://www.oracle.com/technetwork/database/features/availability/311356-129177.pdf

기타 AWS 정보

AWS 프리 티어 – http://aws.amazon.com/free

AWS 의 공개 데이터 세트 – http://aws.amazon.com/publicdatasets AWS Import/Export – http://aws.amazon.com/importexport Amazon CloudFront – http://aws.amazon.com/cloudfront

AWS 사례 연구 – http://aws.amazon.com/solutions/case-studies

Page 22: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

22/23 페이지

부록: AWS 스토리지 빠른 참조

구조화되지 않은 데이터 구조화된 데이터

Amazon EC2 인스턴스

스토리지 Amazon EBS 볼륨 Amazon S3 Amazon SimpleDB

기타 관계형 DB

(EC2 및 EBS) Amazon RDS

성능 높음 높음 중간(단일 스레드) ~

매우 높음(여러

스레드)

중간 ~ 높음(일괄 처리된

PUT/GET 작업)

높음 높음

내구성 낮음 중간 높음 높음 높음 중간

비용 EC2 비용에 포함됨 프로비저닝됨

월별 GB 당

저장됨

월별 GB 당

프로비저닝됨

첫 GB 무료, 그 후

월별 GB 당

프로비저닝됨

(EBS 와 동일)

프로비저닝됨

월별 GB 당

(최소 5GB)

가용성 낮음 중간 ~ 높음(EBS 스냅샷

사용)

높음 높음 중간 ~ 높음 높음

탄력성/확장성 없음 수동(더 많은 볼륨 추가) 자동 자동 수동 수동(명령

하나로 DB

인스턴스 수정)

크기 제한 160GB ~ 1.6TB

(인스턴스가 클수록 볼륨의

크기와 수도 더 많음)

볼륨당 1GB ~ 1TB

(볼륨이 큰 경우 여러

볼륨 및 스트라이핑 사용

가능)

효율적 무제한

(객체당 5TB,

버킷당 객체

무제한)

10GB/도메인

100 개 도메인(요청 시 더

많은 도메인 사용 가능)

(EBS 와 동일) DB 인스턴스당 5GB ~ 1TB

인스턴스 전체의 지속성 없음 있음 있음 있음 있음 있음

인터페이스 블록 디바이스, EC2 OS/파일

시스템을 통한 액세스

해당 사항 없음, EC2

OS/파일 시스템을 통한

액세스

HTTP, REST 또는 SOAP

REST 또는 SOAP MySQL 또는 JDBC

라이브러리

MySQL 또는 JDBC

라이브러리

보안

(휴지 시 암호화)

암호화된 FS 실행

암호화된 FS 실행

256 비트 AES 를

사용하여 암호화

256 비트 AES 를 사용하여

암호화

보안

(전송 시 암호화)

해당 사항 없음 해당 사항 없음 SSL (HTTPS) SSL (HTTPS) SSL (HTTPS) SSL (HTTPS)

지원되는 RDBMS 플랫폼 MySQL, SQL Server, Oracle,

DB2 등

MySQL, SQL Server,

Oracle, DB2 등 해당 사항 없음 해당 사항 없음 MySQL, SQL Server,

Oracle, DB2 등

MySQL 5.1

모델

(관계형 또는 비관계형)

블록 블록 객체 비관계형, 유연한 스키마,

엔터티 스토리지

관계형 관계형

자동화 수준 없음 자동 미러링 자동 복제, 버전

관리

인덱싱 처리, 복제,

프로비저닝, 패치 적용

DB 에 따라 다름 자동화된 백업,

소프트웨어

패치 적용

Page 23: AWS 클라우드의 스토리지 옵션d36cz9buwru1tt.cloudfront.net/ko/WP/AWS_Storage_Options... · 2012-07-08 · Amazon Web Services – AWS 스토리지 옵션 2010년 12월 3/23

Amazon Web Services – AWS 스토리지 옵션 2010 년 12 월

23/23 페이지

구조화되지 않은 데이터 구조화된 데이터

Amazon EC2 인스턴스

스토리지 Amazon EBS 볼륨 Amazon S3 Amazon SimpleDB

기타 관계형 DB

(EC2 및 EBS) Amazon RDS

중복 수준 중복되지 않음 가용 영역 내에서 중복 여러 데이터

센터에서 중복성

높음

모든 사용자 데이터를 여러

지역에 분산해 사본으로

관리

없음(비동기 복제 사용

가능)

단일 DB

인스턴스(AZ

1 개) 및 여러 AZ

옵션 모두 제공

크로스 인스턴스

액세스(예: 공유 가능성)

없음 없음 있음 있음 있음 있음

운영 및 관리 수동 수동 자동 자동 수동 자동