Share
Sign In

Database

RDBMS (=SQL / OLTP) : RDS, Aurora
NoSQL database: DynamoDB(~JSON), ElastiCache (Key/Value pairs), Neptune (graphs)
Object Store: S3 (for big objects) / Glacier (for backups/archives)
Data Warehouse (=SQL Analytics / BI): Redshift (OLAP), Athena, Glue
Search: ElasticSeaerch (JSON)
Graphs: Neptune

1. RDS

관리형 관계형 데이터베이스(PostgreSQL / MySQL / Oracle / SQL) 서버
운영: 읽기 복제/EC2 인스턴스/EBS를 확장 가능, 실패해도 다운돼 있는 시간 적음
보안: AWS는 운영체제 보안을 책임. 우리는 KMS, 보안 그룹, IAM 정책, SSL, 유저에게 권한 부여에 관해 책임
신뢰: 백업, 스냅샷, point-in-time 복구, 멀티 AZ
성능: EC2 인스턴스 타입과 EBS 볼륨 타입에 따라 다름. 읽기 복제를 추가할 수 있음. 자동/수동 확장이 가능
가격: 프로비전한 EC2와 EBS에 기반에 시간당으로 책정

2. Aurora

PostgreSQ과 MySQL에 호환되는 API
운영: 저장소 자동 확장(10GB~128TB). 명령 가짓수가 적음.
보안: RDS와 동
신뢰: 멀티 AZ, 서버리스 사용 가능, Multi-Master(실패를 견딤) 사용 가능
성능: 5배의 성능, 기본 6개(3개 AZ)에서 최대 15개의 읽기 복제 유지 (RDS는 5개)
가격: 시간당 EC2와 저장소 이용. 오라클보다 쌀 수 있다.

3. ElasticCache

Redis / Memcached를 지원하는 key-value 방식의 NoSQL 인메모리 저장소.
운영: RDS와 동
보안: RDS와 비슷하지만 유저는 Redis Auth를 통해 관리함
신뢰: RDS 보안 + 클러스터링
성능: 매우 빠른 캐시, 읽기 복제(Sharding)을 지원
가격: RDS와 동

4. DynamoDB

ElastiCache를 대체하는 완전 관리형 Key/Value NoSQL 데이터베이스. 기본 키와 정렬 키, 인덱스로만 쿼리 가능.
운영: 자동이다.
보안: IAM 정책, KMS, SSL로 완전 관리됨
신뢰: 멀티 AZ, 백업
성능: 빠름, DAX로 읽기 캐싱, 확장해도 성능 유지
비용: 프로비전한 만큼, 저장된 용량 만큼

5. S3

Key(버킷)/Value(객체) 방식으로 큰 파일을 저장하는 서버리스 서비스
운영: 완전 자동화
보안: IAM, 버킷 정책, ACL, 암호화(서버/클라이언트), SSL
신뢰: 내구성과 가용성 최고, 버전 관리, 멀티 AZ, CRR(Cross-Region Replication)
성능: 확장 자유로움, Multi-part upload, Transfer Acceleration
비용: 저장 용량, 네트워크, 요청한 만큼 지불
티어: S3 Standard, IA, One Zone, Glacier, Deep Glacier

6. Athena

S3에서 SQL로 query하는 서버리스 서비스. 로그 분석 등으로 사용된다.
운영: 완전 자동
보안: IAM + S3 보안
신뢰: Presto 엔진을 써 성능과 고가용성 보장
성능: 데이터 크기에 따라 확장
비용: 요청한 쿼리 수, 스캔한 용량만큼 지불

7. Redshift

개요

ProstgreSQL를 사용하며 OLTP가 아닌 OLAP를 위해 사용한다.
행 지향 DB가 아닌 컬럼 지향 DB(Coulmnar)다.
대량 쿼리 병렬 실행 (MPP)를 지원하고 BI 툴과 통합이 가능하다.
멀티 AZ를 지원하지 않고 스냅샷을 통해 다른 리전으로 복사한다.
스냅샷을 찍고(8시간마다, 5GB마다), 복사하는 작업을 자동화할 수 있다.

동작

S3 등 DB에서 데이터를 가져온다.
클러스트를 만들어, 최대 128개의 노드를, 노드당 128TB를 보관할 수 있다.
리더 노드: 쿼리를 계획하고 결과를 모은다.
연산 노드: 쿼리를 연산하고 결과를 리더한테 보낸다.
Redshift Specturm: 병렬로 S3에서 데이터를 읽어서 제공하여 I/O에서 발생하는 지연을 없앤다.
백업/복구, 보안 VPC, IAM, KMS, 모니터링을 지원
Redshift Enhanced VPC Routing: 인터넷으로 나가지 않고 VPC를 통해서 COPY/UNLOAD를 한다.

Redshift로 데이터 보내기

정리

사용: 분석 / BI / DW
운영: RDS와 동
보안: IAM, VPC, KMS, SSL (RDS와 동)
신뢰: 자동 회복, 스냅샷으로 리전끼리 복사
성능: 압축, 다른 data warehouse보다 10배 빠름
비용: 프로비전한 노드만큼 지불
vs Athena: 빠름, join 가능, 병렬로 처리한 후 결과를 모음

8. Glue

데이터를 추출, 변환, 로드(DW로 데이터를 보냄)하는 관리형 서비리스 서비스(ETL)
Glue Data Catalog - AWS의 모든 자료형을 가지고 있는 메타데이터

9. Neptune

3개의 AZ에 최대 15개의 읽기 복제
KMS, HTTPS 암호화
운영: RDS와 비슷
보안: IAM, VPC, KMS, SSL (RDS와 동) + IAM 인증
신뢰: 멀티 AZ, 클러스터
성능: 좋음
비용: 프로비전한 노드 당 지불

10. ElasticSearch / OpenSearch

❗
OpenSearch로 이름 바꿨다.
인덱스가 완전히 일치해야 결과를 반환하는 DynamoDB 등과는 다르게
아무 필드나 검색할 수 있고, 부분 검색도 가능하다.
빅데이터 어플리케이션에서 주로 쓰며, 다른 AWS 서비스와 통합이 가능하다.

정리

사용: 검색 / 인덱싱
운영: RDS와 비슷
보안: Cognito, IAM, KMS, SSL, VPC
신뢰: 멀티 AZ, 클러스터
성능: 좋음
비용: 프로비전한 노드 당 지불
ELK Stack
ElasticSearch (Search & Analysis)
Logstash (Log Ingestion)
Kibana (Visualization)