바닥코딩

RDS 본문

방법론과 DevOps/AWS

RDS

개발공부개발공부 2022. 10. 25. 22:58

RDS(Relational Database Service)

 데이터베이스를 종류중 아마 모두에게 가장 친숙한 형태는 RDB(Relation DataBase) 일 것입니다. 그리고 이 RDB를 관리 해주는 시스템인 오라클, mySql, maria, postgreSql 등등은 개발환경에서 대중적으로 많이 사용되어지고 있습니다. AWS RDS는  유저가 사용하기 쉽도록 인프라를 자동화 시켜주고 백업 기능 등 유용한 기능들을 제공하는 RDB 서비스 라고 볼 수 있습니다.

 

RDS - DB Backups

 RDS는 데이터베이스를 백업해주는 유용한 기능을 제공합니다. 종류로는 크게 두가지가 있습니다.

  • Automated Backups(자동 백업)
  • DB Snapshots(데이터 베이스 스냅샷)

Automated Backups

 Automated Backups은 이름 그대로 데이터베이스를 자동 백업 해주는 기능입니다.  AB에는 4가지 특징이 있습니다.

  1. Retention Period(1~35일) 안의 어떤 시간으로 돌아가게 할 수 있음(현재시간 기준)
  2. 그날 생성된 스냅샷과 Transaction logs를 참고함 
  3. 디폴트로 AB기능이 설정되어져 있고, 백업 정보는 ※S3에 저장
  4.  약간의 I/O suspension이 존재할 수 있음 

(S3 : 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스 제공 서비스)

DB Snapshots

 스냅샷 이라는 용어는 카메라로 사진을 찍을 때 많이 들어본 단어 일 것입니다. DB Snapshots은 마치 사진을 찍는 것처럼 특정 시점의 데이터베이스를 저장해 놓는 것을 의미합니다

  1.  사용자의에 의해 실행됨 
  2. 원본 RDS Instance를 삭제해도 스냅샷은 존재함

 

RDS - Multi AZ

AWS에서는 가용성과 확작성을 위해 Multi AZ 와 Read Relpica라는 기능을 제공합니다 AZ(Availabillity Zone)은 직역하자면 가용 영역이라 볼 수 있는데 AZ는 인프라를 배치해 놓은 곳의 가용공간을 의미합니다. 

가용영역(AZ)들은 고속 프라이빗 네트워크로 연결되어 있습니다. Multi AZ는 단일 AWS 리전안에 RDS 인스턴스에 대한 고 가용성을 제공해주는 서비스를 말합니다. 특징들에 대해 알아보면 

  1. 원래 존재하는 RDS DB에 무언가 변화가 생길 때 다른 AZ에 똑같은 복제본을 만들어냄
  2. AWS에 의해서 자동으로 관리가 이루어짐 
  3. 원본 RDS DB에 문제가 생실 시 자동으로 다른 AZ복제본이 사용됨 
  4. 성능개선과는 관계 x

Multi AZ 는 단순한 복사본을 생성해 재해를 대비하는 시스템이기 떄문에 성능과는 관계가 없습니다. 그렇지만 서버에 장애가 발생했을 경우 유용한 대처기능을 제공하게 됩니다.

 

RDS - Read Relpica

 앞서 Multi AZ는 복사본을 생성해 위험을 대비할 수 있지만 성능적인 개선이 이루어 지지는 않습니다. Recovery의 목적을 둔 서비스를 사용한다면 Multi AZ를 사용해야겠지만 성능적인 개선이 필요하다면 이럴 경우 AWS는 Read Replica 라는 기능을 제공합니다.

  1. Production DB의 읽기 전용 복제본이 생성됨 
  2. 주로 무거운 DB 작업시 효울성의 극대화를 위해 사용되어짐 
  3. 최대 5개의 Read Replica DB를 허용함 
  4. Read Replica의 Read Replica도 생성 가능 
  5. 각각의 Read Replica는 자가만의 고유 EndPoint가 존재 
  6. Multi AZ와 달리 Recovery 용도가 아님!!

 

RDS - ElastiCache

ElastiCache는 RDS서비는 아니지만 RDS 서비스를 사용하면서 RDS를 효율적이게 사용할 수 있게 만들 수 있습니다 .

  1. 클라우드 내에서 in-memory 캐시를 만들어줌 
  2. 데이터베이스에서 데이터를 읽어오는 것이 아니라 캐시에서 빠른 속도로 데이터를 읽어 옴 
  3. 무거운 애플리케이션 동작에서 부하를 많이 감소시킬 수 있음.

ElastiCache는 두가지 타입이 존재합니다 하나는 Memcached 다른 하나는 Redis 입니다 두가지 타입에 대한 특징을 살펴보면 

Memcached

  

  • Object 캐시 시스템으로 잘 알려져 있음 
  • ElastiCache는 Memcached의 프로토콜을 디폴트로 따름 
  • EC2 Auto Saciling 처럼 크기가 유연함
  • 오픈소스

먼저 Memcached는 위와 같은 특징을 가지고 있습니다.  특징에서 알 수 있듯이 이는 가장 단순한 캐싱 모델을 사용하고 싶을 때, Object 캐싱이 주요 목적일때 , 캐시 크기를 마음대로 줄이고 늘리고 싶을 때  유용하게 사용 할 수 있습니다

Redis

  • Key-Value, Set, List 와 같은 형태의 데이터를 in-memory에 저장 가능함 
  • 오픈소스 
  • Multi Az 지원

Redis는 위와 같은 특징을 가지고 있습니다 특징에서 알 수 있듯이 조금 더 정교한 타입의 데이터를 저장 가능합니다. 이러한 특징에서 알 수 있듯이 List와 같은 데이터 셋을 사용하거나, 데이터셋의 정렬이 필요한 경우, Multi AZ의 재해 복구 기능을 사용하고 싶다면 Redis 캐싱을 하는 것이 더 적합한 선택일 것입니다.

'방법론과 DevOps > AWS' 카테고리의 다른 글

CloudWatch  (0) 2022.11.03
S3(Simple Storage Service)  (0) 2022.11.01
EC2 인스턴스  (0) 2022.10.24
Route 53  (1) 2022.10.18
EC2, EBS, ELB  (1) 2022.10.12