안녕하세요. 오랜만에 AWS 서비스로 찾아뵈었습니다.
오늘은 AWS의 데이터베이스 서비스 중 하나인 Amazon RDS(Relational Database System)에 대해서 알아보겠습니다.
온프레미스 환경에서 Oracle, MySQL이 대중적으로 사용되는만큼 AWS Database에서 데이터베이스 엔진들을 관리하기 위한 목적으로 RDS도 아주 많이사용되고 있습니다.
RDS가 어떤 서비스인지, 사용사례는 어떤것이 있는지, 그리고 사용하면 유용한 옵션들도 함께 소개해드리도록 하겠습니다.
Amazon RDS란?
Amazon RDS (Amazon Relational Database Service)는 아마존 웹 서비스(AWS)의 클라우드 기반 관계형 데이터베이스 서비스입니다.
RDS는 사용자가 관리할 필요 없이 쉽게 관계형 데이터베이스를 설정, 운영 및 확장할 수 있도록 지원합니다.
다양한 종류의 데이터베이스 엔진(MySQL, Oracle, Aurora, PostgrSQL, MariaDB, MSSQL 등)을 제공하여 필요에 맞게 선택할 수 있습니다.
Amazon RDS의 사용사례
Amazon RDS는 다양한 상황에서 사용하기 좋은 클라우드 기반 관계형 데이터베이스 서비스입니다.
- 웹 애플리케이션 또는 모바일 앱 개발 시 데이터베이스 운영 및 관리 최소화
- 다중 가용 영역에 데이터베이스 복제본을 생성 및 장애 발생 시 자동 스위칭
- 데이터베이스 읽기 작업 분산이 필요할 경우
- 애플리케이션의 데이터베이스 처리 능력과 스토리지의 유연한 확장이 필요할 때
- AWS 보안 기능과 결합하여 데이터베이스 인스턴스의 안전한 운영이 필요할 때
- 데이터베이스의 백업 및 복원을 자동화하고 싶을 때
Amazon RDS는 다양한 데이터베이스 엔진과 확장 옵션을 제공하여 다양한 상황에서 유연하게 사용할 수 있습니다.
개발자들은 애플리케이션의 요구 사항과 데이터베이스의 특성을 고려하여 적절한 데이터베이스 엔진과 RDS 옵션을 선택하면 됩니다.
Amazon RDS Multi Availability Zone 배포
Amazon RDS Multi AZ는 고가용성을 향상시키기 위해 사용되는 기능입니다.
이 기능을 활성화하게 되면 Amazon RDS는 주 데이터베이스 인스턴스의 자동 복제본을 다른 가용 영역에 생성합니다.
이렇게 생성된 복제본은 주 데이터베이스 인스턴스와 동기적으로 복제되므로 주 데이터베이스에 장애가 발생하면 자동으로 읽기/쓰기가 가능한 복제본으로 스위칭됩니다.
Amazon RDS Multi AZ 구성으로 얻을 수 있는 점은 다음과 같습니다.
- 고가용성보장
- 자동복제
- 읽기 전용 복제본
- 자동백업
- 가용 영역 간 격리
Multi-AZ 배포는 Amazon RDS의 MySQL, PostgreSQL, Oracle, MariaDB 및 Microsoft SQL Server 엔진에서 지원됩니다.
Multi-AZ 배포를 선택하면 시스템 관리자가 수동으로 복제본을 구성하고 관리하는 것보다 더 높은 수준의 고가용성을 쉽게 구현할 수 있습니다.
이로 인해 애플리케이션에 높은 가용성과 데이터 손실 방지 기능을 제공할 수 있습니다.
Amazon RDS Read Replica
Amazon RDS Read Replica는 RDS에서 제공하는 읽기 전용 복제 기능입니다.
이 기능을 사용하면 데이터베이스 인스턴스로부터 읽기 전용 복제본을 생성하여 읽기 작업을 분산시킬 수 있습니다.
읽기 전용 복제본은 필요에 따라 생성, 수정 또는 삭제할 수 있고 필요한만큼 여러개 생성하여 어플리케이션의 성능과 가용성을 향상시킬 수 있습니다.
Read Replica로 얻을 수 있는 특징과 이점은 다음과 같습니다.
- 성능 향상
- 읽기 확장성
- 백업 용도
- 빠른 응답시간
- 가용성 향상
중요한 점은 Read Replica는 단순히 읽는 작업에 대해서만 지원을 하기 때문에 쓰기 작업은 주 데이터베이스에서만 처리되어집니다.
Amazon RDS mysqldump 백업 시 유의사항
간혹 Amazon RDS MySQL 사용 시 mysqldump 유틸리티를 통해 Aurora DB로 마이그레이션 하는 경우가 있습니다.
이 경우 mysqldump 유틸리티 사용 후 반드시 Amazon S3에 Dump 파일을 업로드해주고 업로드 한 dump 파일을 Aurora를 통해 복원하는 절차가 필요합니다.
단, mysqldump 유틸리티로 사용하여 RDS와 Aurora 상호 백업하는 것은 최대 1GB정도의 소규모 데이터베이스에 적절한 방안입니다.
자세한 내용은 여기를 참고해주세요.
[대부분의 고객은 1시간 이내에 Aurora로의 마이그레이션을 완료하지만, 이 기간은 형식과 데이터 세트의 크기에 따라 달라집니다. 자세한 내용은 MySQL 데이터베이스를 Amazon Aurora로 마이그레이션하는 모범 사례를 참조하세요.]
그리고 MySQL 사용시 Aurora와 RDS는 서로 호환되기 때문에 스냅샷 데이터를 통해 Aurora에서 RDS, RDS에서 Aurora로 복원하여도 정상적으로 복원할 수 있습니다.
다음시간에는 Amazon RDS에서 제공하는 옵션 중 Read Replica에 대해 Deep Dive 해보도록 하겠습니다.