[AWS] 데이터베이스
데이터베이스
목차
RDS
:cloud: Relational Database Service
클라우드에서 관계형 데이터베이스를 쉽게 설치, 운영 및 확장할 수 있는 관리형 서비스
- 데이터베이스 관리 작업 처리
- 비용 효율적
- 크기 조정 가능 용량
- 고객은 앱과 비즈니스에 더 집중
:heavy_check_mark: POINT
- 기존 DB 기능에 액세스
- 유연성
- 복제 쉬움 :point_right: 가용성 향상
- 사전에 대한 투자 :x:
- 사용한 만큼 지불
지원 엔진
- Amazon Aurora, MySQL, MariaDB, Oracle, SQL Server, PostgresSQL
자동 수행 관리 작업
- 관계형 데이터베이스 설정과 관련된 작업 관리
- 고객이 요구하는 인프라 용량 프로비저닝
- 데이터베이스 소프트웨어 설치
- 백업 수행
- 소프트웨어 패치 적용
- (다중 AZ 배포 시) 자동 장애 조치 :point_right: 가용 영역 전체에 동기식 데이터 복제
고객이 수행
- 애플리케이션 별 데이터베이스 설정
- 사용에 적합한 관계형 스키마 구축
- 앱 워크플로우에 맞는 데이터베이스 최적화
RDS vs EC2
- RDS
- 데이터베이스 관리 부담 감소
- EC2
- 클라우드 자체 관계형 데이터베이스 관리
데이터베이스 인스턴스
고객이 지정한 컴퓨팅 및 스토리지 리소스를 제공하는 클라우드의 데이터베이스 환경
- 콘솔, API, 명령줄 인터페이스를 통해 DB 인스턴스 생성 및 삭제
- DB 인스턴스의 백업 보존 정책, 기본 백업 기간, 예약된 유지 관리 기간 변경
:heavy_check_mark: POINT
- 최대 40개의 RDS DB 인스턴스 보유
- 최대 10개의 라이선스 포함 모델
- RDS for SQL Server: 단일 DB 인스턴스에서 데이터베이스가 최대 100개로 제한
- RDS DB 인스턴스로 데이터 가져오기 가능
- 마이그레이션
유지 관리 기간
- DB 인스턴스 수정,
- 데이터베이스 엔진 버전 업그레이드
- 소프트웨어 패치 적용 시기 조정
- 30분 기본값 지정
- 다중 AZ 배포 실행 시 유지 관리 이벤트 영향 감소
DB 인스턴스를 오프라인으로 전환 이벤트
- 컴퓨팅 조정 작업
- 데이터베이스 엔진 업그레이드 및 필수 소프트웨어 패치 작업
- 보안 및 내구성 관련 패치에 대해 자동으로 예약
프리티어
- MySQL, MariaDB, PostgresSQL, Oracle, SQL Server Express Edition
- 단일 AZ 마이크로 DB 인스턴스 12개월 무료 사용
다중 AZ 배포
- 다중 AZ 배포로 실행되도록 DB 인스턴스를 생성 또는 수정
- RDS가 다른 가용 영역에 동기식 “예비” 복제본을 자동으로 프로비저닝하고 유지
- DB 인스턴스에 대한 업데이트는 가용 영역 전체에서 예비 복제본에 동기식으로 복제
- 양쪽의 동기화 유지, DB 인스턴스 장애로부터 최신 데이터베이스 업데이트 보호
DynamoDB
어떤 규모에서든 빠르고 유연한 NoSQL 데이터베이스 서비스
- 분산 데이터베이스 운영
- AWS 확장에 따른 관리 부담 :x:
- 하드웨어 프로비저닝, 설정 및 구성, 처리 능력 계획, 복제, 소프트웨어 패치, 클러스터 확장에 대한 걱정 :x:
- 비관계형 데이터베이스를 빠르게 배포
- 워크로드 수요에 맞춰 자동으로 처리 능력 확장
- 테이블 크기 증가 :point_right: 데이터를 파티셔닝 및 재파티셔닝
- AWS 리전 세 개 시설에 데이터를 동기적으로 복제하여 높은 가용성과 데이터 안정성 제공
일관성 모델
데이터를 읽을 때, 사용자는 읽기를 최종적 일관된 읽기나 강력한 일관된 읽기로 지정
- 최종적 일관된 읽기(기본값)
- 읽기 처리량 최대화
- :exclamation: 최근 완료한 쓰기 결과 반영하지 못할 수 있음
- 모든 데이터 사본은 일반적으로 1초 내에 일관성을 가짐
- 짧은 시간 이후 읽기 반복하여 갱신한 데이터 반환
- 강력한 일관된 읽기
- 앱에서 요구하는 경우 해당 기능 요청 가능한 유연성과 제어 제공
- 읽기 전 성공적인 응답을 수신한 모든 쓰기를 반영한 결과 반환
- ACID 트랜잭션
- 개발자에게 단일 AWS 계정 및 지역에서 ACID(원자성, 일관성, 격리성, 지속성) 제공
- 단일 논리 비즈니스 작업의 일부로 여러 항목에 대한 통합된 삽입, 삭제, 업데이트가 필요한 앱 구축의 경우, 트랜잭션 사용
:heavy_check_mark: POINT
- GET/PUT 작업 지원
- 기본키 명시 (테이블 항목에 필요한 유일한 속성)
- 단일 속성 파티션 키(UserID)
- 복합 파티션 정렬 키
- 계층 구조
- 글로벌 보조 인덱스, 로컬 보조 인덱스 사용 :point_right: 유연한 쿼리 기능
ElastiCache
Redis, Memcached와 호환되는 완전관리형 인 메모리 데이터 스토어
- 널리 사용되는 오픈 소스 호환 인 메모리 데이터 스토어를 클라우드에서 원활하게 설정, 실행 및 크기 조정
- 처리량이 많고 지연시간이 짧은 이 메모리 데이터 스토어에서 데이터 검색하여 데이터 집약적 앱 구축
- 기존 데이터베이스 성능 강화
- 캐싱, 세션스토어, 게이밍, 지리공간 서비스, 실시간 분석 및 대기열 등 실시간 사용 사례
RedShift
가장 널리 사용되고 가장 빠른 속도의 클라우드 데이터 웨어 하우스
- 데이터 레이크 및 AWS 서비스와 완벽한 통합
- 데이터 웨어하우스, 운영 데이터베이스와 데이터 레이크에 있는 페타바이트 규모의 정형 데이터 및 반정형 데이터를 SQL을 통해 쿼리
- Apache Parquet와 같은 개방형 포맷 이용
- 쿼리 결과를 S3 데이터 레이크에 다시 저장할 수 있도록 지원
- 온프레미스 데이터 웨어하우스를 Redshift로 마이그레이션 가능
:cloud: 데이터 레이크
대규모의 다양한 원시 데이터 세트를 기본 형식으로 저장하는 데이터 리포지토리 유형
정제되지 않은 데이터
Database Migration Service
:cloud: DMS
최소한의 가동 중단으로 데이터베이스를 AWS로 마이그레이션
- Oracle PL/SQL 및 SQL Server T-SQL :arrow_right: Amazon Aurora, MySQL, PostgreSQL 저장 프로시저로 변환
- DMS 내 무료 AWS Schema Conversion Tool(SCT) 포함
- STC: 동종 마이그레이션을 위한 데이터베이스 스키마를 복사하여 이기종 마이그레이션으로 변환
- 대규모 데이터 웨어하우스 워크로드 마이그레이션
- 자동 변환
- 불가능한 경우 개발자의 수동 입력이 필요한 위치를 문서화
- DMS 내 무료 AWS Schema Conversion Tool(SCT) 포함
- 데이터베이스 마이그레이션, 데이터 마트 채우기, 시스템 동기화
- 지속적 복제 지원
- 상대적으로 적은 규모의 워크로드 이전
:heavy_check_mark: POINT
- 사용하기 쉬움
- 몇 분만에 복제 작업 설정
- 복제 작업, 네트워크 또는 호스트 장애를 모니터하여 복구 불가능한 장애 발생 시 호스트 교체를 자동으로 준비
- 온디맨드 요금 이점
- 복제 인프라 규모 유연성
- Schema Conversion Tool과 밀접하게 통합
- 데이터베이스 마이그레이션 프로젝트 단순화