종원

AWS - 기초6. AWS 데이터베이스 서비스 본문

AWS/공부

AWS - 기초6. AWS 데이터베이스 서비스

곰종 2023. 8. 10. 17:08

AWS 데이터베이스 서비스 - RDS

Amazon RDS

 

EC2와 마찬가지로, 즉각적인 DB 컴퓨팅 사이즈 조정 가능 

 

 

RDS Multi AZ

RDS Multi AZ를 통해서 DB 이중화로 가용성을 확보할 수 있다. Multi AZ를 구성하면, 실제 눈으로 보이지는 않지만 서로 다른 가용영역에 스탠바이 형태의 Slave RDS가 생성이 된다. 데이터는 동기식으로 복제가 된다. Master 가용영역 장애가 발생 하면, 자동으로 감지하여 수 분 이내에 스탠바이 인스턴스로 Failover 하게 된다. 장애복구 시간에 민감한 서비스라면, 반드시 사용해야한다. 비용은 싱글 구성에 비해서 하나의 인스턴스가 추가되는것이기 때문에, 2배의 비용을 지불하게 된다.

 

RDS RR 

읽기 용도의 동일한 DB를 여러개 생성해서, 읽기 용도에 부하 분산을 할 수 있다. 마스터 DB에 부하가 생겼을 경우에 RR 서비스를 활용해서 읽기에 대한 성능을 개선할 수 있다. 실제 어플리케이션에서 사용했을경우, 마스터 용 End-point와 RR의 End-point가 별도로 제공되어 이를 구분에서 DB 설정을 해야한다. 

 

AWS 데이터베이스 서비스 - DynamoDB

Amazon DynamoDB

관계형 DB보다 다양한 방식으로 빠르게 바뀌는 대량의 비정형 데이터를 처리할 수 있는 장점을 가지고 있다.

3개의 리전에 분산되어있어, 하나의 리전에 장애가 생겼을 경우에 빠르게 장애 대응이 가능하다.

 

AWS 데이터베이스 서비스 - Elasticache

Amazon Elasticache

 

대표적으로 redis, Memcached라는 캐시 엔진 서비스하고 in-memory Cache DB는 디스크의 스토리지에 직접 접근하지 않고, 메모리로 모든 처리를 하기 때문에 데이터의 저장이나 검색속도가 매우 빠른 특징을 가고있다. 메모리의 크기까지만 저장을 할 수 있고, 메모리만 저장이 되기 때문에 서버에 전원 공급이 중단이 되면 데이터는 소멸된다는 특징을 가지고 있다.

 

Elasticache를 사용하면 redis, Memcached를 따로 설치안해도 제공이 되기 때문에 쉽게 사용이 가능하고, 클러스터 모드를 제공기 때문에 클러스터 구성도 쉽게 구성이 가능하다. 따라서 DB설치나 DB엔진의 업데이트 등 관리요소를 줄일 수 있어서 사용편의성이 좋은 서비스 이다.

 

가장 많이 사용되는 인 메모리 엔진은 redis엔진이고, 3가지 레디스 클러스터 형태를 사용이 가능하다.

 

위 세가지 모두 redis 클러스터라고 부르고, node를 한개만 사용할지, 여러개를 사용할지 / 엘라스티 캐시에서 제공하는 클러스터 모드를 사용할지, 안할지에 따라 구분이 가능하다.

 

1. 싱글클러스터. 1개의 노드를 사용하기때문에 복제본은 제공하지 않지만 데이터 파티셔닝은 가능하다. 확장시에는 노드의 타입을 변경하는 형태의 수직적 확장이 가능하고, Mulit-AZ기능은 제공하지 않기 때문에 가용성 확보가 필요할 경우 싱글클러스트는 피해야한다.

 

2. Elasicache에서 제공하는 클러스터 모드를 비활성화한 레디스 클러스터, 최대 5개까지 복제본을 생성 할 수 있지만, 데이터 파티셔닝은 제공하지 않는다. 확장을 위해 노드의 타입을 변경하는 수직확장이 필요하고, 여러개의 노드를 사용할 수 있기때문에 multi-AZ 기능 사용가능

 

3. Elasicache에서 제공하는 클러스터 모드를 활성화한 레디스 클러스터, 복제본, 데이터파티셔닝, multi-AZ 모두 제공하며, 샤딩이 가능하기때문에 샤드에 추가 삭제를 통해 수평확장이 가능한 형태이다.