Search
Duplicate
📒

[AWS - SAA] 06-1. RDS

상태
완료
수업
AWS - Solutions Architect
주제
AWS-DB
4 more properties
참고

RDS (Relational Database Service) 란?

NOTE
AWS에서 관계형 데이터베이스를 간편하게 클라우드에서 설정, 운영, 확장이 가능하도록 지원하는 서비스!
이미지들의 서비스를 지원
MySQL, 오라클 같은 데이터베이스의 설치, 모니터링, 백업, 알람 등 관리를 대신해준다.
하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 작업들을 자동화 해준다.

RDS의 특징

NOTE
데이터베이스는 EC2에 직접설치하고 사용하면 돈도안드는데 왜 RDS를 쓰는걸까?
EC2에 설치하는것과 비교한 장점!
AWS RDS는 EC2에 RDB를 직접 구축하여 운영할때보다 더 많은 부분을 자동으로 관리할 수 있어 편리하기 때문에 사용한다!
자동 프로비저닝, OS패치
모니터링 대시보드
EBS 지원 스토리지
확장 가능(수직 및 수평)
RDS와 EC2를 연결해서 사용
RDS는 기본적으로 VPC안에서 동작하며, public IP를 부여하지 않아 외부에서 접근이 불가능하다.
설정에 따라 public으로 오픈이 가능하지만 로드밸런스와 같이 DNS로만 접근 가능
서브넷과 보안 그룹 지정도 필요하다.
RDS또한 생성시에 EC2와 같이 타입을 지정해주어야 한다!
db.t2.micro인스턴스는 750시간 무료가능!

RDS 백업 시스템

NOTE

자동백업

자동으로 매일 데이터베이스 유지 관리 시간에 데이터베이스 전체를 백업
DB를 특정 시간(1~35일전)으로 돌릴 수도 있으며, 과거상태 그대로 돌아가는게 아닌, 다른 DB인스턴스를 새로 생성해서 스냅샷을 적용시키는 형식

수동 백업

EC2 스냅샷을 만드는거처럼, 사용자가 직접 진행하는 백업
원본 RDS를 삭제한다고 하더라도, 스냅샷은 S3버킷에 그대로 존재한다.

RDS 구성 아키텍쳐

NOTE
AWS RDS는 DB를 보다 효율적으로 관리할 수 있게 해주는 방법 3가지를 제공한다!

RDS Multi AZ 구조

NOTE
2개 이상의 AZ에 걸쳐 데이터베이스를 구축한다!
원본과 다른 DB(Standby)를 자동으로 동기화(sync)하는 구조이다.
Standby ⇒ 돌발 사태로 예정된 기능이 이뤄지지 않는 경우를 대비한 ‘임시’를 의미
AWS에 의해서 자동으로 관리가 된다.
1.
RDS Primary에 문제가 생기면, 자동으로 DNS를 Standby 인스턴스로 연동
2.
기존의 RDS Primary와의 연결을 끊는다.
3.
이 작업을 fail over(fail났을 떄 복구하는 과정)라고 한다.
4.
EC2입장에서는 동일한 address로 바라보고 있기 때문에 장애를 느끼지 못한다.
5.
굉장히 빠른 속도로 장해복구 가능!

Read Replica(읽기 전용 복제본)

NOTE
RDS Primary를 복제해서 DB 쓰기는 Primary에서, DB 읽기는 복제본에서 처리!
이렇게 쓰기와 읽기를 나눠놓은 이유는, 서비스에서 DB 읽기 위주의 작업이 많은 경우, Read Replica를 여러개 만들어서 부하를 분산할 수 있기 때문.
즉, 쓰기 작업은 Primary DB에서하고, 읽기 작업은 Read Replica에 할당하면 Primary DB의 부하를 줄일 수 있다!
Replica는 같은 AZ에 있을수도 있고, 다른 AZ에 있을수도 있다.

데이터베이스 Replication

NOTE
Replication이란 백업과 성능 향상을 위해서 DB를 여러 대의 서버에 복제하는 행위!
마스터
원본 데이터가 위치하는 서버
슬레이브
원본을 복제한 서버
복제된 서버에 쓰기 작업을 맡기게 된다면 복제된 서버들간에 동일한 형태 유지에 많은 비용이 든다.
그래서 보통 한대의 서버에만 쓰기 작업을 하고, 그 서버의 데이터를 복제해서 여러 대의 슬레이브 서버를 만든 후에 슬레이브에서는 읽기 작업만을 수행한다
Read Replica는 성능 극대화를 위해 존재하기에, 읽기 작업이 많으면 사용하는 것이 좋다!
5개까지 복제본 생성이 가능

RDS Proxy

NOTE
RDS 데이터베이스 인스턴스의 연결을 최소화
Serverless로 Auto Scaling이 가능해 용량 관리가 필요 없고 다중 AZ로 가용성이 높음
장애 조치 시간을 최대 66%로 감소