AWS Core Services - AWS Database

2023. 12. 14. 16:03클라우드/AWS

12월 AWS Enablement (12/14)

 

  1. AWS Cloud Introduction
  2. AWS Computing
  3. AWS Networking & Security
  4. AWS Database
  5. AWS Storage

 


 

 

AWS Database

Database 관련 서비스 소개 및 RDS 구성 실습

 

데이터 트렌드에 따른 혁신 가속화

데이터의
폭발적 증가
마이크로 서비스로 인한
데이터와 분석 요구사항 변화
빠른
변화 속도
5년마다 10배 증가하는 데이터 용도에 맞게 구축된
데이터베이스를 사용하여
성능 최적화 및 비용 절감
DevOps 도입으로
혁신 가속화

 

 

최신 애플리케이션 요구사항

더 높은 성능, 확장성 및 가용성 필요

사용자 100만+
Data 볼륨 TB~PB
지역성 Global
성능 Microsecond latency
요청 속도 초당 수백만
액세스 Mobile, IoT, devices
크기 조정 사실상 무제한
경제성 종량 과금
개발자 액세스 Instance API 액세스
개발 분리된 앱과 스토리지

 

 

Monolithic Application 대신
목적에 맞는 도구로 Microservice를 구축하세요.

 

 

 

기존 상용 Database 서비스

기존 상용 Database에 Lock-in되어 유연한 Database 사용이 어려움

비싼
가격
관리의
어려움
징벌적
라이센스
잦은 감사
(Audit)

 

자체 관리 Database 및 분석 서비스의 어려움

  1. Complex
  2. Tiime Consuming
  3. Expensive
  • 하드웨어 및 소프트웨어 설치, 구성 패치, 백업
  • 성능 및 고가용성 문제
  • 컴퓨터 및 스토리지를 위한 용량 계획, 클러스터 확장
  • 보안 및 규정 준수

 

 

AWS의 완전 관리형 Database 서비스

획일적인 관리 업무의 부담 감소

  자체 관리형   완전 관리형
You 스키마 설계 You 스키마 설계
쿼리 생성 쿼리 생성
쿼리 최적화 쿼리 최적화
자동 fall-over AWS 자동 fall-over
Backup & 복구 Backup & 복구
격리 & 보안 격리 & 보안
업계 규정 준수 업계 규정 준수
즉각적인 Scaling 즉각적인 Scaling
자동 패치 자동 패치
고급 모니터링 고급 모니터링
정기정인 유지관리 정기정인 유지관리
모범사례 제공 모범사례 제공

 

 

AWS 데이터베이스 서비스

Relational 참조 무결성
ACID 트랜잭션
Schema-on-write
Aurora, RDS
Key-value 높은 처리량
짧은 응답시간
끝없는 규모
DynamoDB
Document MongoDB 호환
JSON 데이터를 쉽게 저장
쿼리 및 인덱싱
DocumentDB
In-memory 1밀리 초 미만의 응답시간 ElastiCache
Graph 상호연결성이 높은 데이터 세트를 효율적으로 탐색 Neptune
Time-series 시간 순으로 데이터를 수집, 저장 및  처리 Timestream
Ledger 투명하고, 변경 불가능하며, 암호화 방식으로 검증 가능한 트랜잭션 로그 QLDB
Wide Column 확장 가능하고 가용성이 높으며 관리되는 Apache Cassandra 호환 서비스 Keyspaces Managed Cassandra

 

 

Amazon RDS

가장 선호하는 6가지 DB엔진을 갖춘 관계형 Database

관리 용이성 가용성 및 내구성 뛰어난 확장성 빠른 성능과 보안
하드웨어 준비,
소프트웨어 설치 등의
관리 작업 불필요
다중 AZ를 통한
동기식 복제, 스냅샷,
자동화된 백업, 장애 조치
몇 번의 클릭만으로도
다운타임 없이
컴퓨팅 및 스토리지 확장
SSD 스토리지 및
성능 향상된 I/O보장

저장 및 전송 중 암호화 지원

 

 

Amazon RDS - Managed DB 이점

고객
관리형
앱 최적화 앱 최적화 앱 최적화 AWS
관리형
데이터베이스 백업 데이터베이스 백업 데이터베이스 백업
고가용성 고가용성 고가용성
규모 조정 규모 조정 규모 조정
DB 소프트웨어 패치 DB 소프트웨어 패치 DB 소프트웨어 패치
DB 소프트웨어 설치 DB 소프트웨어 설치 DB 소프트웨어 설치
OS 패치 OS 패치 OS 패치
OS 설치 OS 설치 OS 설치
서버 유지 관리 서버 유지 관리 서버 유지 관리
랙 앤 스택 랙 앤 스택 랙 앤 스택
전력, HVAC, 넷 전력, HVAC, 넷 전력, HVAC, 넷
DB on On-Premise DB on EC2 Amazon RDS

 

 

 

Amazon RDS - 운영 편의성 및 뛰어난 확장성

  • 상면, 서버, 네트워크, OS 설치, DB 설치 등의 모든 작업 없이 AWS Console에서 몇 분 만에 필요한 Database 구성
  • 다양한 CPU/메모리 옵션을 가진 DB 인스턴스 제공
  • 워크로드에 맞게 DB 인스턴스 사이즈 변경 가능
  • 범용 SSD (gp2/gp3)
    대부분의 워크로드
  • 프로비저닝된 IOPS SSD
    일관된 IOPS 성능
  • Storage Autoscaling
    사용량에 따라 자동 증가

 

Amazon RDS - 고가용성 및 내구성

  • Multi-AZ 배포
    다른 AZ에 Standby DB 인스턴스를 운영하여 단일 위치 장애로부터 Application 보호
    • 동기식 복제
    • 자동 Failover (1-2분 이내)
    • Primary 안정성을 위해 Standby Replica에 백업, 패치, 시스템 업그레이드 먼저 수행
    • 한 번의 클릭으로 생성 (운영 중 수행 또한 가능)
  • 읽기 전용 복제본
    읽기 트래픽을 분담하여 Primary DB 인스턴스의 워크로드 부하 완화
    • 비동기식 복제
    • 다른 AZ, 다른 Region에 생성 가능
    • 장애 발생시 빠른 복구를 위해 읽기 전용 복제본을 Primary로 승격
    • MariaDB, SQL Server, MySQL, PostgreSQL 및 Oracle 지원

 

Amazon RDS - 다중 배포 및 복제본

다중 AZ 배포 읽기 전용 복제본
  • 동기식 복제 - 높은 내구성
  • Primary 인스턴스만 활성화 상태
  • Stand-by 인스턴스를 통해 백업 가능
  • 하나의 Region 안에 두 개의 가용 영역
  • 데이터베이스 엔진 버전 업그레이드는 primary 인스턴스에서 일어남
  • 장애 감지시 자동 장애 복구 (failover)
  • 비동기식 복제 - 높은 가용성
  • 모든 복제본들이 활성화 상태이며 읽기 확장에 사용 가능
  • 기본 백업 설정 되어 있지 않음
  • 하나의 가용 영역, 교차 가용 영역, 또는 교차 region 안에 위치 가능
  • 원본과 독립적으로 데이터베이스 엔진 업그레이드
  • 독립 실행형 Standalone DB로 수동으로 승격 또는 기본 인스턴스(Aurora)로 승격 가능

 

 

Amazon RDS - 데이터베이스 백업

  • DB 인스턴스 특정 시점 복구(PITR)를 위한 자동 백업
    • 매일 backup window 시간에 RDS가 인스턴스의 스토리지 볼륨 스냅샷을 생성
    • 5분 마다 데이터베이스의 트랜잭션 로그를 백업
    • 마지막 Snapshot이후 변경점만 저장하는 증분식 백업
    • KMS를 사용한 Snapshot 암호화 지원

 

 

Amazon RDS - AWS 서비스와 통합

Built-In된 모니터링, 알림, 보안 제공

Monitoring Alarm Security
  • CloutWatch를 사용한 DB 인스턴스 Metric 모니터링
  • DB Logs를 CloudWatch로 전송하여 통합 Log View 제공
  • Amazon SNS와의 연계를 통해 RDS에서 이벤트 발생시 경보 수신 가능
  • 6가지 소스 유형
  • 17가지의 이벤트 항목
  • VPC를 사용한 네트워크 격리
  • IAM 기반 권한 제어
  • KMS/TDE를 사용한 Data 암호화
  • 전송 중 데이터 SSL 보호

 

 

Amazon RDS - Perfomance Insights

성능 문제를 분석하여 해결하기 위한 Database 성능 정보 표시

 

로드를 유발하는 SQL문과 이유 파악

  • CPU, IO, Locks

 

부하 필터링 기준

  • 대기 시간, SQL 문, Host 또는 User

 

적용 가능한 Time frame 단위

  • 시간, 일, 주 혹은 그 이상

 

모든 RDS DB 엔진에 사용 가능

 

 

Amazon Aurora

클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 Database

완전 관리형 성능 & 확장성 가용성 & 내구성 보안
RDS에서 관리 :
서버 프로비저닝,
소프트웨어  패치, 설정,
백업 등 자동 관리
표준 MySQL의 5배 처리량
표준 PostgreSQL의 3배
최대 15개의 읽기 전용
복제본 확장
내결함성,
자가 복구 스토리지,
3개의 AZ에 걸쳐 6개의
데이터 복사본을
S3에 지속적 백업
네트워크 격리,
저장/전송 시 암호화

 

 

Amazon Aurora - Architecture

  • Database용으로 설계된 Log기반의 분산형 스토리지
  • Storage Volume은 3개의 AZ에 걸쳐 수백 개 이상의 Storage Node로 스트라이핑
  • 총 6개의 복제본(3개의 AZ에 AZ당 2개)을 저장하여 AZ+1 장애 상황에도 데이터베이스 복구 가능
  • 스토리지 공유 구조로 복제 작업 부하 감소

 

 

Amazon Aurora - 운영 편의성

최대 128TB의 스토리지 - 10GB 단위로 자동 증분

  • 최대 128TB까지 자동 스토리지 확장 - 성능에 영향을 미치지 않음
  • Amazon S3로의 지속적인 증분 백업
  • 성능에 영향을 미치지 않고 사용자 스냅샷을 즉시 생성
  • 자동 재 스트라이핑, 미러 복구, 핫 스팟 관리, 암호화

 

 

Amazon Aurora - Features

Database Backtrack Zero Downtime 패치 Database 복제
  • Backup과 Restore 없이 Database의 시점 복구 기능 사용
  • 의도하지 않은 DML, DDL 작업 발생했을 시 유용
  • Backtrack을 여러 번 수행하여 적절한 시점을 찾음
  • 패치 중에도 Client Session 유지
  • 가동 중단 없이 Aurora Cluster 패치 적용
  • 데이터 복사 없이 복제본을 생성하여 다른 AWS 계정/조직과 Database 공유
  • 데이터가 변경되는 시점에만 데이터 복사 수행

 

 

Amazon Aurora - Global Database

빠른 재해 복구 및 향상된 데이터 지역성

  • 빠른 재해 복구를 위해 읽기 전용 복제본을 Primary로 승격
  • 데이터를 고객 Application과 가장 가까운 지역에 위치
  • 간편한 마이그레이션을 위해 Primary로 승격

 

 

Amazon Aurora Serverless

다양한 워크로드를 위한 On-Demand, Auto-Scaling 데이터베이스

  • 필요할 때만 사용하고 사용하지 않을 때는 Shutdown
  • Scale up/down 자동화
  • 어플리케이션에 영향 주지 않음
  • 사용한 데이터베이스 용량만큼 초당 요금 지불
  • 자주 사용되지 않거나, 예측할 수 없거나, 주기적인 워크로드에 적합

 

 

Amazon Aurora Limitless Database (PREVIEW)

Managed Horizonal Scale-out Beyond The Limits Of a Single Instance

  • 초당 수백만개의 쓰기 트랜잭션 지원
  • 페타바이트 규모의 데이터관리
  • 데이터와 쿼리를 자동으로 배포하는 서버리스 엔드포인트
  • 사용자 지정 애플리케이션 로직을 만들거나 여러 데이터베이스를 관리할 필요 없음

 

 

Amazon DynamoDB

어떤 규모에서도 빠르고 유연한 NoSQL 데이터베이스 서비스

 

어떤 규모에서든 높은 성능 제공

  • 일관된 10ms 미만의 latency
  • 사실상 무제한의 처리량으로 애플리케이션 구축

 

서버리스 아키텍쳐

  • 하드웨어 프로비저닝
  • 소프트웨어 패치 또는 업그레이드 불필요
  • 자동 Scale Up/Down
  • 지속적인 데이터 백업

 

엔터프라이즈 수준 보안

  • 기본적으로 모든 데이터를 암호화하고 AWS IAM과 완벽하게 통합되어 강력한 보안을 제공

 

글로벌 복제

  • 여러 AWS 리전에 걸쳐 테이블을 쉽게 복제하여 로컬 데이터에 빠르게 액세스할 수 있는 글로벌 애플리케이션을 구축

 

Amazon DynamoDB

높은 가용성 및 내구성

  • 높은 내구성을 위한 설계
  • 99.99% 가용성을 제공할 수 있도록 설계
  • 쓰기
    • 모든 Data가 SSD에 저장
    • 3개의 AZ에 자동 복제
  • 읽기
    • 강력한 일관성
    • 최종적 일관성
    • Latency Trade-off 없음

 

 

Amazon DynamoDB - Global Table

최초의 완전 관리형 Multi-Master, Multi-Region

  • 전 세계에 분산된 고성능 애플리케이션 구축
  • 로컬에서 사용 가능한 테이블에 low-latency 읽기 및 쓰기
  • Multi-Region Database를 사용하여 재해로부터 보호
  • 간편한 설정, 애플리케이션 수정이 필요 없음

 

 

Amazon DynamoDB Accelerator(DAX)

High Performance

  • DynamoDB를 위한 가용성이 뛰어난 완전관리형 In-memory Cache
  • µs의 높은 성능 제공
  • 초당 수백만 명의 사용자까지 확장 가능
  • 기존 DynamoDB API와 호환

 

 

Amazon DynamoDB

높은 가용성 및 내구성

 

3-way REplication : 데이터는 항상 3개의 가용 영역에 복제됨

 

 

Amazon DynamoDB vs RDS

Amazon DynamoDB Amazon RDS
  • 가장 간단한 DB를 원할 경우
  • Application이 DB 무결성을 관리하기를 원할 경우
  • Join, Transaction, 잦은 테이블 스캔이 필요할 경우
  • DB 엔진이 DB 무결성을 관리하기를 원할 경우
  • SQL 스킬이 충분할 경우

 

 

Amazon ElastiCache

관리형 Redis, Memcached와 호환되는 In-memory Caching Service

µs is the ne ms
제한 없는 확장 일관되게 높은 성능 완전관리형
Replica를 사용한 읽기 확장
Sharding을 통한 쓰기 및 메모리 확장
중단없이 확장 가능
1ms 미만의 응답 시간을 제공하는
In-memory Data Store 및 Cache
AWS 관리형 하드웨어 및 소프트웨어 설정, Configuration, 모니터링

 

 

AWS 데이터베이스Migration

  • Self Service
  • AWS ProServe 및 Partner
  • Database Freedom 프로그램

 

 

AWS DMS - Database Migration Service

관리형 데이터 마이그레이션 서비스

  • 동종 및 이기종 데이터베이스 Migration 지원
    • Step 1 - AWS SCT를 사용한 Schema 변경
    • Step 2 - AWS DMS를 사용한 Migration
  • 소스 데이터베이스의 변동 사항 지속 복제 (CDC)
  • 여러 개의 소스 데이터베이스를 하나의 타겟 데이터베이스로 통합

 

 

AWS SCT - Schema Conversion Tool

간편한 Data Migration을 위한 Schema 변환

  • AWS DMS와 함께 사용하여 데이터베이스 Migration
  • 기존 데이터베이스 Schema 및 코드를 이기종 데이터베이스의 Schema 및 코드로 변환
  • 관계형 OLTP Schema 변환 지원
  • 데이터 웨어하우스(Amazon RedShift) 변환 지원
    • 데이터 추출 에이전트 : 데이터 웨어하우스에서 데이터를 추출하여 Amazon RedShift로의 Migration 준비
  • NoSQL 데이터베이서 변환 지원
    • Apache Cassandra → Amazon DynamoDB
  • Application Code의 SQL 변환
    • C++, C#, Java 등 애플리케이션 코드 내 SQL을 변환

 

 

AWS 데이터베이스 서비스 - Warm Up

목적에 맞는 Database, 목적에 맞는 Tool

 

Lift & Shift

ERP, CRM, 재무, 예약 시스템

Enterprise/ISV Application

 

익숙한 DB 엔진 사용, 더 나은 성능과 가용성

→ DB 관리 부담 감소

→ 성능, 가용성, 확장성 및 보안 향상

 

Amazon
DynamoDB
세션 저장
동시에 대량의 데이터 처리
Amazon
DocumentDB
콘텐츠 관리,
카탈로그,
Personalize

MongoDB
Amazon
ElastiCache
실시간 분석, 캐싱,
세션 저장, 게임 순위표

Redis
Memcached
Amazon
Keyspaces
무제한 확장성,
대용량 데이터 저장

Apache Cassandra
Amazon
Neptune
이상 탐지, 소셜 네트워크,
추천 엔진
Amazon
Timestream
IoT Application,
이벤트 추적
Amazon
QLDB
기록 시스템, 금융, 공급망