참고
AWS Database
NOTE
•
RDBMS
◦
SQL을 사용하거나 온라인 트랜잭션을 처리할 때 사용
◦
RDS, Aurora
•
NoSQL
◦
유연한 데이터베이스
◦
일반적으로 SQL 쿼리를 사용하지 않음
◦
DynamoDB, ElasticCache
•
Object Store
◦
대용량 객체 저장용
◦
S3, 아카이브용 Glacier등이 포함된 DB
•
Data Warehouse
◦
SQL 분석이나 비즈니스 인텔리전스
◦
Redshift, Athena
•
Search
◦
자유롭게 텍스트를 입력하거나 비정형 데이터를 검색하는 DB
◦
OpenSearch
•
Graphs
◦
데이터 세트 간의 관계를 표시
◦
Amazon Neptune
•
Ledger
◦
트랜잭션 목록과 원장을 기록하는 DB
◦
블록체인 관련
◦
Amazon Quantun Ledger DB(QLDB)
•
Time Series
◦
시계열 데이터베이스
◦
Amazon Timestream
RDS 요약
NOTE
•
MySQL, Oracle, PostgreSQL 등이 사용
•
RDS 인스턴스 크기와 EBS 볼륨 및 유형 크기를 프로비저닝 해야한다.
•
읽기 용량 확장을 위해 읽기 전용 복제본 지원
•
고가용성 목적으로 다중 AZ에 생성
•
IAM, 보안 그룹, KMS, SSL/TLS를 이용해 보안제공
•
자동 백업, 지정 시간 복구, 장기 보존 백업(스냅샷) 기능 지원
•
SQL 쿼리 실행, 트랜잭션 등에 활용됨!
Aurora 요약
NOTE
•
RDS보다 관리할게 적고, 성능이 좋지만 20%정도 더 비쌈!
•
PostgreSQL, MySQL과 호환되는 API를 갖춘 DB
•
스토리지의 경우 3개의 AZ, 6개의 복제본에 저장 ⇒ 가용성이 높고, 오토스케일링 지원
•
RDS와 동일한 보안 , 모니터링, 유지관리 기능
•
Aurora Serverless
◦
워크로드가 간혈적이거나 예측할 수 없는 경우 사용한다.
•
Aurora Multi Master
◦
한 번에 여러 인스턴스에 쓰기를 할 수 있는 옵션
◦
쓰기 고가용성과 장애 조치가 필요할 때 사용한다.
•
Aurora Global
◦
DB가 복제된 리전마다 최대 16개의 DB 읽기 전용 인스턴스 제공
◦
리전 간 스토리지 복제에 걸리는 시간은 1초미만
◦
기본 리전에 문제가 생기면 보조 리전을 새 기본 리전으로 승격
•
Aurora Database Cloning
◦
프로덕션 데이터베이스로부터 테스트 데이터베이스나 스테이징 데이터베이스를 만들 때 사용
◦
스냅샷을 사용해서 복구하는 것보다 훨씬 빠르다.
ElasticCache 요약
NOTE
•
관리형 Redis/Memcached로 RDS와 비슷한 기능을 제공하지만 캐싱 작업에 활용됨
•
ElasticCache는 인 메모리 데이터 스토어로 데이터를 읽을 때 1밀리 초 미만의 지연시간 제공
•
캐시를 위한 EC2 인스턴스 유형을 프로비저닝 해야한다.
•
클러스터 생성, 다중 AZ, 샤딩을 위한 읽기 전용 복제복 사용 가능
•
IAM, 보안 그룹, 저장 데이터 암호화를 위한 KMS, Redis 인증을 이용한 보안 기능
•
RDS처럼 백업 및 스냅샷, 지정 시간 복구 같은 기능 사용 가능
•
유지 관리 작업 처리와 예약 가능
•
ElasticCache를 사용해 RDS가 결합된 DB에서 캐싱 작업을 수행하려면 애플리케이션 코드 수정 필요!
•
웹 사이트 사용자를 위한 세션 데이터 저장, 데이터베이스 쿼리 캐싱 등에 활용, SQL에서 사용불가
DynamoDB 요약
NOTE
•
AWS의 독점 기술로 완전 관리형 서버리스, NoSQL DB, 밀리초 수준의 지연시간 제공
•
프로비저닝된 용량 모드
◦
선택형 오토 스케일링 탑재
◦
점진적으로 늘거나 줄어드는 이중 워크로드가 있을 때 유용
•
온디맨드 모드
◦
용량을 프로비저닝 하지 않음
◦
오토스케일링 워크로드 예측이 어려울 때 수요 급증에 사용
•
ElasticCache를 대신하여 DynamoDB에 키-값 저장 가능
•
다중 AZ로 가용성이 높음
•
글로벌 테이블 기능으로 여러 리전 간 다중 활성 복제 가능
•
스키마를 빠르게 전개해야 하는 경우에 DynamoDB가 유용
•
400KB 미만의 문서를 다루는 작은 서버리스 애플리케이션 개발, 서버리스 캐시 분산 등에 활용
S3 요약
NOTE
•
객체의 키/값 저장소
•
큰 물체에는 적합하지만 여러 작은 물체를 저장하기에는 적합하지 않다.
•
서버리스, 무한 확장, 최대 개체 크기 5TB, 시간 경과에 따른 버전 관리 가능
•
계층
◦
S3 Standard
◦
S3 Inrequent Access
◦
S3 Inteligent
◦
S3 Glacier
•
기능
◦
버전 관리
◦
암호화
◦
복제
◦
MFA 삭제
◦
액세스 로그
◦
…
•
보안
◦
IAM
◦
버킷 정책
◦
CORS
◦
ACL
◦
…
•
암호화
◦
SSE-S3
◦
SSE-KMS
◦
SSE-C
◦
클라이언트 측, 전송 중인 TLS
•
S3 Batch를 사용하여 모든 객체에 대한 일괄 작업
•
S3 Inventory를 사용하여 파일 목록 실행
•
성능
◦
파일을 병렬식으로 업로드 할 수 있는 멀티파트 업로드
◦
파일을 한 리전에서 다른 리전으로 더 빠르게 전송할 수 있는 S3 Transfer Accleration
◦
S3에서 필요한 데이터만 검색할 수 있는 S3 Select
•
자동화
◦
S3 이벤트 알림
DocumentDB
NOTE
•
DocumentDB는 MongoDB용 Aurora다!
•
MongoDB는 JSON 데이터를 저장, 쿼리 및 인덱싱 하는데 사용
•
Aurora와 유사한 배포개념을 가진다.
Amazon Neptune
NOTE
그래프 데이터베이스!
•
완전 관리형 그래프 데이터베이스!
•
인기 있는 그래프 데이터 세트는 소셜 네트워크다
◦
사용자에게 친구를 가진다.
◦
댓글에는 사용자의 좋아요가 있다 ⇒ 예시문제!
◦
사용자가 게시물을 공유하고 좋아한다.
•
최대 15개의 읽기 전용 복제본으로 3개의 AZ에서 고가용성 제공
•
고도로 연결된 애플리케이션 구축 및 실행
•
최대 수십억 개의 관계를 저장하고 밀리초 대기 시간으로 그래프를 쿼리할 수 있다.
Amazon Keyspaces
NOTE
•
오픈 소스 NoSQL 분산 데이터베이스
•
관리형 Apache Cassandra 호환 데이터베이스 서비스
•
서버리스, 확장 가능, 고가용성, AWS에서 완벽하게 관리
•
CQL(Cassandra Query Language) 사용
•
모든 규모에서 한 자릿수 밀리초의 지연시간
Amazon QLDB
NOTE
•
완전관리형 원장 데이터베이스
◦
원장 = 금융거래를 기록한 장부
•
서버리스, 고가용성, 3AZ간 복제
•
일반 원장 블록체인 프레임워크보다 2~3배 더 나은 성능, SQL을 사용하여 데이터 조작
Amazon Timestream
NOTE
•
완벽하게 관리되는 빠르게 확장 가능한 서버리스 시계열 데이터베이스
•
매일 수조 건의 이벤트 저장 및 분석
•
1000배 빠른 속도 및 관계형 DB 비용의 1/10
•
전송 및 미사용 암호화
Snowball
NOTE
페타바이트급 대용량 데이터를 전송하기 위한 서비스!
실제 모습
•
서비스와 더불어 물리적인 실체가 있는 장비가 존재하여 AWS에 요청하면 Snow ball을 배송받는다.
•
on-premiss의 데이터를 빠르게 Snowball로 이동시킨 뒤, 작업이 완료되면 이 물리 장비를 다시 AWS로 배송해서 S3 Bucket에 저장한다.
•
스토리지 용량은 최대 80TB까지 저장 가능
•
Snowball 이외에 기능이 추가된 Snowball Edge가 있다.
사용사례
•
페타바이트 규모의 데이터를 AWS에 이송하는 경우 적합
•
물리적으로 격리된 환경이나 인터넷 환경이 좋지 않을 떄 사용