본문 바로가기
CSP (Cloud Service Provider)/AWS

[AWS] RDS 기본

by BTC_RUPY 2022. 9. 17.

안녕하세요~!!

BTC 루피 입니다!!

오늘은 RDS에 대한 아주 기초적이고 기본적인 것을 설명해볼까합니다!

기본이 중요하다! 기본을 잘 알고 있어야 응용도 가능하겠죠? ㅎㅎ

 

RDS란?

MySQL이나 오라클 같은 데이터베이스의 설치, 모니터링, 백업, 알람 등 관리를 대신해주며, 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 비용 효율적이고 크기 조정 가능한 DB 서비스를 제공해줍니다.

따라서 운영 작업 작동화 덕분에 개발자는 DB 인프라를 구성하는데 힘을 들이지 않고, 개발이라는 본질적인 작업에 집중할 수 있게 됩니다.

 

EC2 인스턴스에 직접 데이터베이스를 설치해서 사용해도 되지만 RDS로 운영을 하게 된다면 많은 부분을 자동으로 관리할 수 있어 편리합니다.

 

RDS를 생성하기 위한 기본 구성부터 살펴보겠습니다.

 

DB 인스턴스 는 클라우드에서 실행하는 격리된 데이터베이스 환경입니다. 이것은 Amazon RDS의 기본 구성 요소입니다.

DB 인스턴스마다 DB 인스턴스 식별자가 있습니다. 식별자는 RDS에 의해 인스턴스에 할당된 DNS 호스트 이름의 일부로 사용됩니다.

Amazon RDS의 데이터베이스 엔진은 현재 MySQL, MariaDB, PostgreSQL, Oracle, Microsoft SQL Server, Amazon Aurora 를 지원합니다.

 

DB 인스턴스 클래스는 Amazon RDS DB 인스턴스의 컴퓨팅 및 메모리 용량을 결정합니다.

범용, 메모리 최적화 및 버스트 가능 성능의 3가지 인스턴스 클래스 유형을 지원합니다.

 

범용 DB 인스턴스 클래스

  • db.m6g - AWS Graviton2 프로세서로 구동되는 범용 인스턴스 클래스 이러한 인스턴스 클래스는 광범위한 범용 워크로드에 균형 잡힌 컴퓨팅, 메모리 및 네트워킹을 제공합니다.
  • 다른 DB 인스턴스 수정 작업과 동일한 단계를 통해, AWS Graviton2 프로세서가 지원하는 DB 인스턴스 클래스 중 하나를 사용하도록 DB 인스턴스를 수정할 수 있습니다.
  • db.m6g - AWS Graviton2 프로세서로 구동되는 범용 인스턴스 클래스 이러한 인스턴스 클래스는 광범위한 범용 워크로드에 균형 잡힌 컴퓨팅, 메모리 및 네트워킹을 제공합니다. 여기에는 고속, 대기 시간이 짧은 로컬 스토리지가 필요한 애플리케이션용 로컬 NVMe 기반 SSD 블록 레벨 스토리지가 있습니다.
  • 다중 AZ DB 클러스터에서 지원되는 DB 인스턴스 클래스 다중 AZ DB 클러스터에 대한 자세한 내용은 다중 AZ DB 클러스터 배포 섹션을 참조하세요.
  • db.m6i— 광범위한 범용 워크로드에 적합한 범용 인스턴스 클래스
  • db.m5d – 짧은 지연 시간, 매우 높은 임의 I/O 성능, 높은 순차 읽기 처리량에 최적화된 범용 인스턴스 클래스.
  • db.m5 – 컴퓨팅, 메모리 및 네트워크 리소스가 균형잡힌 범용 인스턴스 클래스로, 대부분의 애플리케이션에 적합합니다. db.m5 인스턴스 클래스는 이전의 db.m4 인스턴스 클래스보다 더 많은 컴퓨팅 용량을 제공합니다. 전용 하드웨어 및 경량 하이퍼바이저 결합된 AWS Nitro System을 기반으로 합니다.
  • db.m4 – 이전 db.m3 인스턴스 클래스에 비해 더 많은 컴퓨팅 용량을 제공하는 범용 인스턴스 클래스입니다.
  • db.m3 – 이전 db.m1 인스턴스 클래스에 비해 더 많은 컴퓨팅 용량을 제공하는 범용 인스턴스 클래스입니다.

메모리 최적화 DB 인스턴스 클래스

  • db.x2g - 메모리 집약적 애플리케이션에 최적화되고 AWS Graviton2 프로세서로 구동되는 인스턴스 클래스입니다. 이는 메모리 GiB당 낮은 비용을 제공합니다.
  • 다른 DB 인스턴스 수정 작업과 동일한 단계를 통해, AWS Graviton2 프로세서가 지원하는 DB 인스턴스 클래스 중 하나를 사용하도록 DB 인스턴스를 수정할 수 있습니다.
  • db.z1d – 메모리 집약적 애플리케이션에 최적화된 인스턴스 클래스. 이러한 인스턴스들은 높은 컴퓨팅 용량과 큰 메모리 공간을 제공합니다. 고주파수 z1d 인스턴스는 최대 4.0GHz의 일관된 올코어 주파수를 제공합니다.
  • db.x1e – 메모리 집약적 애플리케이션에 최적화된 인스턴스 클래스. 이러한 클래스는 DB 인스턴스 클래스의 RAM 기비바이트(GiB) 및 DRAM 기반 인스턴스 메모리의 최대 3,904GiB 당 최저 비용을 듭니다.
  • db.x1 – 메모리 집약적 애플리케이션에 최적화된 인스턴스 클래스. 이러한 클래스는 DB 인스턴스 클래스의 RAM GiB 및 DRAM 기반 인스턴스 메모리의 최대 3,904GiB 당 최저 비용을 듭니다.
  • db.r6g - AWS Graviton2 프로세서로 구동되는 인스턴스 클래스 이는 MySQL 및 PostgreSQL과 같은 오픈 소스 데이터베이스에서 메모리 사용량이 많은 워크로드를 실행하는 데 적합합니다.
  • 다른 DB 인스턴스 수정 작업과 동일한 단계를 통해, AWS Graviton2 프로세서가 지원하는 DB 인스턴스 클래스 중 하나를 사용하도록 DB 인스턴스를 수정할 수 있습니다.
  • db.r6g - AWS Graviton2 프로세서로 구동되는 인스턴스 클래스 이는 MySQL 및 PostgreSQL과 같은 오픈 소스 데이터베이스에서 메모리 사용량이 많은 워크로드를 실행하는 데 적합합니다. 여기에는 고속, 대기 시간이 짧은 로컬 스토리지가 필요한 애플리케이션용 로컬 NVMe 기반 SSD 블록 레벨 스토리지가 있습니다.
  • 다중 AZ DB 클러스터에서 지원되는 DB 인스턴스 클래스 다중 AZ DB 클러스터에 대한 자세한 내용은 다중 AZ DB 클러스터 배포 섹션을 참조하세요.
  • db.r6i - 메모리 사용량이 많은 워크로드를 실행하는 데 적합한 인스턴스 클래스
  • db.r5b – 처리량이 많은 애플리케이션에 대해 메모리 최적화된 인스턴스 클래스. AWS Nitro 시스템을 기반으로 하는 db.r5b 인스턴스는 최대 60Gbps의 대역폭과 260,000 IOPS의 EBS 성능으로 EC2에서 가장 빠른 블록 스토리지 성능을 제공합니다.
  • db.r5d – 짧은 지연 시간, 매우 높은 임의 I/O 성능, 높은 순차 읽기 처리량에 최적화된 인스턴스 클래스.
  • db.r4 – 메모리 집약적 애플리케이션에 최적화된 인스턴스 클래스. 향상된 네트워킹과 Amazon Elastic Block Store(Amazon EBS) 성능을 제공합니다. 전용 하드웨어 및 경량 하이퍼바이저 결합된 AWS Nitro System을 기반으로 합니다.
  • db.r3 – 메모리 최적화를 제공하는 인스턴스 클래스.

버스트 성능 DB 인스턴스 클래스

  • db.t4g - Arm 기반 AWS Graviton2 프로세서로 구동되는 범용 인스턴스 클래스입니다. 이는 광범위한 범용 워크로드 집합에 대해 이전의 버스트 가능 성능 DB 인스턴스 클래스보다 더 나은 가격 성능을 제공합니다. Amazon RDS T4g 인스턴스는 무제한 모드로 구성되어 있습니다. 즉, 추가 요금을 지불하면 24시간 동안 기준 이상으로 높일 수 있습니다.
  • 다른 DB 인스턴스 수정 작업과 동일한 단계를 통해, AWS Graviton2 프로세서가 지원하는 DB 인스턴스 클래스 중 하나를 사용하도록 DB 인스턴스를 수정할 수 있습니다.
  • db.t2 – CPU 사용률을 최대로 버스트할 수 있는 기능으로 기준 성능 수준을 제공하는 인스턴스 클래스입니다. T3 인스턴스는 무제한 모드로 구성됩니다. 이 인스턴스 클래스는 이전의 db.t2 인스턴스 클래스보다 더 많은 컴퓨팅 용량을 제공합니다. 전용 하드웨어 및 경량 하이퍼바이저 결합된 AWS Nitro System을 기반으로 합니다.
  • db.t2 – CPU 사용률을 최대로 버스트할 수 있는 기능으로 기준 성능 수준을 제공하는 인스턴스 클래스입니다. T2 인스턴스는 무제한 모드로 구성됩니다. 이러한 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비 프로덕션 서버에만 사용하는 것이 좋습니다.

인스턴스 클래스를 잘 확인하여 본인이 운영할 환경에 맞게 설정하시면 됩니다.

 

Amazon RDS 스토리지 유형은 범용 SSD(gp2라고도 함), 프로비저닝된 IOPS SSD(io1이라고도 함), 마그네틱(표준이라고도 함) 등 세 가지를 제공합니다.

  • 범용 SSD – 범용 SSD 볼륨은 광범위한 워크로드에 이상적인 비용 효율적 스토리지를 제공합니다. 이러한 볼륨은 시간을 연장할 경우 3,000IOPS의 버스트 기능까지 지원되어 지연 시간이 한 자릿수 밀리초에 불과합니다. 이러한 볼륨에 대한 기준 성능은 볼륨의 크기에 의해 결정됩니다.
  • 프로비저닝된 IOPS – 프로비저닝된 IOPS 스토리지는 I/O 지연 시간이 짧고 I/O 처리량이 일정한 I/O 집약적 워크로드, 특히 데이터베이스 워크로드 요구 사항을 충족하도록 설계되었습니다.
  • 마그네틱 – Amazon RDS는 역호환성을 위해 마그네틱 스토리지도 지원합니다. 새 스토리지가 필요할 경우 범용 SSD 또는 프로비저닝된 IOPS를 사용하는 것이 좋습니다.

파라미터 그룹

DB의 설정값들을 모아 그룹화한 개념입니다. 

직접 RDS 인스턴스 수정이 불가능 하기 때문에 이런 우회적인 방법으로 설정값을 세팅하는 원리입니다.

(예를 들어 데이터베이스 파라미터는 메모리를 비롯하여 데이터베이스에 할당할 리소스의 양 지정가능.)

  • DB 파라미터 그룹 하나 이상의 DB 인스턴스에 적용되는 엔진 구성 값의 컨테이너 역할을 합니다.
  • DB 클러스터 파라미터 그룹 다중 AZ DB 클러스터에만 적용됩니다. 다중 AZ DB 클러스터에서 DB 클러스터 파라미터 그룹의 설정은 클러스터의 모든 DB 인스턴스에 사용됩니다.

DB 파라미터 그룹을 지정하지 않고 DB 인스턴스를 만드는 경우 DB 인스턴스에서는 기본 DB 파라미터 그룹을 사용합니다

DB 클러스터 파라미터 그룹을 지정하지 않고 다중 AZ 클러스터를 생성할 경우 이 DB 클러스터에서는 기본 DB 클러스터 파라미터 그룹을 사용합니다.

 

옵션 그룹

DB 엔진 중에는 데이터와 데이터베이스를 더욱 쉽게 관리할 뿐만 아니라 데이터베이스 보안을 더욱 강화한 추가 기능을 가진 엔진도 있습니다. Amazon RDS는 옵션 그룹을 사용하여 이러한 기능을 활성화하고 구성합니다.

 

RDS 백업 시스템

Amazon RDS는 DB 인스턴스 백업 기간 동안 DB 인스턴스의 자동 백업을 생성하고 저장합니다. RDS는 개별 데이터베이스가 아닌 전체 DB 인스턴스를 백업하여 DB 인스턴스의 스토리지 볼륨 스냅샷을 생성합니다. RDS는 사용자가 지정한 백업 보존 기간에 따라 DB 인스턴스의 자동 백업을 저장합니다. 필요할 경우 백업 보존 기간 중 어느 특정 시점으로든 데이터베이스를 복구할 수 있습니다.

자동 백업 

자동 백업(Automated Backups) 줄여서 AB는 매일마다 스냅샷과 트랜잭션 로그를 참고하여 자동으로 백업을 해줍니다.

RDS에서는 디폴트로 AB 기능이 설정되어 있습니다.

AB를 통해 데이터베이스를 Retention Period(1~35일) 안의 과거 특정 시간으로 되돌아갈 수도 있습니다.

단, 롤백 동작은 과거 상태로 그대로 돌아가는게 아닌, 다른 DB 인스턴스를 새로 생성해서 스냅샷을 적용 시킵니다.

RDB 백업 정보는 S3에 저장되며, AB동안 약간의 I/O suspension(딜레이)이 존재할 수 있다.

Multi-az로 하면 Standby를 통해 백업을 수행하기 때문에 딜레이가 덜합니다.

AB 백업 기능은 인스턴스를 삭제할 때 스냅샷도 모두 없어집니다.

수동 백업 (DB 스냅샷)

AB(자동 백업)이 자동으로 스냅샷을 떠서 백업하는 것이라면, 수동 백업은 유저 혹은 다른 프로세스로부터 요청에 따라 만들어지는 DB 스냅샷입니다. 즉, 사용자에 의해 수동적으로 진행되는 백업입니다.

만약 원본 RDS를 삭제한다고 하더라도, 스냅샷은 S3 버킷에 그대로 존재합니다. 따라서 스냅샷만으로 RDS 인스턴스를 복원시킬 수 있습니다.

스냅샷의 복구는 항상 새로운 DB Instance를 생성 하여 수행되며, 만약 데이터베이스를 복구해야 한다면, 새로운 DB를 만들고 기존 DB의 연결을 끊고 새로 만든 DB에 연결해주는 작업이 필요합니다.

 

 

다음편에서는 MSP SR 중에 자주 문의되는 DB 엔진 업그레이에 대해 설명드리겠습니다!

감사합니다.

 

 

 

 

'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글

[AWS] WAF  (0) 2022.09.23
Apache Ignite 소개 및 설치 방법  (0) 2022.09.19
[AWS] Auto Scaling  (1) 2022.09.16
AWS Lambda 란?  (0) 2022.09.16
AWS session manager란?  (0) 2022.09.15

댓글