사진찍는 개발자📸👩‍💻

[SAA] Databases 본문

develop/AWS

[SAA] Databases

hsleeee 2024. 6. 20. 16:24
반응형
SMALL

1. Choosing the Right Database

  • AWS에는 선택할 수 있는 다양한 관리형 데이터베이스가 존재
  • 아키텍처 요구 사항에 따라 선택할 수 있음
  • 읽기 중심, 쓰기 중심, 균형이 맞는 워크로드인지, 처리량, 처리량이 하루에 얼마나 달라지는지, 확장 가능성, 하루에 얼마나 달라지는지
  • 저장해야 할 데이터의 양, 얼마동안 보관해야 하는지, 데이터의 증가, 평균 객체의 크기, 데이터 액세스 빈도와 액세스 방법
  • 데이터 내구성, 데이터 공급원
  • 지연 시간 요구 사항, 동시 사용자
  • 데이터 모델, 데이터 쿼리 방식, 조인 필요 여부, 정형/반정형 여부
  • 강력한 스키마 필요 여부, 유연성 필요 여부, 데이터베이스 관련 보고 필요 여부, 검색 기능 필요 여부, 관계형/NoSQL 중 어떤 것이 필요한지
  • 라이센스 비용, Aurora와 같은 클라우드 네이티브 DB로 전환할 계획이 있는지

2. Database Types

  • RDBMS(=SQL/OLTP): RDS, Aurora - Join에 유용
    • RDS
      • 관리형 PostgreSQL / MySQL / Oracle / SQL Server / MariaDB / 사용자 지정 RDS
      • RDS 인스턴스 크기 및 EBS 볼륨 유형 및 크기를 프로비저닝 해야 함
      • 스토리지 오토 스케일링 가능
      • 읽기 용량 확장을 위해 읽기 전용 복제본 및 다중 AZ 지원
      • IAM - RDS 데이터베이스 보안 / 보안 그룹 - 네트워크 보안 / KMS - 저장 데이터 암호화 / SSL & TLS - 전송 데이터 암호화
      • 자동 백업 옵션(최대 35일), 지정 시간 복구 가능
      • 장기 보존 백업을 위한 수동 DB 스냅샷 기능
      • 유지 관리 기능 예약 가능(다운타임 발생 - 프로비저닝 하거나 AWS가 데이터페이스 엔진을 주기적으로 업데이트 하고 기본 EC2 인스턴스에 보안 패치를 실행할 때 발생)
      • RDS Proxy를 강제하여 RDS에 IAM 인증 추가, Secret Manager와 통합하여 DB 자격 증명
      • Oracle 및 SQL Server의 기본 인스턴스 액세스 및 사용자 지정을 위한 RDS 사용자 지정 옵션
      • ex) 관계형 데이터 세트 저장(RDBMS / OLTP), SQL Query 및 Transaction 수행
    • Aurora
      • PostgreSQL / MySQL 과 호환되는 API, 컴퓨팅과 스토리지가 분리되어 있음
      • 스토리지: 데이터는 3개의 가용 영역에 걸쳐 6개의 복제본에 저장됨(고가용성, 자가 복구 처리, 오토 스케일링 기능)
      • 컴퓨팅: 클러스터화된 실제 데이터베이스 인스턴스를 여러 가용 영역에 걸쳐 저장, 읽기 전용 복제본의 오토 스케일링
      • 클러스터: 읽기와 쓰기를 위한 DB인스턴스에 대한 사용자 지정 엔드 포인트
      • RDS와 동일한 보안 / 모니터링 / 유지관리 기능 포함
      • Aurora의 백업 및 복구 옵션
        • Aurora Serverless: 예측할 수 없는 / 간헐적인 워크로드에 적합, 용량 계획 필요 X
        • Aurora Multi-Server: 쓰기 고가용성을 위해 쓰기 장애조치가 지속해서 필요할 때 사용, DB 인스턴스 여러개가 ㅇ스토리지에 쓰기를 할 수 있도록 설정 가능
        • Aurora Global: 데이터가 복제된 리전마다 최대 16개의 데이터베이스 읽기 전용 인스턴스 제공, 리전간 스토리지 복제에 걸리는 시간 < 1 min
        • Aurora Machine Learning: Aurora에서 SageeMaker 및 Comprehend를 사용하여 머신 러닝 수행
        • Aurora Database Cloning: 스냅샷 복원보다 기존 클러스터에서 새로운 클러스터 생성이 더 빠름
      • ex) RDS와 동일하지만 더 적은 유지보수, 더 큰 유연성, 더 높은 성능, 더 많은 기능
  • NoSQL Database - No Joins, No SQL: DynamoDB(JSON), ElastiCache(키/값 쌍), Neptune(그래프), DocumentDB(MongoDB용), Keyspaces(Apache Cassandra용)
    • DynamoDB
      • AWS의 독점 기술, 관리형 서버리스 NoSQL 데이터베이스, 밀리초 수준의 지연시간, SQL 쿼리 사용 불가
      • 용량 모드
        • 선택형 오토 스케일리이 탑재된 프로비저닝된 용량 모드 - 점신적으로 늘어나거나 점진적으로 줄어드는 이중(double) 워크로드가 있을 경우에 사용
        • 온디멘드 용량 모드 - 용량 프로비저닝 필요 X, 오토 스케일링이 실행되므로 워크로드를 예측하기 어려울 때나 데이터베이스의 수요가 급증할 때 유용
      • ElastiCache 대신 DynamoDB에 키-값을 저장할 수 있음(ex. 웹사이트 세션 데이터 저장, TTL 기능 사용)
      • 고가용성, 기본적으로 다중 가용 영역에 걸쳐있기 때문, 읽기와 쓰기가 완전히 분리되어 있고 트랜잭션 기능 제공
      • 읽기 캐시용 DAX 클러스터, 마이크로초 읽기 지연 시간
      • 보안, 인증, 권한 부여는 IAM을 통해 처리
      • 이벤트 처리: AWS Lambda, Kinesis Data Stream과 통합하기 위한 DynamoDB Streams
      • Global Table 기능: 어느 리전에서든 읽고 쓸 수 있음, 다중 활성(active - active)
      • 백업 옵션
        • PITR을 사용한 최대 35일까지의 자동 백업(새 테이블로 백업)
        • 온디멘드 백업
      • PITR 창 내에서 RCU(읽기 용량 단위)를 사용하지 않고 S3로 export, WCU(쓰기 용량 단위)를 사용하지 않고 S3에서 import
      • 스키마를 빠르개 전개할 때 유용
      • ex) 400kb 미만의 문서를 다루는 작은 서버리스 애플리케이션 개발, 서버리스 캐시 분산
    • ElastiCache
      • 관리형 Redis / Memcached(RDS와 비슷한 기능 제공, 캐싱 작업에 활용)
      • 인메모리 데이터 스토어, 데이터를 읽을 때 1ms 미만의 지연시간 제공
      • 캐시를 위한 EC2 인스턴스 유형을 프로비저닝 해야함(ex. cache.mg6.large)
      • Redis용 클러스터 생성, 다중 AZ, 샤딩을 위한 읽기 전용 복제본 사용 가능
      • IAM, 보안그룹, KMS, Redis 인증을 통한 보안
      • 백업, 스냅샨, 지정 시간 복구 기능
      • 관리형 및 예약된 유지 관리 가능
      • 애플리케이션 코드가 ElastiCache를 활용하도록 코드를 수정해야 함
      • ex) key-value store, 높은 읽기, 적은 쓰기, DB 쿼리 결과를 캐싱, 웹 사이트의 세션 데이터 저장, SQL 사용 불가
    • DocumentDB
      • Aurora는 PostgreSQL / MySQL의 "AWS 구현"인 것처럼 DocumentDB는 NoSQL의 데이터베이스인 MongoDB(NoSQL)에 대한 "AWS 구현"
      • Mongodb는 JSON 데이터를 저장, 쿼리 및 인덱싱 하는데 사용
      • Aurora와 유사한 "배포 개념"을 가지고 있음
      • 완전히 관리되며, 3개의 가용영역 간 복제로 높은 가용성을 제공
      • DocumentDB 스토리지는 자동으로 10GB 단위로 증가하여 최대 64TB까지 확장
      • 초당 수백만건의 요청이 있는 워크로드로 확장될 수 있도록 설계됨
    • Neptune
      • 완전 관리형 그래프 데이터베이스
      • 소셜 네트워크는 우리가 아는 가장 일반적인 그래프 데이터 세트이다.
        • 사용자는 친구가 있음
        • 게시글에는 댓글이 있음
        • 댓글에는 좋아요가 있음
        • 사용자는 게시글을 공유하고 좋아요를 누름
      • 3개의 가용 영역에서 최댇 15개의 읽기 복제본을 사용하여 높은 가용성을 제공함
      • 복잡하고 어려운 쿼리에 최적화도딘, 높은 연결성을 가진 데이터 세트를 사용하여 애플리케이션을 빌드하고 실행할 수 있음
      • 수십억 개의 관계를 저장하고 밀리초 지연 시간으로 그래프를 쿼리할 수 있음
      • 여러 가용 영역에 복제하여 높은 가용성을 제공
      • ex)지식 그래프(위키피디아), 사기 탐지, 추천 엔진, 소셜 네트워킹에 적합
    • Keyspaces (for Apache Cassandra)
      • Apache Cassandra 호환 데이터베이스
      • 서버리스 서비스, 확장성과 가용성이 높으며 AWS 완전 관리형
      • 애플리케이션의 트래픽에 기반하여 테이블을 자동으로 확장/축소
      • 테이블은 여러 가용 영역에 걸쳐 3번 복제됨
      • Cassandra Qurey Language 사용(CQL)
      • 어떤 규모에서도지연 시간이 10 밀리초 미만으로 짧고 초당 수천 건의 요청을 처리함
      • 용량: 온디맨듣 모드 또는 오토 스케일링이 있는 프로비저닝 모드 (DynamoDB와 같음)
      • 암호화, 백업, 최대 35일까지의 시점 복구(PITR) 지원
      • ex) IoT 디바이스 정보, 시계열 데이터 등
  • 객체 스토어: S3 (대용량 객체용), Glacier(백업/아카이브용)
  • 데이터 웨어하우스(=SQL 분석/ BI): Redshift(OLAP), Athena, EMR
  • 검색: OpenSearch(JSON) - 자유로운 텍스트 입력 및 비정형 데이터 검색
  • 그래프: Amazon Neptune - 데이터 세트 간의 관계 표시
  • 원장: Amazon Quantum Ledger Database
    • QLDB(Quantum Ledger Database)
      • 원장(ledger)은 금융 트랜잭션(거래)을 기록하는 장부
      • 완전 관리형, 서버리스, 고가용성, 3개의 가용 영역에 걸쳐 데이터 복제
      • 시간에 따라 애플리케이션 데이터에 대한 변경 내역을 모두 검토하는 데 사용됨
      • 변경 내역은 수정 또는 제거할 수 없고, 암호화를 통해 검증할 수 있는 불변(Immutable) 시스템
      • 일반적인 원장 블록체인 프레임워크보다 2~3배 더 좋은 성능을 가지며, SQL을 사용하여 데이터를 관리할 수 있음
      • Amazon Managed Blockchain과의 차이점: 탈중앙화 개념이 없으며, 금융 규정에 따라 운영
  • 시계열: Amazon Timestream
    • Timestream
      • 완전 관리형, 확장성이 있는 서버리스 방식의 시계열(timeseries) 데이터베이스
      • 용량을 조정하기 위해 자동으로 확장/축소
      • 하루에 수조 건의 이벤트를 저장하고 분석할 수 있음
      • 관계형 데이터베이스 대비 1,000배 빠르며 비용은 1/10
      • 예약된 쿼리, 다중 척도 레코드, SQL 호환성
      • 데이터 저장 계층: 최근 데이터는 메모리에 저장, 과거 데이터는 비용 효율적인 스토리지 계층에 저장
      • 내장된 시계열 분석 기능을 제공하여 데이터의 패턴을 거의 실시간으로 식별할 수 있음
      • 전송 중 데이터와 저장 데이터의 암호화 지원
      • ex) IoT 애플리케이션, 운영 애플리케이션, 실시간 분석 등
반응형
LIST

'develop > AWS' 카테고리의 다른 글

[SAA] Machine Learning  (0) 2024.06.22
[SAA] Data & Analytics  (0) 2024.06.21
[SAA] Serverless Architectures  (0) 2024.06.19
[SAA] Serverless  (0) 2024.06.18
[SAA] Container: ECS, Fargate, ECR, EKS  (0) 2024.06.17