AWS 에서 Aurora(오로라) RDS DB 를 이중화하는 방법

세차왕·2020년 11월 23일
2

안녕하세요. 세차왕 도미닉입니다.

오늘은 AWS 에 RDS 에서 오로라를 이용해 데이터베이스를 이중화하는 방법을 공유하겠습니다.

이중화 방안

현재 쓰기 역할로 인스턴스가 하나 생성되있는 것을 볼 수 있다.

기본적으로 오로라를 생성하면 하나의 인스턴스가 생성된다.

이 오로라에 인스턴스는 내부적으로 아래 그림과 같이 구성된다.

여러 인스턴스에 데이터들을 분산해서 관리하기 때문에 아래 그림처럼 하나의 EC2 에 DB 를 설치하는 것보다 안정적이다.

EC2 자체에 문제가 생기거나 MySQL 에 문제가 생기면 바로 장애가 발생할 수 있기 때문이다.

오로라 인스턴스로 조금 더 안정적이기는 하나 이러한 오로라 인스턴스도 문제가 발생할 수 있을 것이다.

오로라 클러스터에 read replica (읽기만 하는 인스턴스)를 추가해서 아래 그림처럼 이중화를 할 수 있다.

위 그림에서 둘 중 하나의 인스턴스에 문제가 발생한다면 장애가 생기지 않고 다른 쪽 인스턴스가 문제가 발생한 인스턴스의 역할을 같이 수행하게 된다.

AWS Aurora Primary Instance(쓰기 역할) 가 문제가 생겨서 다운된다면 AWS Aurora Replica(읽기 역할) 가 쓰기 역할을 수행한다.

반대로 AWS Aurora Replica(읽기 역할) 이 다운되면 AWS Aurora Primary Instance(쓰기 역할) 이 읽기 역할까지 수행하게 될 것이다.

읽기 역할 인스턴스 추가

읽기 추가를 클릭한다.

DB 인스턴스 식별자를 read-instance 로 입력하고 퍼블릭 액세스 가능을 예로 바꾼 뒤에 add a reader 를 클릭해서 읽기 인스턴스를 추가한다.

읽기 인스턴스를 확인할 수 있다.

read-instance 가 생성 중이니 생성이 완료되면 사용할 수 있다.

장애 테스트(선택)

위에 글을 따라했다면 DB 이중화가 완료되었다.

이 부분은 눈으로만 보셔도 된다.

실제로 따라해보고 싶은 분은 따라해보신 뒤에 읽기 인스턴스를 위에 글을 보고 다시 추가해서 이중화를 구성하기 바란다.

쓰기 역할인 database-1-instance-1 에 문제가 발생한다면 read-instance 가 쓰기 역할을 수행할지 어떻게 확인할 수 있을까?

예제를 잘 따라했다면 위와 같이 쓰기 인스턴스 하나, 읽기 인스턴스 하나가 있을 것이다.

여기서 쓰기 역할을 수행하는 database-1-instance-1 을 삭제해보면 읽기 인스턴스가 쓰기 역할로 바뀌는지 확인할 수 있다.

delete me 를 입력하면 삭제 버튼이 활성화된다.

삭제하면 아래와 같이 읽기 인스턴스가 쓰기 역할로 바뀌는 것을 볼 수 있다.

쓰기 엔드포인트로 접속해 데이터를 추가해도 쓰기가 잘 되는 것을 확인할 수 있었다.

오로라를 처음 만들었을 때와 같은 구성이 되었다.

다시 위에서 알려준 대로 읽기 인스턴스를 추가하면 이중화가 될 것이다.

위에 과정으로 데이터베이스 이중화가 제대로 된 것을 확인할 수 있었다.

profile
세차왕 기술블로그입니다.

0개의 댓글