1. 블록 스토리지
1) 인스턴스 스토어
- Amazon EC2 인스턴스에 임시 블록 수준 스토리지 제공
- 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결되어 있기 때문에 인스턴스와 수명이 동일한 스토리지
- 인스턴스가 종료되면 인스턴스 스토어의 모든 데이터가 손실됨
2) Amazon Elastic Block Store(Amazon EBS)
- Amazon EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨 제공
- Amazon EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터 사용 가능
- EBS 볼륨을 생성하려면 구성(예: 볼륨 크기 및 유형)을 정의하고 볼륨을 프로비저닝
- EBS 볼륨을 생성하고 Amazon EC2 인스턴스에 연결할 수 있음
- *Amazon EBS 스냅샷을 생성하여 EBS 볼륨을 증분 백업할 수 있음
*Amazon EBS 스냅샷
- 처음 볼륨을 백업하면 모든 데이터가 복사되고 그 이후의 백업에서는 가장 최근 스냅샷 이후 변경된 데이터 블록만 저장
- 증분 백업은 전체 백업(백업이 실행될 때마다 스토리지 볼륨의 모든 데이터가 복사)과는 다름, 전체 백업은 가장 최근의 백업 이후 변경되지 않는 데이터도 포함
2. 객체 스토리지
- 객체 스토리지에서 각 객체는 데이터, 메타데이터, 키로 구성됨
- 데이터는 이미지, 동영상, 텍스트 문서 또는 기타 유형의 파일일 수 있음
- 메타데이터에는 데이터의 내용, 사용 방법, 객체 크기 등에 대한 정보가 포함되어 있음
- 객체의 키는 고유한 식별자
cf) 블록 스토리지에서는 파일 수정 시 변경된 부분만 업데이트되고, 객체 스토리지에서는 파일 수정 시 전체 객체가 업데이트됨
1) Amazon Simple Storage Service(Amazon S3)
- 객체 수준 스토리지 제공 서비스 - 데이터를 버킷에 객체로 저장
- 이미지, 동영상, 텍스트 파일 등 모든 유형의 파일 업로드 가능
- Amazon S3는 저장 공간을 무제한으로 제공하며, 저장할 수 있는 객체 최대 파일 크기는 5 TiB
- Amazon S3에 파일을 업로드할 때 권한을 설정하여 파일에 대한 표시 여부 및 액세스 제어 가능
- Amazon S3 버전 관리 기능을 사용하여 경과에 따른 객체 변경 사항 추적 가능
- Amazon S3 스토리지 클래스
- Amazon S3에서는 사용한 만큼만 비용 지불
- 비즈니스 및 비용 요구 사항에 맞춰 다양한 스토리지 클래스 중에서 선택 가능
- 스토리지 클래스 선택 시 데이터를 검색할 빈도와 필요한 데이터 가용성 두 가지 요소를 고려해야 함
스토리지 클래스 | 액세스 빈도 | 가용 영역 | 스토리지 비용 | 검색 비용 |
S3 Standard | 자주 | 최소 3개 | 높음 | - |
S3 Standard-Infrequent Access(S3 Standard-IA) | 가끔 | 최소 3개 | 저렴 | 높음 |
S3 One-Zone-Infrequent Access(S3 One Zone-IA) | 가끔 | 단일 | 저렴 | - |
S3 Intelligent-Tiering | 다양 | 최소 3개 | 자동 최적화 | 상황에 따라 상이 |
S3 Glacier Instant Retrieval | 드뭄 | 최소 3개 | 높음 | 높음 |
S3 Glacier Flexible Retrieval | 매우 드뭄 | 최소 3개 | 저렴 | 유연함 |
S3 Glacier Deep Archive | 매우 드뭄 | 최소 3개 | 가장 저렴 | 낮음 |
S3 Outposts | 다양 | 온프레미스 | 상황에 따라 상이 | 상황에 따라 상이 |
① S3 Standard
- 자주 액세스하는 데이터를 위해 설계됨
- 자주 액세스하지 않는 데이터와 보관 스토리지를 위한 다른 스토리지 클래스보다 비용이 높음
- 최소 3개의 가용성 영역에 데이터를 저장
- 객체에 대한 고가용성 제공
- 웹사이트, 콘텐츠 배포, 데이터 분석과 같은 광범위한 사용 사례에 적합한 선택
② S3 Standard-Infrequent Access(S3 Standard-IA)
- 자주 액세스하지 않지만 필요에 따라 고가용성이 요구되는 데이터에 이상적
- 최소 3개의 가용성 영역에 데이터를 저장
- S3 Standard와 비슷하지만 스토리지 가격은 더 저렴하고 검색 가격은 더 높음
③ S3 One Zone-Infrequent Access(S3 One Zone-IA)
- 단일 가용 영역에 데이터 저장
- S3 Standard-IA보다 낮은 스토리지 가격
- 스토리지 비용을 절감하는 경우, 가용 영역 장애가 발생할 경우 데이터를 손쉽게 재현할 수 있는 경우에 적합
④ S3 Intelligent-Tiering
- 액세스 패턴을 알 수 없거나 자주 변화하는 데이터에 이상적
- Amazon S3가 객체의 액세스 패턴을 모니터링함
- 사용자가 30일 연속 객체에 액세스 하지 않으면 Amazon S3는 자동으로 해당 객체를 자주 사용하지 않는 액세스 계층인 S3 Standard-IA로 이동
- 사용자가 자주 사용하지 않는 액세스 계층에 저장된 객체에 액세스 하면 Amazon S3는 자동으로 해당 객체를 자주 사용하는 액세스 계층인 S3 Standard로 이동
- 객체당 소량의 월별 모니터링 및 자동화 요금을 부과
- 자주 액세스 된 데이터에 대해서는 검색 비용이 없으며, 드물게 액세스 된 데이터에 대해서는 검색 비용 발생
⑤ S3 Glacier Instant Retrieval
- 즉각적인 액세스가 필요한 *아카이브 데이터에 적합
- S3 Standard와 동일한 성능으로 몇 밀리초 만에 객체 검색 가능
*아카이브: 장기 보관을 목적으로 저장되는 데이터로 자주 액세스 되지 않지만 보존이 필요한 데이터 의미
⑥ S3 Glacier Flexible Retrieval
- 데이터 보관용으로 설계된 저비용 스토리지
- 객체를 1분 ~ 12시간 내에 검색
⑦ S3 Glacier Deep Archive
- 가장 저렴한 객체 스토리지 클래스로 보관에 적합
- 일 년에 한두 번 액세스 되는 데이터의 장기 보존 및 디지털 보존 지원
- 12시간 ~ 48시간 내에 객체 검색
- 모든 객체가 최소한 3개의 지리적으로 분산된 가용 영역에 복제되고 저장됨
⑧ S3 Outposts
- Amazon S3 Outposts에 S3 버킷을 생성
- 온프레미스 AWS Outposts 환경에 객체 스토리지 제공
- Amazon S3 Outposts는 Outpost에 있는 여러 개의 디바이스와 서버에 데이터를 내구성이 높고 중복되게 저장하도록 설계되어 있음
- 데이터를 온프레미스 애플리케이션 가까이 유지하여 까다로운 성능 요구 사항을 충족해야 하고 로컬 데이터 레지던스 요구 사항이 있는 워크로드에 적합
- AWS Outposts에서 더 쉽게 데이터를 검색, 저장, 액세스 할 수 있음
3. 파일 스토리지
- 여러 클라이언트(예: 사용자, 애플리케이션, 서버 등)가 공유 파일 폴더에 저장된 데이터에 액세스 할 수 있음
- 스토리지 서버가 블록 스토리지를 로컬 파일 시스템과 함께 사용하여 파일을 구성
- 클라이언트는 파일 경로를 통해 데이터에 액세스
- 블록 스토리지나 객체 스토리지와 비교하면 파일 스토리지는 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스해야 하는 사용 사례에 이상적
1) Amazon Elastic File System(Amazon EFS)
- AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용되는 확장 가능한 파일 시스템
- 파일을 추가 또는 제거하면 Amazon EFS가 자동으로 확장하거나 축소됨
- 애플리케이션을 중단하지 않고 온디맨드로 페타바이트 규모로 확장할 수 있음
Amazon EBS vs Amazon S3 vs Amazon EFS 비교
특징 | Amazon EBS | Amazon S3 | Amazone EFS |
스토리지 유형 | 블록 스토리지 | 객체 스토리지 | 파일 스토리지 |
사용 데이터 | 변경 상황이 자주 발생하는 데이터 | 한 번 쓰기/ 여러 번 읽기 패턴인 데이터 | 공유되는 데이터 |
사용 예 | 데이터베이스, 파일 시스템, 동영상 편집, 자주 업데이트되는 데이터 | 정적 데이터, 이미지, 동영상, 백업 파일 등 | 웹 서버 로그, 애플리케이션 데이터, 공유 파일 시스템 |
데이터 처리 | 블록 단위로 관리 / 부분적 업데이트 가능 | 객체 단위로 관리 / 파일 전체 업데이트 | 파일 단위로 관리 / POSIX 호환 파일 시스템 제공 |
내구성 | 가용 영역 단위의 고가용성 및 내구성 제공 | 99.99% 내구성(리전 별 분산 저장) | 다중 가용 영역에 중복저장으로 높은 내구성 제공 |
액세스 방식 | EC2 인스턴스에 직접 연결하여 디스크처럼 사용 | HTTP 기반 객체로 URL로 액세스(EC2 인스턴스 필요 없음) | 여러 인스턴스에서 동시 액세스 가능 온프레미스 서버에서 Direct Conenct로 액세스 가능 |
백업/스냅샷 | EBS 스냅샷 기능을 통해 백업 가능 | 자동으로 다중 가용 영역에 저장되어 백업 전략 불필요 | 중복 저장으로 백업 필요성 감소, 리전 내 가용 영역에 자동 분산 저장 |
비용 | 고성능, 고비용, 자주 액세스하고 자주 변경되는 데이터를 위한 최적화 | 상대적으로 저렴, 잦은 변경 없는 정적 파일에 적합 | 사용한 파일 시스템 용량에 따라 비용 부과, 동적 확장 가능 |
데이터 크기 | 최대 16TiB까지 지원 | 개별 객체 크기 최대 5TiB까지 지원 | 파일 시스템 크기 제한 없음 |
액세스 패턴 | 읽기/쓰기가 빈번한 데이터에 적합 | 한 번 쓰기, 여러 번 읽기에 최적화 | 여러 인스턴스에서 동시에 파일을 공유해야 할 때 적합 |
서버 요구 사항 | EC2 인스턴스 필요(서버 기반) | 서버리스로 EC2 인스턴스가 필요하지 않음 | 여러 인스턴스에서 공유 가능, 온프레미스 서버도 Direct Connect로 액세스 가능 |
영역 사용성 | 특정 가용 영역 내에서 사용 | 리전 내에서 여러 가용 영역에 데이터 분산 | 리전 내 모든 가용 영역에서 동시에 사용 가능 |
4. 관계형 데이터 베이스
- 정형 쿼리 언어(SQL)를 사용하여 데이터를 저장하고 쿼리함
- 이 접근 방식은 데이터를 쉽게 이해할 수 있고 일관되며 확장 가능한 방식으로 저장할 수 있음
1) Amazon Relational Database Service
- AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스
- 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스
- 관리 작업을 수행하는데 드는 시간을 줄이고 데이터를 사용하여 애플리케이션을 혁신하는 데 더 많은 시간을 할애할 수 있음
- Amazon RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 및 운영 요구사항을 충족할 수 있음
- 다양한 보안 옵션 제공: Amazon RDS 데이터베이스 엔진이 저장 시 암호화(데이터가 저장되는 동안 데이터를 보호) 및 전송 중 암호화(데이터를 전송 및 수신하는 동안 데이터를 보호)를 제공
2) Amazon RDS 데이터베이스 엔진
- 메모리, 성능 또는 입/출력에 최적화된 6개의 데이터베이스 엔진에서 사용 가능
- 지원되는 데이터베이스 엔진
- Amazon Aurora
- PsotgresSQL
- MySQL
- Oracle Database
- Microsoft SQL Server
3) Amazon Aurora
- 엔터프라이즈 급 관계형 데이터베이스
- MySQL 및 PostgreSQL 관계형 데이터베이스와 호환됨
- 표준 MySQL 데이터베이스보다 최대 5배 빠르며 표준 PostgreSQL 데이터베이스보다 최대 3배 빠름
- 데이터베이스 리소스의 신뢰성 및 가용성을 유지하면서도 불필요한 입/출력 작업을 줄여 데이터베이스 비용을 절감함
- 워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려해 볼 수 있음
- 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3 데이터를 백업함
5. 비관계형 데이터베이스
- 테이블을 생성하고, 테이블에 데이터를 저장하고 쿼리 할 수 있음
- 행과 열이 아닌 구조를 사용하여 데이터를 구성하기 때문에 NoSQL 데이터베이스라고도 함
- 비관계형 데이터베이스의 구조적 접근 방식 중 한 유형은 키-값 페어로, 데이터가 항목(키)으로 구성되고 항목은 속성(값)을 가짐
- 키-값 데이터베이스에서는 언제든지 테이블의 항목에서 속성을 추가하거나 제거할 수 있으며 테이블의 모든 항목에 동일한 속성을 가질 필요 없음
1) Amazone DynamoDB
- 키-값 데이터베이스 서비스
- 모든 규모에서 한 자릿수 밀리초의 성능 제공
- 서버리스 이므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요 없으며 소프트웨어 설치, 유지 관리, 운영할 필요도 없음
- 데이터베이스 크기가 축소 또는 확장되면 용량 변화에 맞춰 자동으로 크기를 조정하면서도 일관된 성능 유지되므로 크기를 조정하는 동안에도 고성능이 필요한 사용 사례에 적합함
6. 데이터 웨어하우스
- 빅데이터와 다양한 데이터 소스에서 데이터를 수집하고 분석하는데 기존 관계형 데이터베이스로는 한계가 생길 수 있어 이에 대한 해결책으로 데이터 웨어하우스가 등장
- 기록 분석에 특화된 시스템으로 과거 데이터를 기반으로 질문(예: 지난 1시간 동안의 매출)에 대답하는 데 최적화되어 있음(실시간 데이터 분석은 기존 데이터베이스가 더 적합)
1) Amazon Redshift
- AWS의 확장 가능한 데이터 웨어하우스 서비스
- 페타바이트의 데이터 처리도 가능하며 Redshift Spectrum을 통해 비정형 데이터도 분석 가능
- 다양한 데이터 소스에서 대규모 비즈니스 인텔리전스(BI) 프로젝트를 쉽게 수행할 수 있고 기존 데이터베이스 대비 최대 10배 성능 제공
- 대규모 기록 데이터 분석과 빅 데이터 BI 프로젝트에 최적화된 설루션이며 AWS에서 쉽게 확장 가능하고 관리 부담이 적음
7. AWS 데이터베이스 마이그레이션 서비스(AWS DMS)
- 관계형 데이터베이스, 비관계형 데이터베이스 및 기타 유형의 데이터 저장소를 마이그레이션 할 수 있음
- 원본 데이터베이스와 대상 데이터 베이스 간 데이터를 이동할 수 있음
- 원본 데이터베이스와 대상 데이터베이스는 유형이 동일할 필요 없음
- 마이그레이션 하는 동안 원본 데이터베이스는 계속 작동하여 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 줄일 수 있음
- 다른 사용사례
- 개발 및 테스트 데이터베이스 마이그레이션: 프로덕션 사용자에게 영향을 주지 않고 개발자가 프로덕션 데이터에서 애플리케이션을 테스트할 수 있도록 지원
- 데이터베이스 통합: 여러 데이터베이스를 단일 데이터베이스로 결합
- 연속 복제: 일회성 마이그레이션이 아닌 데이터의 진행 중 복제본을 다른 대상 원본으로 전송
8. 추가 데이터베이스 서비스
1) Amazon DocumentDB
- MongoDB 워크로드를 지원하는 문서 데이터베이스 서비스
2) Amazon Neptune
- 그래프 데이터베이스 서비스
- 추천 엔진, 사기 탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션을 빌드하고 실행할 수 있음
3) Amazon Quantume Ledger Database(Amazon QLDB)
- 원장 데이터베이스 서비스
- 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토할 수 있음
4) Amazon Managed Blockchain
- 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는 데 사용할 수 있는 서비스
- Blockchain은 여러 당사자가 중앙 기관 없이 거래를 실행하고 데이터를 공유할 수 있는 분산형 원장 시스템
5) Amazon ElasticCache
- 자주 사용되는 요청의 읽기 시간을 향상하기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스
- 이 서비스는 두 가지 데이터 스토어 Redis 및 Memcached를 지원
6) Amazon DynamoDB Accelerator
- DynamoDB용 인 메모리 캐시
- 응답 시간을 한 자릿수 밀리초에서 마이크로초까지 향상할 수 있음