본문 바로가기

AWS

AWS에서 쓰는 데이터베이스 : Amazon RDS

728x90

AWS의 비관리형 관리형 서비스 비교

비관리형 : 사용자가 확장, 내결함성 및 가용성을 관리, 사용자가 원하는대로 개별적으로 프로비저닝됨

- 데이터베이스에 대한 모든 부분을 제어하고 싶다면 EC2 인스턴스에 관계형 데이터베이스 관리 시스템을 설치하면 됨 -> 사용자가 소유한 물리적 데이터 센터에서 데이터베이스를 실행하는 것과 매우 유사한 환경이 됨

관리형 : 일반적으로 확장, 내결함성 및 가용성이 서비스에 내장됨

 

관계형 데이터베이스 문제점

- 서버 유지 관리, 에너지 소비

- 소프트웨어 설치, 패치

- 데이터베이스 백업, 고가용성

- 확장성 제한

- 데이터 보안

- OS 설치, 패치

-> 여러가지 관리 작업을 수행해야함. 다른 업무에 투입해야할 리소스를 소모하고 전문지식을 필요로 한다

이를 해결하기 위한 게 Amazon RDS : 지속적인 관리 없이 관계형 데이터베이스를 설정, 운영, 확장하는 서비스

 

관리형 서비스 책임

사용자가 관리 : 애플리케이션 최적화

AWS가 관리 : OS 설치 및 패치 적용, 데이터베이스 SW 설치 및 패치 적용, 자동 백업 및 고가용성 관리, 리소스 확장, 전력 및 서버를 관리, 유지 관리 작업 수행

-> RDS로 운영 워크로드 및 관계형 데이터베이스와 관련된 비용이 줄어듦

 

 

Amazon RDS

- 기본적인 구성요소 : 데이터베이스 인스턴스(여러 사용자가 생성한 데이터베이스를 포함할 수 있는 격리된 데이터베이스 환경)

- 데이터베이스 인스턴스를 만들기 위해 실행할 데이터베이스 엔진을 지정해야함 ->  총 6개의 데이터베이스 엔진을 지원

 MySQL Amazon Aurora Microsoft SQL Server
PostgreSQL MariaDB Oracle

 

RDS 구현을 구성하는 방법

Amazon VPC에서 인스턴스 실행 가능

  • - VPC를 사용하면 가상 네트워크 환경을 완벽하게 제어 가능 -> 자체 IP주소 범위 선택, 서브넷 생성, 라우팅 및 액세스 제어 목록을 구성하여 데이터베이스에 대한 액세스 제어 가능
  • - RDS의 기능은 VPC에서 실행되는지 여부에 상관없이 동일함
  • - 일반적으로, 데이터베이스 인스턴스는 프라이빗 서브넷에서 격리되어 있음. 사용자가 선택한 애플리케이션에만 직접 액세스 가능

 

다중 AZ 배포를 통한 고가용성으로 구성

  • - RDS가 동일한 VPC 내의 다른 가용 영역에 데이터베이스 인스턴스의 대기 복사본을 자동으로 생성
  • - 데이터베이스 복사본이 생성된 후에(시드된 후에) 트랜잭션이 대기 복사본으로 동기식으로 복제됨
  • - 다중 AZ 배포에서 데이터베이스 인스턴스를 실행하면 계획된 시스템 유지관리 중에 가용성이 개선될 수 있음
  • - 가용 영역 내에서 중단이 발생할 경우, 데이터베이스 인스턴스 보호 가능
  • - 기본 데이터베이스 인스턴스에 장애가 발생하면 RDS가 자동으로 대기 데이터베이스 인스턴스를 온라인 상태로 전환하여 새로운 기본 인스턴스로 만듦
  • - 동기식 복제는 데이터 손실 가능성을 최소화함
  • - 애플리케이션은 DNS 도메인 엔드포인트를 사용하여 데이터베이스를 참조하므로 장애 조치를 위한 대기 본사본을 사용하기 위해 애플리케이션 코드를 변경할 필요가 없음

즉, RDS를 생성하면 하나의 동일한 RDS가 생성이 되는데 기본적으로 생성해둔 RDS에서 장애가 발생하면 자동으로 미리 생성되었던 RDS가 기본 RDS가 되어서 빨리 조치가 가능하다!의 의미

 

 

읽기 전용 복제본

MySQL, Amazon Aurora, PostgreSQL, MariaDB용 읽기 전용 복제본의 생성을 지원

- 원본 데이터베이스 인스턴스에 적용된 업데이트가 읽기 전용 복제본 인스턴스에 비동기식으로 복사됨

- 읽기 작업 수가 많은 애플리케이션의 경우, 애플리케이션의 읽기 쿼리를 읽기 전용 복제본으로 라우팅하면 원본 데이터베이스 인스턴스에 대한 로드를 줄일 수 있음

 

RDS가 적합한 사례

- 복잡한 트랜잭션이나 복잡한 쿼리

- 쿼리나 쓰기 비율이 중간~높음

- 초당 입출력이 최대 30000건

- 단일 작업자 노드나 샤드(데이터베이스의 데이터의 수평분할)로 사용

 

RDS 비용

시간 단위 결제와 데이터베이스 특성

  • - 시간 단위 결제 : 실행할 때 요금 발생
  • - 선택한 데이터베이스의 물리적 용량(엔진, 크기, 메모리 클래스)에 따라 부과되는 요금이 달라짐

 

DB 구매 유형과 여러 DB 인스턴스

  • - DB 구매 유형 : 온디맨드 인스턴스는 시간당 컴퓨팅 용량에 대한 요금, 예약 인스턴스는 1년이나 3년 약정으로 예약하려는 각 데이터베이스 인스턴스에 대해 일회성 선결제 금액을 지불
  • - 생성하는 인스턴스 수

RDS : 스토리지

  • - 활성 데이터베이스 인스턴스에 대해 프로비저닝된 데이터베이스 스토리지의 최대 100%까지는 백업 스토리지에 대한 추가 비용이 없음
  • - 데이터베이스 인스턴스가 종료된 후에 백업 스토리지에 월별 GB당 요금이 청구됨

 

배포 유형 및 데이터 전송

  • - 데이터베이스에 수행할 입력/출력 요청 수와 데이터 전송 고려
  • - 인바운드 데이터 전송은 무료, 아웃바운드 데이터 전송 요금은 계층화 됨

 

 

728x90

'AWS' 카테고리의 다른 글

Amazon Redshift  (0) 2022.07.17
관계형 데이터베이스 vs 비관계형 데이터베이스 : Amazon DynamoDB  (0) 2022.07.17
Amazon S3 Glacier  (0) 2022.07.13
AWS EFS가 뭔데  (0) 2022.07.13
Amazon S3가 뭐였더라  (0) 2022.07.13