AWS Database

AWS DataBase


Amazon RDS ( Relational Database Service )

RDS

  • 분산 관계형 데이터베이스
  • MariaDB, MySQL, PostgreSQL, Oracle 등을 AWS에서 제공해주는 것
  • 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순케 하도록 설계된 클라우드 내에서 동작하는 웹 서비스
  • 데이터베이스 소프트웨어 패치하거나 데이터베이스를 백업하거나 시점 복구를 활성화하는 것과 같은 복잡한 관리 프로세스들은 자동으로 관리
  • 스토리지와 연산 자원들을 스케일링 하는 것은 하나의 API 호출로 수행이 가능
  • 관계형 데이터베이스를 AWS 상에서 사용할 수 있도록 지원하는 서비스
  • 생성 후 서비스를 이용하기만 되므로 SaaS에 해당
  • MySQL, MariaDB, Postgre SQL, Oracle, MS SQL, Aurora 사용 가능
  • DB 인스턴스에 대한 shell 지원 불가 및 OS 제어 불가능 ( AWS 관리 )
  • 백업, 소프트웨어 패치, 장애 감지 및 복구를 AWS가 관리
  • Storage 용량에 대하여 Auto Scaling
  • MariaDB, MySQL, Aurora는 서로 호환이 가능

DB Instance

  • RDS의 기본 구성요소로서 클라우드에서 실행하는 격리된 데이터베이스 환경을 의미, 인스턴스 내에서는 여러 사용자가 만든 데이터베이스가 포함되며 엑세스할 여러 도구와 앱 사용 가능
  • DB 인스턴스도 EC2처럼 다양한 클래스를 가지고 있음 ( db.m5, db.r5 등 )
  • RDS도 클라우드에서 실행되기 때문에 하나의 AZ에서 격리되어 인스턴스로서 실행

DB Instance Storage

  • 데이터베이스의 유지를 위패 EBS를 사용하며 필요한 스토리지 용량에 맞춰 자동으로 데이터를 여러 EBS 볼륨에 나누어 저장 스토리지의 유형
  • 범용 SSD: 대부분의 워크로드에서 사용하는 기본적인 스토리지
  • 프로비져닝 IOPS: 빠르고 일관적인 I/O 성능이 필요하고 일관적으로 낮은 지연시간이 요구될 경우 사용하는 스토리지 ( I/O input/ Output )
  • 마그네틱: 접속 빈도가 적은 워크로드에 적합한 스토리지

Multi-AZ

  • RDS는 Multi-AZ라는 기능을 통해 고가용성을 지원 ( 다수의 AZ에 DB 인스턴스를 둠으로써 하나 혹은 그 이상의 AZ가 파괴되어 서브시가 불가능 할 때를 대비 )
  • 기본 인스턴스가 수행해야할 작업( 백업, 스냅샷 생성 ) 등을 대신하여 수행함으로서 기본 인스턴스의 부담을 줄임
  • RDS도 클라우드에서 실행되기 때문에 하나의 AZ에서 격리되어 인스턴스로서 실행
  • 기본 인스턴스에서 스냅샷을 캡쳐한 후 다른 AZ에 복원하여 ‘동기식’ 예비 복제본을 생성
  • Active( AZ A )-Standby ( AZ B, C ) 구조를 형셩한 후 지속적으로 동기화
  • ‘ 예비 ‘ 복제본이기 때문에 읽기 및 쓰기 작업을 수행할 수 없음
  • Multi-AZ를 사용하는 경우, 단일 AZ 배포에 비해 쓰기 및 저장 지연 시간이 길어질 수 있음 ( 동기화 문제 )

Multi-AZ

  • Multi-AZ를 활성화한 상태에서 DB 인스턴스에 문제가 발생하면 자동으로 다른 AZ의 예비 복제본 ( Standby )로 전환하며 서비스를 이어나감
  • 전환에 사용되는 시간은 60- 120초 전환되는 상황
  • 가용 영역( AZ ) 중단
  • 기본 DB 인스턴스 오류
  • DB 인스턴스 서버 유형 변경
  • 기본 DB 인스턴스 OS에서 소프트웨어 패치 실시
  • 장애 조치 재부팅( Failover ) 실시

DB Instance Storage

  • 데이터베이스의 유지를 위패 EBS를 사용하며 필요한 스토리지 용량에 맞춰 자동으로 데이터를 여러 EBS 볼륨에 나누어 저장

Read Replica

  • 읽기 전용의 복제본, 기본 DB 인스턴스가 읽기와 쓰기를 담당한다면 Read Replica는 읽기 작업만을 담당하여 마스터 DB 인스턴스의 부하를 줄임
  • 우선 DB
  • 마그네틱: 접속 빈도가 적은 워크로드에 적합한 스토리지

Automated Backup

  • RDS의 자동백업으로 개별 데이터베이스를 백업하는 것이 아닌 DB 인스턴스 전체를 백업하는 것
  • 매일매일 백업이 이루어지며, 기본 보존기간은 CLI로 생성시 1일& 콘솔로 생성시 7일이며 최저 1일부터 35일 까지 가능
  • 특정시점을 지정하여 복원가능하며 복원 기간내로부터 최근 5분까지 특정시점을 지정하여 복원 가능
  • 사용자가 백업시간에 자동적으로 백업되며, 백업 중에는 스토리지 I/O가 일시적으로 중단될 수 있음 ( Multi-AZ 사용시 Standby에서 백업 실시 ) 전환되는 상황
  • 가용 영역( AZ ) 중단
  • 기본 DB 인스턴스 오류
  • DB 인스턴스 서버 유형 변경
  • 기본 DB 인스턴스 OS에서 소프트웨어 패치 실시
  • 장애 조치 재부팅( Failover ) 실시

Enhanced Monitoring

  • RDS의 지표를 실시간으로 모니터링하는 ‘ 강화된' 모니터링
  • 모니터링 지표는 CloudWatchs Logs에 30일간 저장됨
  • 일반 모니터링과의 차이점은 Enhanced Monitoring은 인스턴스 내 에이전트를 통해 지표를 수집하는 반면, 일반 모니터링은 하이퍼바이저에서 수집 ( 최대 1초 단위 )

RDS vs DB in EC2

  • EC2 위에 데이터베이스를 직접 올리는 만큼 설정을 마음대로 변경할 수 있고, 커스터마이징 또한 가능
  • RDS와는 반대로 백업과 패치 등 관리를 직접해야 함
  • EC2에 설치하는 것이기에 SSH 접속 가능

 

Amazon DynamoDB

RDS

  • 종합 관리형 NoSQL 데이터베이스 서비스로, 원할환 확장성과 예측 가능한 성능을 제공
  • 데이터 규모에 관계없이 데이터를 저장 및 검색하고, 어떤 수준의 요청 트래픽이라도 처리할 수 있는 데이터베이스 테이블의 생성이 가능
  • 배포가 단순하고 신속, 설계를 해서 데이터베이스의 적용까지 많은 시간이 소요되지 않음
  • 확장이 단순하고 신속, 단순한 인터페이스의 유리
  • 온 디맨드 백업기능 제공

DynamoDB의 특징

  • 배포가 단순하고 신속
  • 확장이 단순하고 신속, 수백만 IOPS
  • 데이터는 자동으로 복제되어 있음
  • 빠르고 일관된 응답시간, SSD, 10밀리초 미만
  • 보조 인덱스를 통한 빠른 조회
  • 사용한만큼 지불, 저장소 및 프로비저닝된 처리용량

 

Amazon ElastiCache


AEC

Cache

  • Cache는 CPU 칩 안에 들어가 있는 작은 메모리 ( 물리적 실체 )
  • 프로세서가 필요한 데이터가 있을 때마다 메인 메모리에 일일이 접근하여 속도가 지연되는 것을 막기 위해 자주 사용하는 데이터를 담아두는 곳
  • 즉 처리 속도 향상을 위해 존재하는 작은 칩이자 메모리
  • L1,L2,L3로 나뉘며 숫자가 적을 수록 도달하는 속도가 빠름
  • Cache는 CPU와 메모리 사이 뿐만 아니라, 메모리와 디스크 사이에서도 발생함
  • 후술할 In Memory Cache는 메모리와 디스크 사이의 Caching을 의미

In Memory Cache ( In Memory DataBase )

  • 데이터 처리 속도를 향상시키기 위한 메모리 기반의 DBMS
  • 메모리 위에 모든 데이터를 올려두고 사용하는 데이터베이스의 일종( ElastiCache가 AWS 카테고리에서 DB 부분에 있는 이유 )
  • 디스크에 최적화된 Database ( RDS 등 ) 에서 저장된 쿼리 결과나 자주 사용하는 데이터를 메모리에 적재하여 사용하는 것은 비효율적
  • 즉 모든 데이터를 메모리 위에 올려두어 굳이 디스크 기반의 데이터베이스에까지 이동하여 데이터를 가져와 속도가 저하되는 것을 막음
  • 데이터베이스의 데이터뿐만 아니라, 디스크, 세션, 기타 동적으로 생성된 데이터를 저장할 수 있음
  • 메모리 기반의 데이터베이스이기 때문에, 휘발성 메모리라는 단점이 존재하며 전원 공급 차단시 모든 데이터가 유실되고 할당된 메모리에 한해 저장 가능

ElastiCache

  • AWS의 In Memory Cache Service
  • Memcached와 Redis로 나뉨
  • Memached, Redis 모두 비관계데이터베이스형(NosQL) 서비스이며, Key-value 기반임
  • Memached, Redis 모두 이미 존재하는 서비스이며 AWS에서 사용가능하도록 구현한 것
  • ElastiCache는 Node로 구성되어 서비스를 제공하며, Node는 EC2처럼 다양한 Type을 가지고 유형에 따라 다양한 메모리 크기를 가짐
  • 다양한 Type을 갖는 이유는 적은 양의 메모리가 필요할 경우, 작은 Type의 Node를 사용하여 비용을 적게 들게 하기 위함
  • 유형이 결정된 Node들은 ‘고정된’ 메모리 크기를 가지며, 각자의 DNS로 이루어진 엔드포인트를 보유함

Memcache

  • Cluster로 구성되어 있으며, Cluster 내에는 Node들이 존재하여 인 메모리 캐시로서의 역할을 담당함
  • 각 Node는 Type별로 메모리를 보유하며 서비스를 제공하며, 필요시 Node를 늘려 서비스 용량을 향상시킬 수 있음
  • 각 Node별로 AZ를 따로 둘 수 있지만, 장애 조치(Failover)가 불가능하고 복제본을 둘 수 없음
  • Redis의 특징
  • 기본적으로 Cluster로 구성되지는 않지만, Cluster로 구성이 가능하며 Shard와 Node를 가지고 있음
  • Shard는 여러 Node로 구성되며, 하나의 Node가 읽기/쓰기를 담당하고 나머지 Node는 복제본 역할을 함
  • Cluster로 구성되지 않은 Redis는 하나의 Shard만을 가지지만, Cluster로 구성될 경우 다수의 Shard를 갖게 됨
  • 복제본을 가지므로, 장애조치(복제본을 기본 Node로 승격)가 가능하며 Multi-AZ 기능을 지원함

 

Amazon Redshift


RDS

Redshift

  • PostgreSQL를 기반으로 하는 AWS의 Data Warehouse Service
  • 모든 데이터를 표준 SQL 혹은 BI 도구를 사용하여 효율적으로 분석할 수 있도록 지원
  • 대량 병렬처리(MPP)를 통해 복잡한 쿼리라도 빠른 속도로 실행하여 대용량 처리 가능
  • 열(Column) 단위 데이터 저장방식
  • COPY 명령어를 통해 Amazon EMR, Amazon DynamoDB, S3로부터 데이터를 병렬 로드 가능
  • Enhanced VPC Routing을 통해 클러스터와 VPC 외부의 COPY, UNLOAD 트래픽을 모니터링할 수 있음
  • WLM(Workload Management)를 통해 사용자가 작업 부하 내 우선 순위를 유연하게 관리하도록 지원
  • 보존기간이 1일인 자동 백업을 지원하며, 최대 35일까지 설정 가능 단일 AZ 배포만을 지원함

Redshift의 구성

  • 클러스터 : Redshift의 핵심 요소로, 하나의 리더 노드와 다수의 컴퓨팅 노드를 가지고 있는 구성 요소
  • 리더 노드 : 클라이언트 프로그램과 일어나는 통신을 비롯해 컴퓨팅 노드간의 모든 통신/작업 관리
  • 컴퓨팅 노드 : 실제 작업을 수행하는 노드로, 각 노드마다 전용 CPU와 메모리 내장 디스크 스토리지를 따로 보유함

Data Warehouse(DW)

  • 하나의 통합된 데이터 저장공간으로서, 다양한 운영 환경의 시스템들로부터 데이터를 추출, 변환, 통합해서 요약한 데이터베이스
  • 데이터베이스가 관련 있는 업무 데이터는 잘 저장하나, 저장된 데이터들을 제대로 활용하지 못 하는 것에서 착안
  • 기본적으로 관계형 데이터베이스가 있는 상태를 가정하여 DW를 구성하며, 동영상이나 음악처럼 DB에 저장할 수 없는 파일도 필요한 부분을 추출하여 보여주어야 함

ETL(Extract, Tranform, Load)

  • 데이터를 추출하고, 변형하여, (Data Warehouse에) 적재하는 과정을 일컫는 말

BI(Business Intelligence)

  • 데이터 추출/통합/리포팅을 위한 기본도구 집합, DW에서 분석된 데이터를 통해 숨겨진 패턴을 찾아냄 == > ETL을 통해 뽑아낸 데이터를 DW에 적재하고, BI를 이용하여 분석하는 기본 과정을 거침

Redshift vs RDS

  • Redshift는 보고 및 분석에 사용되지만, RDS는 OLTP(온라인 트랜잭션) 워크로드에 사용
  • Redshfit는 대용량 데이터 세트를 대상을 복합적인 분석 쿼리를 빠르게 실행하는 것에 목표를, RDS는 단일 행 트랜잭션에 목표를 둠

 

Amazon Aurora

RDS

  • 클라우드에서 데이터베이스를 처음부터 설계하자는 생각에서 출발한 DB 서비스
  • MySQL과 PostgreSQl과 호환이 가능
  • 각 AZ마다 2개의 데이터 복사본을 자동으로 유지하며, 에러를 스스로 찾아내고 복구
  • Read Replica는 다른 DB 서비스와 달리 최대 15개 까지 가능하며, 백업과 스냅샷이 퍼포먼스에 영향을 주지 않음

 

RSS Feed
마지막 수정일자