AWS

RDS란? , RDS 읽기 전용 복제본과 다중 AZ 의 차이

박현국 2024. 10. 15. 01:07
RDS (Relational Database Service)
  • SQL 쿼리 언어로 사용하는 RDBMS 
  • 클라우드에서 RDS 서비스인 DB를 만들 수 있으며, AWS에서 관리된다.
  • MySQL, MariaDB, Oracle, Microsoft SQL Server 와 IMB DB2 및 AWS 독점 DB인 Aurora가 있다.
  • 우리가 EC2 인스턴스 위에 자체 데이터베이스 서버를 구축하는 대신 RDS 를 사용하는 이유는 무엇일까?
    --> RDS 는 관리형 서비스이기 때문에, AWS 는 단순히 DB를 제공하는 것 외에도 많은 서비스를 제공한다.
    1. DB 에 대한 프로비저닝이 완전히 자동화 되어 있다.
    2. 기본 운영 체제 패치도 마찬가지.
    3. 지속적인 백업이 이루어지고 있으며, 특정 타임스탬프로 복원할 수 있다. (특정 시점 복원)
    4. 모니터링 대쉬보드를 사용하여 DB 성능을 볼 수도 있다.
    5. 읽기 복제본을 가질 수 있다. ( 읽기 전용 복제본을 추가하여 수평적 확장 기능)
    6. 읽기 성능을 향상 시키기 위해 다중 가용 영역 (Multi-AZ) 을 설정할 수 있다.
    7. 업그레이드를 위한 유지보수 창이 있고, 인스턴스 유형을 늘려 수직적으로 확장
    8. 스토리지는 EBS의 지원을 받는다. -->> GP2 볼륨 또는 IO1 이 무엇인지 이미 알고 있는 것이다.

  • 유일하게 할 수 없는 것은 RDS 인스턴스에 SSH 를 적용할 수 없다는 것이다. 
    -> 이는 관리형 서비스이기 떄문에 AWS는 우리에게 서비스를 제공하지만, 기저 EC2 인스턴스에 액세스할 수 없다.
    그러나 EC2 자체 DB 엔진을 배포하려는 경우 자체적으로 설정해야 하는 모든 항목을 갖기 때문에 그리 나쁘지만도 않다.
  • 만약, RDS DB를 생성할 때 원하는 스토리지 용량을 지정하였을때, 여유 공간이 부족하다면, RDS 스토리지 오토스케일링을 통해, RDS 는 이를 감지하고, 스토리지를 자동으로 스케일업한다.
    -> 따라서 스토리지를 늘리기 위해 DB를 중단하는 등의 작업을 할 필요가 없다.
    -> 즉, 이는 애플리케이션이 RDS DB 에 대해 많은 I/O를 수행한 다음 일부 임계값을 사용하여 자동으로 확인한다.
    -> 그러면 스토리지가 자동으로 스케일링될 수 있다.
    --> 이를 위해서는 최대 저장 임계값을 설정하여, 스토리지 확장을 원하는 최대 한도를 지정하는 것이다.

RDS 의 ASG 예시

 

 

 

RDS 읽기 전용 복제본과 다중 AZ 의 차이와 사례

  • 읽기 전용 복제본 = 읽기를 스케일링한다.
    ex) 애플리케이션과 RDS DB 인스턴스가 있다고 하면, 애플리케이션은 DB 인스턴스에 대해 I/O 를 수행한다. 하지만 주된 DB 인스턴스가 너무 많은 요청을 받아서 충분히 스케일링할 수 가 없기에, 읽기를 스케일링한다고 해보자
    -> 이때 읽기 전용 복제본을 최대 15개까지 생성할 수 있으며, 이들은 동일한 가용 영역 또는 가용영역이나 리전을 걸쳐서 생성될 수 있다
    1. 첫번째 옵션 : 주된 RDS , 읽기전용복제본 사이에 비동기식(읽기가 일관적으로 유지되는 것) 복제가 발생한다 -> 가령 애플리케이션에서 데이터를 복제하기 전 읽기 전용 복제본을 읽어 들이면 모든 데이터를 얻을 수 있다는 것.
       ->> 이와 같은 비동기식 복제는 복제본이 읽기 스케일링에 적합할 수 있으나, 이를 DB로 승격시켜 이용할 수 있다. 즉, 이들 복제본 중 하나를 DB로 사용하고자 한다면 그에 대한 권한을 획득하면 이를 DB로 승켝시킬 수 있다.

읽기 전용 복제본 예시

 

 

 

다중 AZ

  • 다중 AZ 는 주로 재해 복구에 사용
  • 읽기 쓰기를 수행하는 마스터 DB 인스턴스에 동기식으로 다른 AZ 에 스탠바이 인스턴스로 복제한다.
  • 즉, 마스터 DB의 모든 변화를 동기적으로 복제하여 마스터의 변경사항이 스탠바이 인스턴스에도 그대로 복제된다는 것을 의미.
    -> 하나의 DNS 를 갖고 애플리케이션 또한 하나의 DNS로 통신하며, 마스터가 문제가 생길때에도 스탠바이 DB 가 자동으로 장애조치를 해준다. -> 하나의 DNS 를 갖기 때문  ->> 이를 통해 가용성을 높일 수 있기 때문에 다중 AZ라고 한다.

다중 AZ 예시

 

  • 단일 AZ 에서 다중 AZ로 RDS DB 전환할때 이 작업은 다운타임이 전혀 없다. 즉, DB를 중지할 필요가 없다. -> DB 수정을 클릭하고 다중 AZ 기능을 활성화시키기만 하면 된다.
    --> 이를 통해 RDS DB 인스턴스는 동기식 복제본인 스탠바이 DB를 확보한다.
  • 내부적으로 RDS 가 자동으로 스냅샷을 생성한다. 이 스냅샷은 새로운 DB에 복원된다. 스탠바이 DB가 복원되면 두 DB간 동기화가 설정되므로 스탠바이 DB가 메인 RDS DB 내용을 모두 수용하여 다중 AZ 설정 상태가 된다.

단일 AZ -> 다중 AZ 이동