반응형
RDS
- 관리형 PostgreSQL, MySQL Oracle, SQL 서버 MariaDB용 및 사용자 지정 RDS가 있다.
- Amazon RDS를 사용할 때는 RDS 인스턴스 크기와 EBS 볼륨 유형 및 크기를 프로비저닝해야 한다.
- 스토리지 계층에 오토 스케일링 기능이 있어도 프로비저닝해야 한다.
- 읽기 용량 확장을 위해 읽기 전용 복제본을 지원한다.
- 고가용성 목적으로 대기 데이터베이스를 다중 AZ에 둘 수 있다.
- 대기 데이터베이스는 재해 발생 대비용이며 쿼리를 수행할 수는 없다.
- RDS 데이터베이스 보안은 IAM을 통해 설정할 수 있다.
- 사용자 이름과 비밀번호로 DB에 연결할 수 있게 하거나 일부 사용자에게 IAM 인증을 부여할 수 있다.
- 네트워크 보안을 위해 Amazon RDS DB에 보안 그룹을 설정할 수 있다.
- 저장 데이터 암호화에는 KMS를 전송 데이터 암호화에는 SSL과 TLS를 사용할 수 있다.
- 자동 백업 옵션도 있습니다 최대 35일까지 지원된다.
- 최근 35일 내에는 지정 시간 복구 기능을 지원하고 복구 시 새 데이터베이스가 생성된다.
- 장기 보존 백업이 필요한 경우에는 수동 DB 스냅샷을 사용하면 된다.
- 유지 관리 기능을 예약할 수 있기 때문에 데이터베이스 다운타임이 발생할 수 있다.
- 프로비저닝하거나 AWS가 데이터베이스 엔진을 주기적으로 업데이트하고 기본 EC2 인스턴스에 보안 패치를 실행할 때 발생할 수 있다.
- RDS 프록시를 강제하여 RDS에 IAM 인증을 추가하는 기능이 있다.
- Secrets Manager와 통합하여 DB 자격 증명을 관리할 수도 있다.
- 기본 인스턴스에 액세스하고 사용자 지정하려면 RDS 사용자 지정 옵션을 사용할 수 있다.
- Oracle, SQL 서버 유형의 데이터베이스에서 지원된다.
Aurora
- Aurora는 데이터베이스 엔진인 PostgreSQL, MySQL과 호환되는 API다.
- 컴퓨팅과 스토리지가 분리된 특별한 서비스다.
- 스토리지의 경우 기본적으로 데이터를 세 가용 영역에 걸쳐 여섯 개의 복제본에 저장한다. 이 설정은 바꿀 수 없다. (고가용성)
- 스토리지에 문제가 발생하면 백그라운드에서 자가 복구 처리가 이뤄진다.
- 오토 스케일링이 기능이 내장돼 있어 스토리지 확장도 문제없다.
- 컴퓨팅의 경우 클러스터화된 실제 데이터베이스 인스턴스를 여러 가용 영역에 걸쳐 저장할 수도 있다.
- 읽기 전용 복제본이 있다면 로드가 증가할 때 오토 스케일링을 통해 용량을 늘릴 수 있다.
- 데이터베이스 인스턴스 클러스터가 있으므로 읽기와 쓰기를 위한 사용자 지정 엔드 포인트, 즉 라이터(writer) 엔드 포인트와 리더(reader) 엔드 포인트가 필요하다.
- Aurora는 RDS와 동일한 보안 모니터링, 유지 관리 기능을 갖는다.
- Aurora Serverless는 워크로드가 간헐적이거나 예측할 수 없는 경우 용량 계획을 하지 않아도 되므로 매우 유용하다.
- 쓰기 고가용성을 위해 쓰기 장애 조치가 지속해서 필요할 때 Aurora Multi-Master를 사용하면 DB 인스턴스 여러 개가 스토리지에 쓰기를 할 수 있도록 설정할 수 있다.
- 글로벌 데이터베이스를 원할 땐 Aurora Global을 사용하면 된다. 데이터베이스가 복제된 리전마다 최대 16개의 데이터베이스 읽기 전용 인스턴스를 제공하고 리전 간 스토리지 복제에 걸리는 시간은 일반적으로 1초 미만다.
- 기본 리전에 문제가 발생하면 보조 리전을 새 기본 리전으로 승격할 수 있다.
- Aurora Machine Learning 모듈을 사용하면 SageMaker와 Comprehend를 사용해 Aurora에서 머신 러닝을 수행할 수 있다.
- 프로덕션 데이터베이스로부터 테스트 데이터베이스나 스테이징 데이터베이스를 만들려면 Aurora Database Cloning 기능을 사용해기존 클러스터에서 새 Aurora 클러스터를 만들면 된다. 스냅샷을 사용해서 복구하는 것보다 훨씬 빠르다.
- Aurora의 사용 사례는 RDS와 같지만 Aurora는 유지 관리할 게 적고 유연성은 높으며 성능도 더 좋을 뿐만 아니라 내장된 기능도 더 많다.
ElasticCache
- Amazon ElastiCache는 관리형 Redis/Memcached로 RDS와 비슷한 기능을 제공하지만 주로 캐싱 작업에 활용된다.
- ElastiCache는 인 메모리 데이터 스토어로 데이터를 읽을 때 1밀리초 미만의 지연 시간을 제공한다.
- 캐시를 위한 EC2 인스턴스 유형을 프로비저닝해야 계속 진행할 수 있다.
- Redis용에서는 클러스터 생성, 다중 AZ와 샤딩을 위한 읽기 전용 복제본을 사용할 수 있다.
- IAM을 통해 프로비저닝한 보안과 보안 그룹을 사용할 수 있고 저장 데이터 암호화를 위한 KMS와 Redis 인증을 사용할 수 있다.
- RDS처럼 백업 및 스냅샷 지정 시간 복구 같은 기능을 사용할 수 있다.
- 관리형 및 예약된 유지 관리가 가능하다.
- Amazon ElastiCache를 사용해 RDS가 결합된 데이터베이스에서 캐싱 작업을 수행하려면 애플리케이션 코드가 ElastiCache를 활용하도록 코드를 수정해 줘야 한다. (중요)
- 시험에서 코드 변경이 필요 없는 캐싱 솔루션을 물어본다면 ElastiCache는 선택하면 안 된다.
- ElastiCache의 사용 사례에는 키-값 스토어가 있고 데이터베이스를 자주 읽는다면 데이터베이스 쿼리를 캐싱하는 게 좋다.
- 웹사이트 사용자를 위해 세션 데이터를 저장할 수도 있다.
- 참고로 ElastiCache에선 SQL을 사용할 수 없다.
DynamoDB
- DynamoDB는 AWS의 독점 기술로 관리형 서버리스 NoSQL 데이터베이스이나 밀리초 수준의 지연 시간을 제공한다.
- 선택형 오토 스케일링이 탑재된 프로비저닝된 용량 모드로 점진적으로 늘어나거나 점진적으로 줄어드는 이중(double) 워크로드가 있을 때 유용하다.
- 온디맨드 용량 모드에서는 용량을 프로비저닝하지 않아도 된다.
- 하지만 오토 스케일링이 실행되므로 워크로드를 예측하기 어려울 때나 데이터베이스의 수요가 급증할 때 유용한 모드다.
- ElastiCache 대신 DynamoDB에 키-값을 저장할 수 있는데, 웹사이트의 세션 데이터를 저장하는 좋은 방법이다.
- TTL 기능과 결합하면 일정 시간 후에 행이 만료되게 설정할 수 있다.
- DynamoDB는 가용성이 아주 높다. 기본적으로 다중 가용 영역에 걸쳐 있기 때문이다.
- 읽기와 쓰기가 완전히 분리되어 있고 DynamoDB 테이블에서 트랜잭션을 처리할 수 있다.
- DynamoDB와 호환되는 읽기 캐시 즉, DAX 클러스터를 생성할 수 있다.
- DAX는 DynamoDB Accelerator를 의미하고, DAX 클러스터의 특징은 읽기 지연 시간이 백만분의 1초라는 점이다.(중요)
- 보안, 인증, 권한 부여는 IAM을 통해 처리된다.
- DynamoDB에는 이벤트 처리 용량이 있어 DynamoDB Streams로 데이터베이스의 모든 변경 사항을 스트리밍할 수 있다.
- DyanmoDB Streams를 AWS Lambda와 통합할 수도 있다.
- 그러면 DynamoDB 테이블에서 변경이 발생할 때마다 Lambda가 실행된다.
- DynamoDB Streams 대신 Kinesis Data Streams로 데이터를 전송할 수도 있다.
- Kinesis Data Firehose와 같은 다른 통합의 기능을 사용할 수 있다는 이점이 있다.
- 가령 Kinesis Data Streams에서 보유 기간을 1년까지 설정할 수 있다.
- DynamoDB에는 글로벌 테이블 기능도 있다. 여러 리전 간에 다중 활성 복제를 할 수 있다.
- 어느 리전에서든 읽고 쓸 수 있으므로 다중 활성(active-active)이라고 부르는 것
- 백업 옵션은 두 가지다.
- 먼저 자동 백업이다. 지정 시간 복구를 활성화하면 새 DynamoDB 테이블에 테이블을 복구할 수 있다. 35일까지 가능
- 백업 보유 기간을 더 길게 설정하려면 온디맨드 백업을 활성화해서 새 테이블을 복구하면 된다.
- 지정 시간 복구 기간 내에 읽기 용량 단위를 사용하지 않고 DynamoDB 테이블을 Amazon S3로 내보낼 수 있다.
(35일 이내에 S3로 내보내는 기능을 사용하면서) - 쓰기 용량 단위를 사용하지 않고 S3에서 새 테이블로 불러올 수도 있다.
- 시험에서 스키마를 빠르게 전개해야 하는 경우가 나온다면 DynamoDB를 떠올리자.
- DynamoDB의 사용 사례로는 400KB 미만의 문서를 다루는 작은 서버리스 애플리케이션 개발 서버리스 캐시 분산이 있다.
- 참고로 DynamoDB는 SQL 쿼리 언어를 사용할 수 없다.
S3
- S3는 객체를 키-값으로 저장하므로 큰 객체를 저장할 때는 유용하지만 여러 개의 작은 객체를 저장할 때는 유용하지 않다.
- Amazon S3는 서버리스이므로 확장성이 무한하다.
- 객체의 최대 크기는 5TB이며 시간 경과에 따라 계속 버저닝한다.
- 스토리지 계층으로는 S3 Standard, Infrequent Access Intelligent와 Glacier가 있으며 계층을 전환하려면 수명 주기 정책을 사용해야 한다.
- 꼭 알아야 할 중요한 기능으로는 버저닝, 암호화, 복제 멀티 팩터 인증(MFA) 삭제와 액세스 로그가 있다.
- 보안 기능에는 IAM 보안이 있다.
- S3 버킷에 버킷 정책을 생성할 수도 있고 ACL 기능도 있다.
- Amazon S3에 액세스 포인트를 생성할 수도 있다.
- S3 Object Lambda를 사용해 객체를 애플리케이션에 전송하기 전에 수정할 수도 있다.
- CORS 정책도 있다.
- Glacier의 객체 잠금 또는 볼트 잠금 개념을 활용할 수도 있다. (중요)
- SSE-S3, 자체 KMS 키를 가져올 수 있는 SSE-KMS, SSE-C, 클라이언트 측 암호화 전송 중 TLS 암호화가 있다.
- S3 버킷에 기본 암호화 체계를 설정할 수도 있다.
- Amazon S3 버킷에 있는 모든 파일을 한 번에 작업하려면 S3 Batch를 사용해 배치 작업을 하면 유용하다.
- 파일 목록은 S3 인벤토리를 사용해 생성할 수 있다.
- Amazon S3의 향상된 성능에는 파일을 병렬식으로 업로드할 수 있는 멀티파트 업로드가 있다.
- S3 전송 가속화를 통해 S3 파일을 한 리전에서 다른 리전으로 더 빠르게 전송할 수 있다.
- S3 Select로 Amazon S3에서 필요한 데이터만 검색할 수도 있다.
- 자동화 관련해서는 S3 Event Notifications가 있다.
- SNS, SQS, Lambda EventBridge 등을 사용해서 Amazon S3 버킷에서 새로운 객체가 생성되는 이벤트에 반응할 수 있다.
- Amazon S3의 사용 사례에는 정적 파일 큰 파일의 키-값 스토어 또는 웹사이트 호스팅이 있다.
Document DB
- DocumentDB는 몽고DB용 Aurora. 몽고 DB 기술을 기반으로 한다.
- 즉, DocumentDB는 NoSQL 데이터베이스다. 몽고DB와 호환된다.
- 몽고DB는 JSON 데이터를 저장, 쿼리, 인덱스하는 데 사용됩니다, DocumentDB에도 Aurora와 같은 배포 개념이 있다.
- 즉, 완전 관리형 데이터베이스다. 고가용성
- 데이터는 3개의 가용 영역에 복제된다. 스토리지는 자동으로 10GB 단위로 최대 64TB까지 증가한다.
- 이렇게 DocumentDB는 초당 수백만 건의 요청이 있는 워크로드로 확장될 수 있도록 설계되었다.
Neptune
- Neptune은 완전 관리형 그래프 데이터베이스다.
- 그래프 데이터 셋의 예는 소셜 네트워크다.
- 그래프 데이터 셋에서는 Neptune을 데이터베이스로 선택하는 게 좋다.
- Neptune은 3 AZ에 걸쳐 최대 15개의 읽기 전용 복제본으로 복제한다.
- Neptune은 소셜 네트워크처럼 고도로 연결된 데이터 셋을 사용하는 애플리케이션을 구축하고 실행하는 데 사용된다.
- Neptune은 그래프 데이터 셋에서 복잡하고 어려운 쿼리를 실행하기에 최적화되어 있다.
- 데이터베이스에 최대 수십억 개의 관계를 저장할 수 있고, 그래프를 쿼리할 때 지연시간은 밀리초다.
- 여러 가용 영역에 걸친 애플리케이션에서도 매우 가용성이 높으며 지식 그래프를 저장하는 데도 뛰어나다.
- 예를 들어 모든 위키피디아 기사들은 서로 연결되어 있으니까 위키피디아 데이터베이스는 지식 그래프, 사기 탐지, 추천 엔진, 소셜 네트워킹도 마찬가지
Keyspaces
- Keyspaces는 AWS의 관리형 Apache Cassandra(오픈 소스 NoSQL 분산 데이터베이스)를 보조한다.
- Keyspaces를 사용하면 클라우드에서 AWS가 Cassandra를 직접 관리해 준다.
- 서버리스 서비스이며 확장성과 가용성이 높으며 AWS 완전 관리형이다.
- 애플리케이션 트래픽에 따라 테이블을 자동으로 확장/축소하며, 테이블 데이터는 여러 AZ에 걸쳐 세 번 복제됩니다
- Keyspaces에서 쿼리를 수행하려면 Cassandra 쿼리 언어(CQL)을 사용하면 된다.
- 어떤 규모에서도 지연 시간이 10밀리초 미만으로 짧고 초당 수천 건의 요청을 처리한다.
- DynamoDB처럼 두 가지 용량 모드가 있다.
- 온디맨드 모드와 크기가 자동 조정되는 프로비저닝 모드다.
- DaynamoDB의 모드와 동일하다.
- 암호화와 백업 기능을 제공하고 최대 35일까지 지정 시간 복구가 가능하다.
- 사용 사례로는 IoT 장치 정보와 시계열 데이터 저장 등이 있다.
QLDB
- 퀀텀 레저 데이터베이스의 약자
- 원장(Ledger)은 금융 트랜잭션을 기록하는 장부다. 따라서 QLDB는 금융 트랜잭션 원장을 갖게 된다.
- 완전 관리형 데이터베이스이며, 서버리스고, 고가용성이다. 3개의 가용 영역에 걸쳐 데이터를 복제할 수 있다.
- 또한 애플리케이션 데이터의 시간에 따른 모든 변경 내역을 검토하는 데 사용된다.
- 불변 시스템이다. 즉, 데이터베이스에 무언가를 쓰면, 삭제하거나 수정할 수 없다.
- 정말로 아무 것도 삭제되지 않았는지 확인하기 위해, 암호화 서명을 하기도 한다.
- 내부적으로 저널이 있다. 저널에는 수정 시퀀스가 있다. 따라서 수정이 일어날 때마다, 암호화 해시가 계산된다.
- 아무 것도 삭제되거나 수정되지 않도록 보장하는 것이다.
- 데이터베이스를 사용하는 모든 사람이 확인할 수 있다.
- 금융 트랜잭션에 매우 유용하다. 왜냐하면 어떤 금융 트랜잭션도 데이터베이스에서 사라지게 하고 싶지 않기 때문이다.
이런 이유로 QLDB가 클라우드에서 훌륭한 원장 데이터베이스이다. - 일반 원장 블록체인 프레임워크보다 2-3배 더 나은 성능을 얻을 수 있다.
- 또한 SQL을 사용하여 데이터를 관리할 수도 있다.
- Amazon 관리형 블록체인이라는 다른 데이터베이스 기술도 있다.
- QLDB와 관리형 블록체인의 차이점은, QLDB에는 탈중앙화 개념이 없다.
- 즉, Amazon 소유의 중앙 데이터베이스에서만 저널을 작성할 수 있다. 많은 금융 규제 규칙들을 따르는 것
- 즉, QLDB와 관리형 블록체인의 차이점은, QLDB에는 중앙 권한 구성 요소가 있다는 것
- 하지만 관리형 블록체인에는 탈중앙화 구성 요소도 있다.
Timestream
- 시계열 데이터베이스다.
- 완전 관리형이며 빠르고 확장성 있는 서버리스 서비스다.
- 시계열은 시간 정보를 포함하는 포인트의 모음을 말한다.
- Timestream를 사용하면 데이터베이스의 용량을 자동으로 확장, 축소할 수 있고 매일 수조 건의 이벤트를 저장 및 분석할 수 있다.
- 시계열 데이터가 있을 때는 관계형 데이터베이스보다 시계열 데이터베이스를 사용하는 것이 훨씬 빠르고 저렴하다.
- 쿼리를 예약하고 다중 척도 레코드도 얻을 수 있다. SQL과도 완벽히 호환
- 최신 데이터는 메모리에 저장되고 과거 데이터는 비용 효율적인 스토리지 계층에 저장된다.
- 또한 시계열 분석 기능이 있어 거의 실시간으로 데이터를 분석하고 패턴을 찾을 수 있다.
- AWS의 다른 데이터베이스들처럼 전송 중 데이터와 저장 데이터의 암호화를 지원한다.
- Timestream의 사용 사례로는 IoT 애플리케이션이 있다.
- 운영 애플리케이션, 실시간 분석 등 시계열 데이터베이스와 관련된 모든 곳에서 사용할 수 있다.
- Timestream은 AWS IoT 즉, 사물 인터넷에서 데이터를 받을 수 있고 Kinesis Data Streams의 데이터도 Lambda를 통해 받을 수 있다. Prometheus, telegraf와 통합할 수 있다.
- Apache Flink용 Kinesis Data Analytics는 Kineis Data Stream과 Amazon MSK의 데이터를 Amazon Timestream에 전달한다.
- Timestream과 연결 가능한 것으로는 대시보드를 빌드할 수 있는 Amazon Quicksight 기계 학습을 할 수 있는 Amazon SageMaker Grafana가 있다.
- 데이터베이스에 표준 JDBC가 연결돼 있으므로 JDBC, SQL과 호환 가능한 애플리케이션은 Amazon Timestream을 활용할 수 있다.
반응형
댓글