정환타 개발노트

2. Database - Replication( + AWS Read Replica) 본문

Dev-Database/RDBMS

2. Database - Replication( + AWS Read Replica)

JungHwanTa 2020. 1. 19. 18:14

Replication

데이터베이스의 안정성과 관련된 기능중 Replication에 대해 공부를 하였다.

 

Replication은 여러가지 DB 서버가 있을 때, 각각의 서버가 동일한 데이터를 가지도록 하는 기술을 말한다.

(사실상 백업과 성능향상을 위해 DB를 말그대로 여러대의 서버에 '복제'하는 기술)

위의 기술을 통해 데이터 부하 분산, 백업보안에 관련된 문제를 해결할 수 있다.

 

Master And Slave

Replication과 관련된 핵심 키워드는 마스터(Master)와 슬레이브(Slave)이다.

마스터는 원본 데이터가 위치하는 곳을 말하며.

슬레이브는 그 원본(마스터)을 복제한 곳을 말한다.

 

마스터와 슬레이브를 구분은 읽기와 쓰기의 차이에서 확인 할 수 있다.

일반적으로 데이터베이스는 읽기(MySQL에서는 SELECT)와 쓰기(CREATE, UPDATE, DELETE)로 구분이 된다.

여기서, 읽기 과정은 데이터 자체에 영향을 주지 않지만 쓰기과정들은 데이터를 변형시키기 때문에 복제된 서버를 간에 

같은 형태를 유지하는 데 어려움을 줄 수 있다.

따라서, 보통은 한대의 마스터 서버에서 데이터 쓰기 작업을 하고 여러대의 슬레이브 서버에서 읽기 작업만을 수행하도록 하고 있다.

 

많이들 사용하는 클라우드 서비스인 AWS(Amazon Web Service)에서는 바로 위의 작업을 할 수 있는 Read Replica라는 기능을 제공한다.

 

Read Replica(읽기 복제본)

Read Replica는 이름에서도 알 수 있듯이, 읽기 전용 복제본을 생성할 수 있는 서비스를 말한다.

 

위에서 우리는 마스터와 슬레이브에 대한 개념을 알았다. AWS에서 RDS를 생성하게 되면 생성한 DB insatance는 마스터 서버가 된다.

이 서버를 기준으로 읽기 전용으로 슬레이브 서버를 생성하는 것이 바로 Read Replica라고 할 수 있다.

 

이 기술은 이전 포스트에서 설명한 Scale-out 즉, 트래픽의 분산 처리를 위한 기술이라고 보면 된다. 

 

Read Replica 생성

1. [서비스] -> [RDS] -> [데이터베이스]에서 생성된 DB instance를 선택한후 [작업] -> [읽기 복제본 생성]을 클릭한다.

(db 인스턴스가 없다면 생성해야 한다. 아래 링크 참고)

2020/01/17 - [Dev-AWS] - [AWS 웹서비스 구축] 5. DB서버 구축(RDS 생성 with VPC)

 

 

 

2. [인스턴스 사양]에서 생성될 인스턴스의 크기를 선택하고, 다중 가용영역에 걸처 배포하는지에 대한 여부를 선택한다.

스토리지 유형은 기본 SSD를 선택한다.

 

 

[네트워크 및 보안]에서는 복제본의 대상 리전을 서울로 선택하였고, DB서브넷과 가용영역, 퍼블릭 엑세스 가능여부, VPC 보안 그룹은 기존의 인스턴스와 동일하게 설정하였다.

 

 

[암호화]는 퍼블릭 엑세스를 차단하였기에 비활성화를 해주었으며, 식별자는 슬레이브 인스턴스를 명시하기 위해 작성하였다.

 

 

나머지 부분은 Default 설정을 유지한 채로 생성하였다.

생성된 인스턴스의 역할은 복제본으로 생성되었으며, 기존의 인스턴스는 마스터로 바뀐 것을 확인할 수 있다.

 

 

3. 복제본의 기능으로는 승격이 있다.

승격은 기존 읽기 전용 복제본을 마스터로 승격시키는 기능이다. 그러나 이 기능을 사용하면 기존 인스턴스와 관계는 사라진다.

 

 

Comments