AWS - DB

Seongjin Jo·2024년 10월 14일
0

AWS

목록 보기
7/7

AWS DB

AWS에는 EBS,EFS,EC2 Instance store,S3 등등 스토리지 서비스가 있지만 데이터를 구조에 맞게 저장하려면 결국 DB가 필요하다.

AWS DB 이점

EC2 인스턴스에 자체적으로 DB 기술을 실행할 수도 있으나, 그럴 경우에는 복원력, 백업, 패치작업, 고가용성, 내결함성, 스케일링 등과 관련된 모든 사항을 직접 처리해애 한다.

  1. 퀵프로비저닝, 고가용성, 수직 및 수평 확장
  2. 자동 백업 및 저장, 설정, 업그레이드
  3. 모니터링 등등

RDS

RDS란? -> 관계형 DB를 의미한다. SQL을 쿼리언어로 사용하는 DB를 위한 서비스이다.

  • RDS를 통해 AWS에서 관리할 DB를 클라우드에 생성할 수 있다.
  • PostgreSQL, Mysql, Oracle, MariaDB, Aurora(AWS 독점 서비스) 등등

RDS를 쓰는 이유는?

  • RDS는 RDBMS서비스로 DB 배정이 자동으로 이루어진다. AWS가 운영체제 패치를 진행, 지속적인 백업 및 복원 옵션을 제공, 또한 DB가 잘 작동하는지 모니터링 대시보드 제공.
  • 읽기 복제본을 생성하여 읽기 규모를 확장하고 읽기 성능을 향상시킬 수 있다.
  • 하나의 가용영역(AZ) 전체가 다운되는 경우를 대비한 재해복구 계획으로써 다중 AZ를 설정하는 방법을 갖게 된다.
  • 수직, 수평 확장 지원
  • 스토리지는 EBS의 지원을 받는다.

유일하게 RDS로 할 수 없는 것은 RDS에 SSH를 통해 인스턴스 연결이 불가하다. DB에서 무슨일이 일어나는 지 확인을 하지 못한다. AWS가 DB 전체를 관리한다.

RDS를 활용한 기본적인 아키텍처 예시이다. ELB와 함께 ASG를 사용하고, DB는 RDS를 사용하고있다. 이 때 여러 EC2 인스턴스에서 RDS로 읽기와 쓰기 작업이 가능하다. 보통 이러한 아키텍처로 구성을 하는게 기본 중의 기본이다.

Aurora

AWS에서 만든 DB 기술. 오픈소스가 아니다. RDS와 동일한 방식으로 동작한다.

  • PostgreSQL과 MYsql을 지원한다.
  • 클라우드에 최적화된 서비스이다. 따라서 RDS 상의 Mysql 보다 5배 정도 성능이 좋고, PostgreSQL보다 약 3배 정도 성능이 좋다.
  • Storage 걱정 할 필요가 없다. 스토리지가 10gb단위로 최대 128TB까지 자동증가.
  • 프리티어가 아니며, RDS는 프리티어이다.

Aurora Serverless

  • DB 인스턴스화가 자동, DB 실제 상황을 기반으로 한 자동확장 기능.
  • User가 서버를 관리하지 않아도 된다. 초당 비용 지불.

관리 오버헤드가 없는 Aurora라는 표현은 Aurora Serverless를 뜻한다.

RDS 배포 옵션

Read Replicas

  • 읽기 전용 RDS 복제본은 사용하는 방식
  • 쓰기는 오직 중앙의 메인 RDS를 통해서만 가능한 형태
  • 읽기 작업 확장용 구조

Multi-AZ

  • AZ 운영 정지와 같은 장애 조치가 발생했을 때 유용하게 쓰임
  • 높은 가용성을 보장
  • 다른 AZ에 장애 조치용 DB를 구성하는 형태

(왼쪽이 Read Replicas , 오른쪽이 Multi-AZ)

Multi-Region

  • 한 리전에 문제가 생기는 것을 대비한 구조
  • 하지만 리전 간, 복제된 데이터를 네트워크를 통해 전송하는 경우 비용이 발생한다.

ElastiCache

캐시를 활용한 높은 성능과 짧은 지연시간을 보장하는 인메모리 DB 서비스이다.
일부 데이터를 ElastiCache DB에 캐싱처리하는데 이 작업은 인메모리에서 이루어지므로 속도가 빠르다. 즉, RDS의 부하를 줄인다.

읽기에 집중되는 부하를 DB로 부터 줄일 때 유용한 서비스이다.

DynamoDB

  • DynamoDB는 완전 관리형 고가용성 DB로써, 3개의 가용영역에 걸쳐 복제본을 두고 운영된다.
  • NoSql의 DB로 비관계형이다. 모든 데이터를 하나의 디비에서 유연하게 관리한다.
  • AWS의 대표상품이며 Serverless 이다.
  • 한 자릿수 밀리초의 지연시간과 같이 저지연 시간 (초고속)을 보장한다.

DynamoDB - DAX

  • 이는 DynamoDB를 위한 완전관리형 인 메모리 캐시 서비스. DAX는 DynamoDB 전용.

DynamoDB - Global Tables

  • DynamoDB의 핵심은 짧은 지연 시간으로 DynamoDB 테이블에 액세스 할 수 있도록 하는 기능이며, 여러 리전에서 사용하는 점이 중요함.

나머지 DB 서비스들

RedShift

PostgreSQL 기반의 DB이다. 분석과 데이터 웨어하우스에 용이하다. (OLAP)

EMR

실제 DB는 아니고 AWS에서 빅데이터를 작업하고자 할 때 사용하는 Hadoop 클러스터를 생성한다. 이때 Hadoop 클러스터란 방대한 양의 데이터를 분석하고 처리하는 것이다.

Athena

AWS S3를 위한 서버리스 쿼리 서비스이다. AWS S3에 저장된 오브젝트에 대한 분석을 수행.

QuickSight

서버리스 머신러닝 방식의 비즈니스 인텔리전스 서비스로 대화형 대시보드를 생성.

DocumentDB

Aurora가 PostgreSQL,Mysql을 클라우드 네이티브 버전으로 사용하듯이 DocumentDB는 MongoDB의 Aurora 버전이라고 보면된다. NoSQL이다.

Neptune

Neptune은 완전 관리형 그래프 DB이다. 데이터셋은 소셜 네트워크를 생각하면 된다. 모든 것이 연결되어있다.

TimeStream

time series(시계열,시간에 따라 지속적으로 변화하는) 데이터를 저장하고, 완전한 관리를 받으며, 빠르고 규모 조정이 가능한 서버리스인 DB이다.

QLDB

금융거리를 기록하는 장부의 역할

Managed BlockChain

중앙 기관 없이도 신뢰할 수 있는 여러 당사자의 트랜잭션 실행이 가능한 애플리케이션을 구출할 수 있는 기술이다.
블록체인, hyperledger Fabric, Ethereum

Glue

ETL 서비스라고 한다. ETL은 데이터셋에 대한 분석을 진행할 때에 그 형식이 올바르지 않거나 원하는 형식이 아닐때 유용하다.

DMS (DB Migration Service)

DB 간의 마이그레이션 방법이다. AWS의 마이그레이션.

AWS DB - SUMMARY

  1. RDBMS-OLTP: RDS 및 Aurora (SQL)
  2. RDS 배포 옵션 별 차이: 읽기 복제본(Read Replicas), 다중 가용 영역(Multi-AZ), 다중 리전(Multi-Region)
  3. 인메모리 데이터베이스: ElastiCache
  4. 키-값 데이터베이스: DynamoDB (서버리스) 및 DAX (DynamoDB용 캐시)
  5. 데이터 웨어하우스-OLAP: RedShift (SQL)
  6. 하둡 클러스터: EMR (Elastic MapReduce)
  7. Athena: AWS S3에서 데이터를 쿼리
  8. QuickSight: 데이터 대시보드 (서버리스)
  9. DocumentDB: MongoDB를 위한 Aurora (Json-NoSQL)
  10. TimeStream: 시계열 데이터 저장
  11. Neptune: 그래프 데이터베이스
  12. AWS QLDB: 변경 불가능한 원장(Ledger)
  13. AWS 블록체인: 관리형 Hyperledger Fabric 또는 이더리움 블록체인
  14. Glue: 관리형 ETL 및 데이터 카탈로그 서비스

0개의 댓글