AWS 이해하기 - 데이터베이스 기초편

허준현·2023년 2월 24일
0

AWS

목록 보기
2/4
post-thumbnail

이번에는 자격증 준비를 하면서 자주나오는 단어들 중에서 데이터베이스에 해당하는 것에 대해 정의하며 EFS, RDS, Aurora, Dynamo DB 를 소개하면서 마지막에 각 서비스마다 해당하는 기능을 정리하는 시간을 가져보겠습니다.

Elastic File System(EFS)

리눅스 환경의 EC2 인스턴스에서 연결하기 위한 네트워크 파일 스토리지 기본적으로 3개의 AZ에 데이터를 저장한다.

Network File System(NFS) 프로토콜을 지원
여러개의 EFS를 연결할 수 있으며 여러개의 AZ에서 부착 가능
온-프레미스 리눅스 서버에도 연결 가능
복구시에는 스냅샷이 아닌 별도의 AWS Backup을 사용

AWS Key Management Service (KMS) 를 통해 암호화 가능

스토리지 클래스

표준(Standard)
3개의 가용영역에 데이터 저장 , 액세스하는 파일을 저장하는 데 사용

표준IA (Standard Infrequent Access)
3 개의 가용영역에 데이터 저장 , 자주 액세스하지 않는 파일을 저장하는 데 사용

One Zone
1 개의 가용영역에 데이터 저장 , 자주 액세스하는 파일을 저장하는 데 사용

One Zone IA (One Zone Infrequent Access)
1 개의 가용영역에 데이터 저장 , 자주 액세스하지 않는 파일을 저장할 때 사용
•EFS 수명주기 관리 정책 또는 EFS 지능형 계층화 (Intelligent Tiering) 을 사용해 자주 사용하지 않는 데이터를 다른 스토리지 클래스로 자동 전환 가능

기본 범용 성능 모드최대 IO 성능을 낼 수 있는 모드를 제공한다.
-기본 버스팅 처리량 모드는 파일 용량이 커짐에 따라 처리량을 증가
-프로비저닝 된 모드는 양과 상관없이 처리량이 동일하다.

RDS

관계형 데이터베이스를 제공하는 서비스이다.

가상 머신 위에서 동작하기 때문에 Serverless 가 아님

RDS 특징

저장된 데이터를 바탕으로 일정 기간내의 특정 시간으로 롤백가능하며 이는 기존의 db를 덮는 것이 아닌 다른 db 클러스터를 새로 생성한다.

RDS Multi AZ안정성을 위한 서비스 FailOver 자동 복구된다. stand by db에는 접근이 불가능하다.

Read Only Replica(읽기 전용 복제본)는 퍼포먼스를 위한 서비스이며 각 db에 접근 가능 복구는 수동으로 복구해야 한다.

multi-region로컬 퍼포먼스 혹은 dr시나리오로 가능, 리전별로 자동 백업 가능하다

자동 백업 및 데이터베이스 스냅샷 기능 제공 -> 복구 작업을 수행하면 새로운 앤드포인트를 가지는 새 DB 인스턴스가 생성 된다.

CloudWatch 연동을 통해서 DB 인스턴스의 모니터링 가능하다.

서브넷과 SG 설정 필요 내부적으로 EBS를 사용하기 떄문에 EBS타입을 설정해야 하며 오로라의 경우 사용한 만큼 가격이 나오기 때문에 별도로 설정하지 않는다.

Parameter Group : Root 유저만 설정 가능한 DB의 설정값들을 모아 그룹화한 개념이다.

AWS Key Management Service(KMS) 를 통해 관리하는 키를 사용하여 모든 데이터베이스 엔진에 대한 저 장 중 암호화 가능

RDS Audit Logs 기능을 통해 감사에 활용 가능

RDS 인증방법

aws Secret Manager와 연동하여 자동 로테이션 가능

-> 비번을 자동으로 관리해주는 서비스이며 일정한 주기에 따라서 비밀번호를 변경해줌

IAM DB인증

-> 데이터베이스를 IAM 유저 크레덴션/ROle을 통해서 관리한다.

RDS Custom 기능은 EC2에 RDS를 설치하여 사용자가 서버를 포함한 모든 부분을 관리 할 수 있다.

Aurora

Aurora는 고성능 상용 데이터베이스의 성능과 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결합하였으며 MySQL, PostgreSQL 호환 관계형 데이터베이스이다.
앞의 상용DB보다 빠른 성능을 보여주며 가용성 및 안정성 제공 하드웨어 프로비져닝, 패치 및 백업과 같은 소모적인 관리작업을 제공한다.

다수의 노드로 읽기 쓰기가 가능한 Multi-Master

-> 각 노드는 독립적이기 때문에 Continuous Avaliablity (지속적인 가용성) 제공

한 개의 쓰기 전용 노드와 다수의 읽기 전용 노드 구성 Single-Master

데이터의 분산 저장 : 각 AZ마다 2개의 데이터 복제본을 저장하며 최소 3개의 AZ를 가지므로 최소 6개의 복제본을 가지고 있다.

읽기 노드와 쓰기 노드, 저장노드를 분리함에 따라서 지속적으로 손실된 부분을 검사 후 복구가 가능하다.

Writer가 죽었을 경우 Replica가 자동으로 Writer로 승격하여 FailOver 가능

Aurora Global Database : 전 세계의 모든 리전에서 1초내의 지연시간으로 데이터 엑세스 가능하며 재해복구용도로 사용가능

Storage Layer가 분리되어 있기 때문에 병렬 쿼리 작성 가능하다.

읽기 복제본을 생성할 수 있지만 다른 리전에만 가능하다.

RDS와 마찬가지로 자동/수동 백업 가능 하며 백업 데이터를 복원할 경우 다른 데이터베이스 생성

Copy_on_write 를 통해서 스냅샷을 통해 새로운 데이터베이스 생성하는 것이 빠르고 저렴하다.(페이지 단위로 저장하기 때문)

BackTrack을 통해서 새로운 인스턴스를 생성하지 않고 기존DB에 upper 할 수 있다. ( MYsql 에서만 가능하며 Multi_master에서는 불가능 )

Aurora Global Database : 다른리전으로 데이터베이스를 복제하여 DR 기능 제공
Aurora Database Cloning : 테스트,개발 등의 용도를 위한 Staging DB 클러스터 생성 가능
Aurora Serverless : DB 인스턴스 운영 및 데이터베이스 용량 수동으로 관리 하지 않으며 사용만큼의 초당 요금 지불

Dynamo DB

noSQL 데이터베이스 서비스를 말한다.
키-값 문서 데이터 모델 지원, 자동 확장 및 축소 기능 제공하며 서버리스 서비스 이다.

백업 및 복구 : 특정 시점으로 복구 PITR(Point in time recovery) 를 사용해 최근 35 일 이내 원하는 시점으로 테이블 복원가능하다.

읽기/쓰기 용량모드 제공

TTL(Time to Live) : 지정된 타임스탬프 날짜 및 시간이 지나면 DynamoDB 테이블에서 항목을 삭제 하거나
Amazon DynamoDB Streams 및 AWS Lambda 를 통해 Amazon S3 에 보관
-> 해당 기능을 통해서 별도로 Lambda 함수를 사용하지 않고 스토리지 관리를 할 수 있다.

DynamoDB Streams : DB 테이블에 저장된 항목에 변경이 발생하는 경우 변경 사항을 캡쳐하는 기능이며 Kinesis Data Stream 으로 보낼 수 있다.

Global Table : 리전간에 데이터베이스를 복제하는 기능을 제공한다.

AWS 데이터베이스 정리

AWS에서 데이터베이스는 다음과 같이 나눌 수 있습니다.

오브젝트 스토리지 : 각 유닛에는 고유의 식별자 혹은 키가 있어서 분산된 시스템 내 어디에 저장되어 있든지 상관없이 데이터를 찾을 수 있음
ex) AWS S3

파일 스토리지 : 데이터는 계층적 파일 디렉터리 내의 폴더에서 파일로 저장한다.
ex) EFS

블록 스토리지 : 데이터를 고정된 사이즈의 블록으로 나누어 각각 고유한 식별자와 함께 저장하는 방식
ex)EBS , FSx

행에 대한 정보를 가져오기 위한 관계형 데이터 베이스 : Amazon RDS, Amazon Aurora

데이터베이스 웨어하우스이자, 데이터를 종합적으로 보고 통계 산출 데이터베이스 : RedShift

Key-Value로 이루어진 데이터베이스이며 Key값으로만 쿼리 가능 , 세션 정보 저장 혹은 장바구니 처럼 상태 변경 처리 가능 : Dynamo DB

데이터를 JSON 혹은 유사 형식의 문서로 데이터를 저장 및 쿼리하는 서비스이며 몽고디비랑 호환 가능 : Document DB

데이터 보다 데이터간 관계가 더 중심인 데이터베이스 : AWS Neptune

매우 빠른 IO 및 응답 속도가 중요한 DB이며 캐싱에 주로 목적을 둔 경우 : Amazon Elasticache
Redis ElastiCache 와 Memcached ElastiCache가 존재하나 Redis 가 스냅샷 백업 및 고가용성 을 제공한다.

엘라스틱캐시에 내구성을 확보한 in-memoryDB이며 주 데이터베이스로 사용하기 위한 상정, IOT에서 자주 사용함: MemoryDB

검색 데이터베이스 : ElasticSearch

데이터의 신뢰성 및 투명성이 중요한 데이터베이스 : QLDB(Quantuim Ledger Database)

많은 이벤트를 시간단위로 저장하기 위한 데이터베이스 , 게임같이 이벤트가 많이 발생하는 어플리케이션 분석 데이터 시각화 : TimeStream

데이터 분석을 위한 ETL(Extract Transform and Load) 서비스이며 정규화 및 결합 데이터레이크에 대해 로드 및 구성 : AWS Glue

Data Lake(구조화되거나 반구조화되거나 구조화되지 않은 대량의 데이터를 저장, 처리, 보호하기 위한 중앙 집중식 저장소) : AWS Lake Formation

지금까지 AWS 에서 제공하는 데이터베이스 에 대한 기능을 알아보았습니다. :)
다음에는 데이터베이스간 전송 방식과 데이터 마이그레이션 , 데이터 분석 툴에 대해 배웁니다.

profile
best of best

0개의 댓글