본문 바로가기
클라우드 아키텍트 양성과정

AWS RDS - 데이터베이스 계층

by 종바깅 2021. 3. 28.

데이터베이스 계층

아키텍처 요구사항 : 고가용성, 확장이 용이하며 애플리케이션 서버와 분리된 데이터베이스가 필요

데이터베이스 계층 고려사항

  • 얼마나 많은 처리량이 필요한가?
  • 선택한 솔루션이 필요할 경우 나중에 확장이 가능한가?
  • 단순 데이터 구조, 대용량 데이터 객체, 또는 모두를 저장해야 하는가?
  • 어떤 수준의 데이터 내구성, 데이터 가용성 및 복구성이 필요한가?
  • 관련 규제 의무가 있는가?”

관계형 데이터베이스를 선택해야 할 경우

  • 엄격한 스키마규칙 및 데이터품질 적용이 필요
  • 데이터베이스가 과도한 읽기/쓰기 용량을 필요로 하지 않음
  • 최상의 성능을 필요로 하지 않는 관계형 데이터베이스의 경우 RDBMS가 자원 소비가 적은 최고 의 솔루션이 될 수 있음

비관계형 데이터베이스를 선택해야 할 경우

  • 데이터베이스를 수평적으로 확장해야 함
  • 데이터가 기존 스키마에 적합하지 않음
  • 읽기/쓰기 속도가 기존 SQL DB에서 경제적으로 지원할 수 있는 범위를 초과

*비관계형 데이터베이스

 

관계형 데이터베이스 vs 비관계형 데이터베이스

  관계형/SQL 비관계형/ NoSQL
데이터 스토리지 행 및 열 키-값, 문서 및 그래프
스키마 고정 동적
쿼리 SQL기반 쿼리 문서 수집에 집중
확장성 수직적 수평적

완전관리형 데이터베이스

 

  • 비관리형(Non-Managed)
    • 사용자가 직접 관리
    • 사용자가 데이터센터를 운영하는 경우
    • 장비 운영, OS 설치 및 운영, 데이터베이스 솔루션 설치 및 운영까지 모두 담당



  • 관리형(Managed)
    • 사용자와 AWS가 함께 관리
    • AWS EC2 서버에 데이터베이스 솔루션을 설치 하고 운영하는 경우
    • 장비 운영, OS 설치 및 운영은 AWS가 담당하고, 데이터베이스 솔루션의 설치 및 운영은 사용자가 담당

 

완전관리형(Fully-Managed)

  • AWS가 모두 관리
  • AWS에서 제공하는 RDS 솔루션을 이용하는 경우
  • 장비 운영, OS 설치 및 운영, 데이터베이스 솔루션 설치 및 운영까지 AWS에서 모두 담당

AWS 데이터베이스 옵션

  • 관계형 데이터베이스
    • Amazon RDS
    • Amazon Redshift
    • Amazone Aurora
  • 비관계형 데이터베이스
    • Amazon DynamoDB
    • Amazon Elastic cache
    • Amazon Neptune

Amazon RDS

  • 완전 관리형 관계형 데이터베이스 서비스
  • 몇 분이면 새 인스턴스를 프로비저닝
  • MySQL, MariaDB, PostgreSQL, Oracle – 최대 16TB

Amazon Aurora

MySQL 및 PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진

  • MySQL 처리량의 최대 5배
  • PostgreSQL의 처리량의 최대 3배
  • 3개의 가용 영역에 6가지 방법으로 데이터를 복제
  • 기존 애플리케이션을 최소한으로 변경
  • MySQL 및 PostgreSQL용 Aurora – 최대 64TB

Amazon DynamoDB

1. 완전 관리형 비관계형 데이터베이스 서비스 이벤트 중심 프로그래밍(서버리스 컴퓨팅) 가능 최상의 수평 확장 기능

2. DynamoDB 트랜잭션은 단일 AWS 계정 및 리전 내에 있는 하나 이상의 테이블에서 ACID를 제공

3. Global Table은 단일 AWS 계정이 소유하고 복제본 테이블로 한 개 이상의 DynamoDB 테이블의 모음

Amazon DynamoDB가 적합한 경우

  • 대용량의 단순 데이터를 보유
  • 신속하고 간편하게 확장해야 함
  • 복잡한 조인이 필요하지 않음

Amazon DynamoDB 일관성 옵션

  • 최종적 일관된 읽기(Eventually Consistent Read) - DynamoDB 테이블의 데이터를 읽을 때, 응답은 최근 완료된 쓰기 작업의 결과를 반영하지 않을 수 있다. 응답에는 변경 전 데이터가 일부 포함될 수 있음. 잠시 후 읽기 요청을 반복하면 응답이 최신 데이터를 반환함
  • 강력한 일관된 읽기(Strongly Consistent Read) - 강력한 일관된 읽기를 요청하면 DynamoDB는 성공한 모든 이전 쓰기 작업의 업데이트를 반영하여 가장 최신 데이터로 응답을 반환한다. 강력한 일관된 읽기는 네트워크 지연 또는 중단이 발생한 경우에 사용이 어려울 수 있음

Amazon RDS 보안 제어

  • DB 자체에 대한 액세스 – 누가 가시성을 보유하고 데이터베이스에 대한 작업을 실행할 수 있는가?
  • 저장 시 암호화 – 저장 시 암호화되는 데이터에는 DB 인스턴스에 대한 기본 스토리지, 자동 백업, 읽기 전용 복제본, 스냅샷이 포함 된다.
  • 전송 중 암호화 – 전송 중 암호화는 SSL을 사용하여 수행할 수 있다
  • 이벤트 알림 – Amazon RDS 인스턴스에서 발생할 수 있는 다양한 중요 이벤트에 대한 알림을 받을 수 있다.

Amazon DynamoDB 보안 제어

  • 정의 가능한 액세스 권한 – DynamoDB에서는 데이터베이스의 테이블에서 항목, 심지어 속성까지 모든 것에 대해 액세스 권한을 부여할 수 있다
  • 저장 시 암호화 – DynamoDB는 완전 관리형 저장 암호화 기능을 제공
  • SSL/TLS – 기본적으로 DynamoDB와의 통신은 SSL/TLS 암호화를 사용하여 네트워크 트래픽을 보호하는 HTTPS 프로토콜을 사용

AWS Database Migration Service - 데이터 마이그레이션

  • AWS Database Migration Service 는 가장 광범위하게 사용되는 데이터베이스(Oracle, PostgreSQL, Microsoft SQL Server, Amazon Redshift, Amazon Aurora, MariaDB 및 MySQL) 간 마이그레이션을 지원
  • 데이터 마이그레이션이 힘든 경우
    • 데이터베이스가 너무 큼
    • 연결이 너무 느림
    • 개인 정보 보호 및 보안 문제
    → AWS Snowball Edge를 권장

댓글