You are a developer, not a coder.

RDS를 이용하여 DB 서버 다중화 본문

AWS

RDS를 이용하여 DB 서버 다중화

Mattmk 2020. 5. 11. 14:39
SMALL

1. RDS의 기능,제한 및 다중화가 필요한 이유

AWS에서 RDB를 구성하는 방법은 크게 2가지로 나뉜다.

  • EC2 인스턴스에 RDBMS를 설치하여 사용 하는 방법
  • 관리형 서비스인 아마존 RDS를 이용하는 방법

전자는 OS와 RDBMS를 자유롭게 선택하고 설정할 수 있는 반면에 단점으로는 OS와 DB환경을 사용자가 직접 관리하지 않으면 안된다는 점이 있다.

 

후자인 경우 패치 적용과 백업이 자동화되어 있기 때문에 운영의 번거로움이 줄어든다는 장점이 있으나 DB운영에는 제약사항이 있어, 이용 목적에 맞는지 검토가 필요하다.

 

RDS의 주요 기능 및 제한은 다음과 같다.

내용
자동 유지보수 백업 자동적으로 백업이 작성되기 때문에 장애가 발생하더라도 보통 5분 이내에 복구할 수 있다.
마이너 버전업이 자동적으로 적용된다.
패치 마이너 버전업이 자동적으로 적용된다.
제한 OS 접속 OS 사용자로 로그인할 수 없기 때문에 프로그램이나 도구를 설치할 수 없다. 로그, 성능 관리 인터페이스는 제공된다.
DB 관리자 사용자 이용 관리자 권한을 지닌 사용자로 로그인할 수 없다. 파라미터 변경과 일부 관리 기능을 위한 인터페이스는 제공한다.
멀티-AZ 이외의 다중화 기능 RDBMS나 서드파티 복제 소프트웨어를 이용한 고가용성 구성이나 오라클 RAC 등의 다중화 기능을 이용할 수 없다.
메인터넌스 주 1회, 메인터넌스를 위해 중지된다.

 

DB 서버의 다중화는 'Active-Standby (활성-대기)'구성을 선택하자.

DB 서버는 데이터의 일관성을 유지하고자 실행 서버를 시스템 안에서 하나로 구성하는 것이 일반적이다.

RDS의 Multi-AZ 기능을 사용하면 활성 DB 서버 (Master)의 데이터를 대기 서버 (Standby)에 동기화하는 복제 중복 구성을 쉽게 구축할 수 있다.

 

2. 멀티-AZ 기능을 사용한 RDS의 설정 방법

  • 매니지먼트 콘솔의 RDS 설정 화면에서 DB 서브넷 그룹을 작성
  • DB 서브넷은 두 가용 영역 (AZ)에 각각 서브넷을 만들고 이것을 그룹화해서 만든다
  • 두 AZ를 사용해 서브넷을 만드는 이유는 하나의 AZ가 예상치 못한 재해로 멈추더라도 또 다른 AZ에 설치된 서브넷에서 서버가 계속 동작하도록 하기 위함이다.
  • RDS for MySQL의 인스턴스를 작성한다. 이때 Mulit-AZ를 이용하는 옵션을 선택하고, DB 서브넷 그룹을 지정한다.

▶ MySQL은 웹 애플리케이션과 함께 사용되는 경우가 많아 AWS에서 사용하기 위한 기술 정보도 풍부하다.

 

서브넷 그룹의 개요

마스터와 스탠바이가 동기 복제 되어 있기 때문에 마스터에 장애가 발생해도 데이터가 손실되지 않는다.

하지만, 단점으로는 마스터와 스탠바이 2대가 동시에 작동하기 때문에 이중화 구성을 하지 않는 경우의 약 2배 비용이 발생 된다.

마스터 DB 서버에 장애가 발생하면 스탠바이가 마스터로 승격이되고, 기존 마스터 서버가 사용하던 서브넷에 스탠바이 서버가 새롭게 만들어 진다. 이러한 일련의 작업은 자동으로 이루어지기 때문에 DB 서버에 대한 별도의 작업은 필요 없다.

엔드포인트는 DNS가 새로 만들어진 마스터 서버로 자동으로 연결되기 때문에 변경은 필요 없지만 DB 접속은 장애 복구 이후에 자동으로 연결되도록 사전에 설정해 주어야 한다.

 

3. RDS 사용시 유의사항

1. 적절한 스냅샷을 생성

RDS는 자동 백업과 수동 스냅샷 백업 방법 총 2가지를 지원한다.

자동백업은 간편하지만 데이터 보존 기간에 제한이 있다. 기본 설정값은 1일, 최대 35일 이다.

시스템에 대한 백업을 영구적으로 저장하려면 스냅샷이 더 적합하다. 대규모 시스템의 유지보수 작업을 수행하는 경우에 스냅샷 백업이 적합하다.

 

2. AWS에 의한 메인터넌스

RDS는 몇 달에 한번꼴로 마이너 버전업이 자동으로 실행된다. 이에따라 약 30분간 정지된다.

옵션인 마이너 버전 자동 업그레이드를 NO로 설정하면 마이너 버전업이 수행되지 않는다.

하지만, 취약점 대응 등에 의한 강제 업그레이드가 이루어 지는 경우가 있다.

이때, Multi-AZ를 이용하는 경우, 스탠바이가 먼저 메인터넌스가 된후, 장애 복구 기능에 의해 새로운 마스터가 되고

원래 마스터는 메인터넌스된 후에 새로운 스탠바이가 된다.

매니지먼트 콘솔에서 RDS 인스턴스의 메인터넌스 윈도우로 메인터넌스를 실시하는 시간대를 제한할 수 있다.

 

3. Multi-AZ를 사용 -> 데이터 갱신 처리 시간↑

마스터에 업데이트한 데이터를 스탠바이에 동기화시키는 처리가 끝날 때까지 마스터는 다음의 처리를 실시할 수 없다.

이용 환경이나 처리 내용에 따라 다르긴 하겠지만, 대체적으로 20~50% 정도 업데이트 처리 시간이 길어진다.

단, 영향 받는것은 업데이트 처리뿐이므로 기업 웹사이트처럼 참조 비율이 많은 경우는 그다지 문제가 되지 않는다.

 

메인터넌스(Maintenance) 란?

- Maintenance는 유지,보수,관리의 뜻으로
기업체, 관공서, 학교 등에서 사용 중인 컴퓨터, 프린터, 복합기, 모니터, DID 등 IT 제품의 하드웨어와 소프트웨어에 대해 장애 예방활동 및 장애 시 신속 대응으로 업무 손실을 최소화하고 제품의 활용 가치를 극대화하는 IT 유지보수 서비스이다.

LIST
Comments