반응형

RDS 읽기 전용 복제본

RDS 읽기 전용 복제본(Read Replica)은 읽기 성능을 스케일링하는 역할 

애플리케이션이 RDS 데이터베이스 인스턴스에 대해 읽기와 쓰기 작업을 수행할 때, 주된 데이터베이스 인스턴스가 너무 많은 요청을 받아 성능 저하가 발생한다고 가정할때, RDS는 읽기 전용 복제본을 활용하여 읽기 작업을 분산한다.

주요 특징

  • 최대 15개의 읽기 전용 복제본 생성 가능
  • 동일한 가용 영역 또는 여러 리전의 걸쳐 생성 가능
  • 주 RDS 인스턴스와 복제본 사이에 비동기식 복제 발생

비동기식 복제의 의미

읽기의 일관성 유지 하는 것. 예를 들어 읽기 전용 복제본을 읽어들이면 모든 데이터를 얻을 수 있음 

읽기 전용 복제본의 활용

1. 읽기 스케일링 : 주된 용도, 읽기 부하 분산

2. 데이터베이스로 승격: 필요시 복제본을 독립적인 데이터베이스로 승격하여 쓸 수 있음. 복제 매커니즘에서 벗어나고 독립적인 인스턴스로 동작하게 됨

사용 시 주의사항

읽기 전용 복제본을 사용하려면, 애플리케이션에서 연결 설정을 업데이트해야 하며, RDS 클러스터 상의 모든 읽기 전용 복제본 목록을 활용하여 연결을 최적화할 수 있음

이러한 RDS의 읽기 전용 복제본 읽기 스케일링을 통해 애플리케이션 성능을 최적화하는데 유용하며, 필요 시 데이터베이스 인스턴스로 승격하여 더욱 유연하게 사용할 수 있음

 

 

읽기 전용 복제본: 실제 사용 사례

평균적인 로드를 감당하고 있는 프로덕션 데이터베이스 존재.

이 데이터베이스는 메인 RDS 데이터베이스 인스턴스에서 읽기와 쓰기 작업을 수행하고 있음

 

새로운 팀이 해당 데이터를 기반으로 보고서와 분석을 실시하고자 하는데 만약 이 보고 어플리케이션메인 RDS 데이터베이스에 연결하면 다음과 같은 문제가 발생할 수 있음 

  • 데이터베이스 오버로드 발생
  • 기존 프로덕션 애플리케이션의 속도 저하

 

읽기 전용 복제본 활용

  1. 새로운 워크로드를 위한 읽기 전용 복제본 생성
  2. 메인 RDS DB 인스턴스와 읽기 전용 복제본 간이 비동기식 복제가 발생
  3. 보고 애플리케이션은 생성된 읽기 전용 복제본에서 읽기 작업과 분석을 실행

 

결과로 프로덕션 애플리케이션은 전혀 영향을 받지 않으며 새로운 팀은 필요한 데이터 분석을 수행할 수 있다. 

 

주의사항

읽기 전용 복제본에선 SELECT 명령문만 사용 가능. SQL에서 읽기에 해당하는 키워드

데이터베이스를 변경하는 INSERT, UPDATE, DELETE 같은 키워드는 사용 불가

 

정리

이렇게 읽기 전용 복제본을 활용하면 기존 시스템에 영향을 주지 않으면서도 새로운 요구사항을 효과적으로 처리할 수 있다. 데이터 분석이나 보고서 생성과 같은 읽기 집약적인 작업에 특히 유용

 

RDS Read Replicas - Network Cost 

AWS에서는 일반적으로 하나의 가용 영역에서  다른 가용 영역으로 데이터가 이동할 때 비용이 발생

하지만 예외가 존재하며 이 예외는 보통 RDS 읽기 전용 복제본과 같은 관리형 서비스에서 나타남

동일 리전 내 복제: 무료 

RDS 읽기 전용 복제본이 원본과 다른 가용 영역에 있더라도 동일한 리전내에 있다면 비용이 발생하지 않음

예를 들어: 

  • 원본 RDS DB: us-east-1a
  • 읽기 전용 복제본: us-east-1b

인 경우, 비동기식 복제로 인한 트래픽이 하나의 az에서 다른 az로 이동하더라도 무료이다.

다른 리전 내 복제: 유료 

복제본이 서로 다른 리전에 존재하는 경우에는 달라진다. 

예를 들어: 

  • 원본 RDS DB:us-east-1
  • 읽기 전용 복제본: eu-west-1b

인 경우, RDS DB 인스턴스와 복제본이 여러 리전을 이동해야 하기 때문에 네트워크 복제에 대한 비용이 발생

 

 

RDS 다중 AZ Disater Recovery

RDS 다중 AZ는 재해 복구(Disater Recovery)를 위한 해결책

  • 마스터 데이터베이스 인스턴스: 주 가용 영역에서 읽기와 쓰기 수행
  • 스탠바이 인스턴스: 다른 가용 영역에 위치하며, 마스터와 동기식으로 복제

동작 방식

  1. 애플리케이션은 하나의 DNS 이름으로 마스터 DB와 통신
  2. 마스터 DB의 모든 변경 사항이 실시간으로 스탠바이 인스턴스에 복제
  3. 마스터에 문제가 생기면 자동으로 장애 조치(Failover)가 수행

 

주요 특징

  • `높은 가용성` : 전체 AZ 또는 네트워크 손실에 대비
  • `자동 장애 조치`: 수동 개입 없이 스탠바이가 새로운 마스터로 승격
  • 투명한 전환: 애플리케이션은 동일한 DNS 이름으로 계속 연결 

 

주의 사항

스탠바이 DB는 읽기나 쓰기, 스케일링 목적으로 사용되지 않음. 오직 장애 대비용으로 존재 

 

읽기 전용 복제본과의 관계

읽기 전용 복제본다중 AZ로 설정할 수 있다. 읽기 성능 향상과 재해 복구를 동시에 달성하고자 할때 유용한 옵션

RDS 다중 AZ는 고가용성을 보장하는 강력한 기능이며 중요한 프로덕션 데이터베이스를 운영할때 이 기능을 활용하면 예기치 못한 장애 상황에서도 서비스의 연속성을 유지할 수 있다. 다만 이 기능이 성능 향상이 아닌 재해 복구에 초점을 맞추고 있다는 점을 항상 기억해야 한다. 

 

 

RDS - From Single-Az to Multi-Az

무중단 전환이 가능하다! 

RDS 데이터베이스를 단일 AZ에서 다중 AZ로 전환할때 다운타임이 전혀 없다 

즉 데이터베이스를 중지할 필요가 없다는 뜻

전환 과정

  1. 데이터베이스 수정: 단순히 데이터베이스 설정에서 다중 AZ 기능활성화 
  2. 자동 복제: RDS가 자동으로 마스터 데이터베이스동기식 복제본스탠바이 데이터베이스를 설정

모든 과정은 백그라운드에서 자동으로 작업되기 때문에 사용자는 아무것도 할 필요 없다. 

 

기술적 내부 과정

RDS는 다음과 같은 과정을 통해 무중단 전환을 실헌함

  1. 스냅샷 생성: 기본 데이터베이스의 스냅샷을 자동으로 생성
  2. 스탠바이 복원: 생성된 스냅샷을 새로운 스탠바이 데이터베이스에 복원
  3. 동기화: 두 데이터베이스 간 동기화 설정
  4. 완료: 스탠바이 데이터베이스가 메인 RDS 데이터베이스의 모든 내용을 수용하여 다중 AZ 설정이 완료

 

주의 사항

전환 과정 중에 약간의 성능 저하가 있을 수 있음. 이는 백그라운드에서 진행되는 복제 작업 때문인데 일시적이며, 전환이 완료되면 정상화됨

결론

RDS의 단일 AZ에서 다중 AZ의 전환은 매우 간단하고 효율적이며 데이터베이스의 가용성을 크게 향상 시키면서도 운영 중단 없이 수행할 수 있어 유용

 

참고강의

https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8

 

AWS(Amazon Web Service) 입문자를 위한 강의 강의 | Sungmin Kim - 인프런

Sungmin Kim | 요즈음 회사 및 다양한 프로젝트에서 종종 사용되는 AWS 서비스들의 핵심 이론을 배우며 뿐만 아니라 함께 따라하는 실습을 통하여 AWS를 온전히 내것으로 만들자!, [사진] AWS 핵심 기술

www.inflearn.com

 

반응형