본문 바로가기

AWS

[AWS] RDS를 이용하여 DB 서버 이중화 하기.

728x90
반응형

AWS에서 제공해주는 RDS를 통해 DB서버를 이중화 하는 방법을 알아보자.

AWS에 RDS를 구성하는 방법은 크게 두가지이다. EC2인스턴스에 RDBMS를 설치하는 방법과, 관리형 서비스인 아마존 RDS를 이용하는 방법이다.

전자는 직접 DB서버를 설치 및 관리하는 것으로 local 서버 환경을 AWS의 가상환경으로 옮긴 것 이외에는 크게 차이점이 없다. 그러므로 OS와 RDBMS를 자유롭게 선택하고 설정할 수 있는 장점이 있다. 하지만 OS와 DB환경을 사용자가 직접 관리해줘야 하는 부담이 있다.

후자는 패치 적용과 백업이 자동화 되어 있기 때문에 운영상에 큰 도움을 받을 수 있다. 가능한 한 아마존 RDS를 사용하는 편이 설정과 운영에 들어가는 수고를 줄여줄 수 있지만 DB운영에는 제약이 있다.

무엇이 더 좋은 방법이라고 말하기는 어렵다. 자신이 구축하는 서비스에 맞는 방법을 선택하는 것이 더 중요하다고 생각한다.


[RDS의 주요 자동 메인터넌스 기능 및 제한]


- 자동 유지보수
1> 백업 : 자동으로 백업이 작성되기 때문에 장애가 발생하더라도 보통 5분 이내에 복구할 수 있다.
2> 패치 : 마이너 버전업이 자동으로 적용된다.

- 제한 사항
1> OS 접속 : OS 사용자로 로그인할 수 없기 때문에 프로그램이나 도구를 설치할 수 없다. 로그, 성능 관리 인터페이스는 아마존에서 별도로 제공한다.
2> DB 관리자 사용 인증 : 관리자 권한을 지닌 사용자로 로그인할 수 없다. 파리미터 변경과 일부 관리 기능을 위한 인터페이스는 제공된다.
3> 멀티 -AZ 이외의 다중화 기능 : RDBMS나 서드파티 복제 소프트웨어를 이용한 HA 구성이나 오라클 RAC 등의 다중화 기능을 이요할 수 없다.
4> 메인터넌스 : 주 1회, 메인터넌스를 위해 중지되어야 한다.


[AWS RDS 알아보기]

RDS엔진으로 오라클, SQL Server, MySQL, PostgreSQL, MariaDB 그리고 오로라를 선택할 수 있다. 오로라는 AWS에서 만든 MySQL 5.6 호환 RDS엔진이다.

[DB 서버 이중화]

DB 서버의 다중화는 'Active - Standby(활성 - 대기)' 구성을 통해 알아보자. DB 서버는 데이터의 일관성을 유지하고자 실행 서버를 시스템 안에서 하나로 구성하는 것이 일반적이다. RDS의 멀티 - AZ(Multi-AZ) 기능을 사용하면 활성 DB 서버(마스터)의 데이터를 대기 서버(스탠바이)에 동기화하는 복제 중복 구성을 쉽게 구축할 수 있다.

멀티 -AZ 기능을 사용한 RDS 설정 방법은 아래와 같다.

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

다음은 RDS의 인스턴스를 작성한다. 이때 멀티 -AZ를 이용하는 옵션을 선택하고 방금 만든 DB 서브넷 그룹을 지정한다. 이것으로 마스터와 스탠바이 2대 구성의 RDS 인스턴스가 만들어졌다.
master user가 자동으로 생성됨으로 이것을 통해 애플리케이션 사용자들 만들거나 객체 그리고 데이터를 관리할 수 있다.
마스터와 스탠바이가 동기 복제 되기 때문에 마스터에 장애가 발생해도 데이터의 손실 없이 사용할 수 있다. 단, 두대의 인스턴스가 가동되는 만큼 2중화를 구성하지 않을 때 보다 비용은 2대 발생한다.

마스터 DB 서버에 장애 발생시 스탠바이가 마스터로 가동된다. 그리고 기존 마스터 서버가 사용하던 서브넷에 스탠바이 서버가 새롭게 만들어진다. 이러한 작업은 자동으로 이루어짐으로 DB서버에 별도의 작업을 할 필요는 없다. 엔드포인트는 DNS가 새로 만들어진 마스터 서버로 자동으로 연결되기 때문에 변경은 필요 없지만 DB접속은 장애 복구 이후에 자동으로 연결되도록 사전에 설정 해주어야 한다.


[RDS 사용시 유의사항]

첫번째, 스냅샷 생성하기.
초기 설정이 완료된 시점에 스냅샷을 생성해 두는 것이 좋다.
RDS는 자동 백업과 수동 스냅샷 백업 방법을 지원한다.
자동 백업은 간편하지만 데이터 보존 기간에 제한이 있다.
기본 설정값은 1일, 최대로 35일을 보존 할 수 있도록 지원한다.
시스템에 대한 백업을 영구적으로 저장하고 싶으면 수동 스냅샷을 사용하는 것이 더욱 적합한 방법이다.
대규모 시스템의 유지보수 작업을 수행하는 경우에도 복구용 스냅샷을 만드는 것을 추천한다.

두번째, AWS에 대한 메인터넌스.
RDS는 몇 달에 한번 꼴로 마이너 버전업이 자동 실행되어 약 30분간 정지된다.
마이너 버전없은 옵션값으로 설정할 수 있어 NO로 설정할 수 있지만 최약점 대응 등에 대한 강제 업그레이드가 이루어지는 경우가 있다.
이때 멀티 AZ를 이용하는 경우는 스탠바이가 먼저 메인터넌스된 후, 장애 복구 기능에 의해 새로운 마스터가 되고 원래 마스터는 메인터넌스된 후에 새로운 스탠바이가 된다.
매니지먼트 콘솔에서 RDS 인스턴스의 메인터넌스 윈도우로 메인터넌스를 실시하는 시간대를 제한할 수 있다.

세번째, 멀티-AZ를 이용하면 데이터 갱신 처리에 드는 시간이 길어진다.
마스터에 업데이트한 데이터를 스탠바이에 동기화시키는 처리가 끝날 때까지 마스터는 다음의 처리를 실시할 수 없습니다. 이용 환경이나 처리 내용에 따라 다르지만 20%~50% 정도의 업데이트 시간이 길어진다고 한다.
영향받는 것은 업데이트 처리뿐이므로 기업 웹사이트처럼 참조 비율이 많은 경우는 크게 문제되지 않는다.


[출처 : 실전 AWS워크북]

728x90
반응형