바닥코딩
RDS 본문
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가지 특징이 있습니다.
- Retention Period(1~35일) 안의 어떤 시간으로 돌아가게 할 수 있음(현재시간 기준)
- 그날 생성된 스냅샷과 Transaction logs를 참고함
- 디폴트로 AB기능이 설정되어져 있고, 백업 정보는 ※S3에 저장
- 약간의 I/O suspension이 존재할 수 있음
(S3 : 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스 제공 서비스)
DB Snapshots
스냅샷 이라는 용어는 카메라로 사진을 찍을 때 많이 들어본 단어 일 것입니다. DB Snapshots은 마치 사진을 찍는 것처럼 특정 시점의 데이터베이스를 저장해 놓는 것을 의미합니다
- 사용자의에 의해 실행됨
- 원본 RDS Instance를 삭제해도 스냅샷은 존재함
RDS - Multi AZ
AWS에서는 가용성과 확작성을 위해 Multi AZ 와 Read Relpica라는 기능을 제공합니다 AZ(Availabillity Zone)은 직역하자면 가용 영역이라 볼 수 있는데 AZ는 인프라를 배치해 놓은 곳의 가용공간을 의미합니다.
가용영역(AZ)들은 고속 프라이빗 네트워크로 연결되어 있습니다. Multi AZ는 단일 AWS 리전안에 RDS 인스턴스에 대한 고 가용성을 제공해주는 서비스를 말합니다. 특징들에 대해 알아보면
- 원래 존재하는 RDS DB에 무언가 변화가 생길 때 다른 AZ에 똑같은 복제본을 만들어냄
- AWS에 의해서 자동으로 관리가 이루어짐
- 원본 RDS DB에 문제가 생실 시 자동으로 다른 AZ복제본이 사용됨
- 성능개선과는 관계 x
Multi AZ 는 단순한 복사본을 생성해 재해를 대비하는 시스템이기 떄문에 성능과는 관계가 없습니다. 그렇지만 서버에 장애가 발생했을 경우 유용한 대처기능을 제공하게 됩니다.
RDS - Read Relpica
앞서 Multi AZ는 복사본을 생성해 위험을 대비할 수 있지만 성능적인 개선이 이루어 지지는 않습니다. Recovery의 목적을 둔 서비스를 사용한다면 Multi AZ를 사용해야겠지만 성능적인 개선이 필요하다면 이럴 경우 AWS는 Read Replica 라는 기능을 제공합니다.
- Production DB의 읽기 전용 복제본이 생성됨
- 주로 무거운 DB 작업시 효울성의 극대화를 위해 사용되어짐
- 최대 5개의 Read Replica DB를 허용함
- Read Replica의 Read Replica도 생성 가능
- 각각의 Read Replica는 자가만의 고유 EndPoint가 존재
- Multi AZ와 달리 Recovery 용도가 아님!!
RDS - ElastiCache
ElastiCache는 RDS서비는 아니지만 RDS 서비스를 사용하면서 RDS를 효율적이게 사용할 수 있게 만들 수 있습니다 .
- 클라우드 내에서 in-memory 캐시를 만들어줌
- 데이터베이스에서 데이터를 읽어오는 것이 아니라 캐시에서 빠른 속도로 데이터를 읽어 옴
- 무거운 애플리케이션 동작에서 부하를 많이 감소시킬 수 있음.
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 |