Amazon Relational Database Service(Amazon RDS)란 무엇입니까? - Amazon Relational Database Service

Amazon Relational Database Service(Amazon RDS)란 무엇입니까?

Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.

참고

이 지침은 ​Amazon Aurora 이외의 Amazon RDS 데이터베이스 엔진에도 적용됩니다. Amazon Aurora 사용에 대한 자세한 내용은 Amazon Aurora 사용 설명서를 참조하세요.

AWS 제품 및 서비스를 처음 사용하는 경우 자세한 내용은 다음 자료를 참조하세요.

Amazon RDS의 장점

Amazon RDS는 관리형 데이터베이스 서비스로, 대부분의 관리 작업을 담당합니다. Amazon RDS를 사용하면 번거로운 수동 프로세스를 처리할 필요가 없어 애플리케이션과 사용자에게 집중할 수 있습니다.

Amazon RDS는 완전관리형이 아닌 데이터베이스 배포와 비교해서 다음과 같은 주요 이점을 제공합니다.

  • 이미 익숙하게 사용하는 IBM Db2, MariaDB, Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL 등의 데이터베이스 엔진을 이용할 수 있습니다.

  • Amazon RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다.

  • 자동화된 백업을 설정하거나 고유한 백업 스냅샷을 수동으로 생성할 수 있습니다. 이러한 백업을 사용하여 데이터베이스를 복원할 수 있습니다. Amazon RDS 복원 프로세스는 안정적이고 효율적입니다.

  • 기본 DB 인스턴스 및 문제 발생 시 장애 조치를 수행할 수 있는 동기식 보조 DB 인스턴스에서 가용성을 높일 수 있습니다. 읽기 전용 복제본을 사용하여 읽기 조정을 높일 수도 있습니다.

  • 데이터베이스 패키지의 보안 외에도 AWS Identity and Access Management(IAM)을 사용하여 사용자 및 권한을 정의하도록 액세스를 제어할 수 있습니다. 데이터베이스를 Virtual Private Cloud(VPC)에 배치하여 데이터베이스를 보호할 수도 있습니다.

Amazon EC2 및 온프레미스 배포와의 책임 비교

대부분의 관계형 데이터베이스 배포에 대해 Amazon RDS를 기본적으로 선택하는 것이 좋습니다. 다음과 같은 대안을 사용하면 소프트웨어와 하드웨어를 관리하는 데 더 많은 시간이 들 수 있다는 단점이 있습니다.

온프레미스 배포

온프레미스 서버를 구매하면 CPU, 메모리, 스토리지 및 IOPS가 함께 번들로 제공됩니다. 사용자가 서버, 운영 체제 및 데이터베이스 소프트웨어를 모두 관리해야 합니다.

Amazon EC2

Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 온프레미스 서버와 달리 CPU, 메모리, 스토리지, IOPS가 분리되어 독립적으로 규모를 조정할 수 있습니다. AWS에서는 하드웨어 계층을 관리하여 온프레미스 데이터베이스 서버를 관리해야 하는 부담을 일정 부분 덜어줍니다.

Amazon EC2에서 데이터베이스를 실행하면 사용자 오류가 발생하기 쉽다는 단점이 있습니다. 예를 들어, 운영 체제 또는 데이터베이스 소프트웨어를 수동으로 업데이트하면 원치 않는 애플리케이션 다운타임을 초래할 수 있습니다. 모든 변경 사항을 확인하여 문제를 파악하고 수정하려면 몇 시간이 걸리기도 합니다.

다음 표에서는 온프레미스 데이터베이스, Amazon EC2 및 Amazon RDS의 관리 모델을 비교합니다.

기능

온프레미스 관리

Amazon EC2 관리

Amazon RDS 관리

애플리케이션 최적화

고객

고객

고객

확장성

고객

고객

AWS

높은 가용성

고객

고객

AWS

데이터베이스 백업

고객

고객

AWS

데이터베이스 소프트웨어 패치

고객

고객

AWS

데이터베이스 소프트웨어 설치

고객

고객

AWS

운영 체제(OS) 패치

고객

고객

AWS

OS 설치

고객

고객

AWS

서버 유지 관리

고객

AWS

AWS

하드웨어 수명

고객

AWS

AWS

전력, 네트워크 및 냉각

고객

AWS

AWS

Amazon RDS 공동 책임 모델

Amazon RDS는 DB 인스턴스 및 DB 클러스터의 소프트웨어 구성 요소와 인프라 호스팅을 담당합니다. 사용자는 성능을 개선하기 위해 SQL 쿼리를 조정하는 프로세스인 쿼리 튜닝을 담당합니다. 쿼리 성능은 데이터베이스 디자인, 데이터 크기, 데이터 배포, 애플리케이션 워크로드 및 쿼리 패턴에 따라 크게 달라질 수 있습니다. 모니터링 및 튜닝은 RDS 데이터베이스에 대해 사용자가 소유하는 매우 개별화된 프로세스입니다. Amazon RDS 성능 개선 도우미를 비롯한 도구를 사용하여 문제가 있는 쿼리를 식별할 수 있습니다.

Amazon RDS DB 인스턴스

DB 인스턴스는 AWS 클라우드에 있는 격리된 데이터베이스 환경입니다. Amazon RDS의 기본 빌딩 블록은 DB 인스턴스입니다. DB 인스턴스에 사용자가 만든 데이터베이스가 하나 이상 포함될 수 있습니다. 다음 다이어그램은 2개의 가용 영역을 포함하고 각 AZ에 2개의 DB 인스턴스가 포함되어 있는 Virtual Private Cloud(VPC)를 보여줍니다.

두 가용 영역에 걸쳐 있는 VPC를 보여줍니다. 각 AZ는 2개의 DB 인스턴스를 호스팅합니다.

독립 실행형 데이터베이스 인스턴스와 함께 사용하는 것과 동일한 도구 및 애플리케이션을 사용하여 DB 인스턴스에 액세스할 수 있습니다. AWS Command Line Interface(AWS CLI), Amazon RDS API 또는 AWS Management Console을 사용하여 DB 인스턴스를 생성하고 수정할 수 있습니다.

Amazon RDS 애플리케이션 아키텍처: 사례

다음 이미지는 데이터베이스 스토리지로 Amazon RDS DB 인스턴스를 사용하는 동적 웹 사이트의 일반적인 사용 사례를 보여줍니다.

2개의 가용 영역을 아우르는 VPC가 포함된 리전을 보여줍니다. 각 AZ에는 애플리케이션 서버와 DB 인스턴스가 포함되어 있습니다. Elastic Load Balancer는 사용자 요청을 애플리케이션 서버로 전달합니다.

이전 아키텍처의 주요 구성 요소는 다음과 같습니다.

Elastic Load Balancing

AWS는 Elastic Load Balancing을 통해 사용자 트래픽을 라우팅합니다. 로드 밸런서는 워크로드를 가상 서버와 같은 다수의 컴퓨팅 리소스로 분산합니다. 이 샘플 사용 사례에서 Elastic Load Balancer는 클라이언트 요청을 애플리케이션 서버로 전달합니다.

애플리케이션 서버

애플리케이션 서버는 RDS DB 인스턴스와 상호 작용합니다. AWS의 애플리케이션 서버는 일반적으로 확장 가능한 컴퓨팅 용량을 제공하는 EC2 인스턴스에 호스팅됩니다. 애플리케이션 서버는 동일한 Virtual Private Cloud(VPC) 내에서 서로 다른 가용 영역을 사용하는 퍼블릭 서브넷에 있습니다.

RDS DB 인스턴스

EC2 애플리케이션 서버는 RDS DB 인스턴스와 상호 작용합니다. DB 인스턴스는 동일한 Virtual Private Cloud(VPC) 내 서로 다른 가용 영역의 프라이빗 서브넷에 있습니다. 서브넷은 프라이빗이므로, 인터넷에서의 요청은 허용되지 않습니다.

기본 DB 인스턴스는 읽기 복제본이라고 하는 다른 DB 인스턴스로 복제됩니다. 두 DB 인스턴스는 모두 VPC 내의 프라이빗 서브넷에 있으므로 인터넷 사용자가 직접 액세스할 수 없습니다.

DB 엔진

DB 엔진은 DB 인스턴스에서 실행되는 특정 관계형 데이터베이스 소프트웨어입니다. Amazon RDS는 다음 데이터베이스 엔진을 지원합니다.

각 DB 엔진에는 지원되는 고유한 기능이 있으며, DB 엔진의 각 버전에는 특정 기능이 포함될 수 있습니다. Amazon RDS 기능에 대한 지원은 AWS 리전 및 각 DB 엔진의 특정 버전에 따라 다릅니다. 다양한 엔진 버전 및 리전의 기능 지원을 확인하려면 AWS 리전 및 DB 엔진별 Amazon RDS에서 지원되는 기능 섹션을 참조하세요.

또한 DB 엔진마다 관리하는 데이터베이스의 동작을 제어하는 DB 파라미터 그룹에 파라미터 집합이 있습니다. 파라미터 그룹에 대한 자세한 내용은 Amazon RDS의 파라미터 그룹 단원을 참조하세요.

DB 인스턴스 클래스

DB 인스턴스 클래스는 DB 인스턴스의 컴퓨팅 및 메모리 용량을 결정하며, DB 인스턴스 클래스는 DB 인스턴스 클래스 유형과 크기로 구성됩니다. Amazon RDS는 다음 인스턴스 클래스 유형을 지원합니다. 여기서 별표(*)는 세대, 선택적 속성 및 크기를 나타냅니다.

  • 범용 – db.m*

  • 메모리 최적화 – db.z*, db.x*, db.r*

  • 컴퓨팅 최적화 – db.c*

  • 성능 버스트 가능 – db.t*

인스턴스 클래스마다 서로 다른 컴퓨팅, 메모리 및 스토리지 기능을 제공합니다. 예를 들어, db.m7g는 AWS Graviton3 프로세서로 구동되는 7세대 범용 DB 인스턴스 클래스 유형입니다. DB 인스턴스를 생성할 때 db.m7g.2xlarge와 같은 DB 인스턴스 클래스를 지정하게 됩니다. 여기서 2xlarge는 크기입니다. 다양한 인스턴스 클래스의 하드웨어 사양에 대한 자세한 내용은 에 대한 DB 인스턴스 클래스의 하드웨어 사양 섹션을 참조하세요.

요구 사항에 가장 적합한 DB 인스턴스 클래스를 선택할 수 있습니다. 시간이 지나면서 요구 사항이 바뀌면 DB 인스턴스 클래스를 변경할 수 있습니다. 예를 들어, db.m7g.2xlarge 인스턴스 규모를 db.m7g.4xlarge로 조정할 수 있습니다. 자세한 내용은 DB 인스턴스 클래스 단원을 참조하십시오.

참고

DB 인스턴스 클래스에 대한 요금 정보는 Amazon RDS 제품 페이지의 요금 단원을 참조하세요.

DB 인스턴스 스토리지

Amazon EBS는 내구성이 있는 블록 수준 스토리지 볼륨을 제공하여 실행 중인 인스턴스에 연결하는 것이 가능합니다. DB 인스턴스 스토리지는 다음과 같은 유형으로 제공됩니다.

  • 범용(SSD)

    이 비용 효율적 스토리지 유형은 중간 크기 DB 인스턴스에서 실행하는 광범위한 워크로드에 이상적입니다. 범용 스토리지는 개발 및 테스트 환경에 가장 적합합니다.

  • 프로비저닝된 IOPS(PIOPS)

    이 스토리지 유형은 낮은 I/O 지연 시간과 일관된 I/O 처리량을 요구하는 I/O 집약적인 워크로드, 특히 데이터베이스 워크로드의 요구를 충족하도록 설계되었습니다. 프로비저닝된 IOPS 스토리지는 프로덕션 환경에 가장 적합합니다.

  • Magnetic

    Amazon RDS는 이전 버전과의 호환성을 위해 마그네틱 스토리지를 지원합니다. 새 스토리지가 필요할 경우 범용 SSD 또는 프로비저닝된 IOPS SSD를 사용하는 것이 좋습니다.

스토리지 유형은 성능 특성과 가격이 다릅니다. 데이터베이스 요건에 따라 스토리지 성능과 비용을 조정할 수 있습니다.

DB 인스턴스는 각각 스토리지 유형과 지원하는 데이터베이스 엔진에 따라 최소/최대 스토리지 요구 사항이 있습니다. 충분한 스토리지를 보유하여 데이터베이스를 확장할 수 있는 여유를 확보하는 것이 중요합니다. 또한 스토리지가 충분하면 콘텐츠를 작성하거나 항목을 기록할 수 있는 기능을 DB 엔진에 도입할 수 있습니다. 자세한 내용은 Amazon RDS DB 인스턴스 스토리지 단원을 참조하십시오.

Amazon Virtual Private Cloud(VPC)의 DB 인스턴스

Amazon Virtual Private Cloud(Amazon VPC) 서비스를 사용해 가상 사설 클라우드(VPC)에서 DB 인스턴스를 실행할 수 있습니다. VPC를 사용하면 가상 네트워킹 환경을 완벽하게 제어할 수 있습니다. 자기만의 IP 주소 범위를 선택하고, 서브넷을 생성하고, 라우팅 및 액세스 제어 목록을 구성할 수 있습니다.

Amazon RDS의 기본 기능은 VPC 실행 중인지 여부에 관계없이 동일합니다. Amazon RDS는 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다. VPC에서 DB 인스턴스를 실행하는 데는 추가 비용이 들지 않습니다. RDS와 Amazon VPC를 함께 사용하는 방법에 대한 자세한 내용은 Amazon VPC 및 Amazon RDS 단원을 참조하십시오.

Amazon RDS는 DB 인스턴스를 기준으로 시간을 동기화하는 데 NTP(Network Time Protocol)를 사용합니다.

AWS 리전 및 가용 영역

Amazon 클라우드 컴퓨팅 리소스는 전 세계 여러 리전의 가용성이 높은 데이터 센터 시설에 하우징됩니다(예: 북미, 유럽 또는 아시아). 각 데이터 센터 위치를 AWS 리전이라고 합니다. Amazon RDS를 사용하여 여러 리전에서 DB 인스턴스를 생성할 수 있습니다.

다음 시나리오는 한 리전의 RDS DB 인스턴스가 다른 리전의 대기 DB 인스턴스에 비동기적으로 복제되는 것을 보여줍니다. 한 리전을 사용할 수 없게 되더라도 다른 리전의 인스턴스는 계속 사용할 수 있습니다.

리전 간 읽기 전용 복제본 구성

가용 영역

AWS 리전마다 가용 영역 또는 AZ라는 고유한 위치가 여러 개 포함됩니다. 각 가용 영역은 다른 가용 영역에서 발생한 장애에서 격리되도록 설계되었습니다. 각 가용 영역은 같은 AWS 리전에 있는 다른 가용 영역에 대해 저렴하고 지연 시간이 짧은 네트워크 연결을 제공하도록 설계되었습니다. 별도의 가용 영역에서 DB 인스턴스를 시작함으로써 단일 위치에서 장애가 발생할 경우 애플리케이션을 보호할 수 있습니다. 자세한 내용은 리전, 가용 영역 및 로컬 영역 단원을 참조하십시오.

다중 AZ 배포

여러 가용 영역에서 DB 인스턴스를 실행할 수 있습니다. 다중 AZ 배포라는 옵션입니다. 이 옵션을 선택하면 Amazon은 다른 AZ에서 하나 이상의 보조 대기 DB 인스턴스를 자동으로 프로비저닝하고 유지합니다. 기본 DB 인스턴스는 가용 영역 전체에서 각 보조 DB 인스턴스로 복제됩니다.

다중 AZ 배포는 다음과 같은 이점을 제공합니다.

  • 데이터 중복성 및 장애 조치 지원 제공

  • I/O 작동 중지 제거

  • 시스템 백업 중 지연 시간 급증 최소화

  • 보조 DB 인스턴스에서 읽기 트래픽 처리(다중 AZ DB 클러스터 배포만 해당)

다음 다이어그램은 Amazon RDS가 다른 가용 영역에서 동기식 대기 복제본을 자동으로 프로비저닝하고 유지 관리하는 다중 AZ DB 인스턴스 배포를 보여줍니다. 복제본 데이터베이스는 읽기 트래픽을 제공하지 않습니다.

다중 AZ 인스턴스 배포를 위한 고가용성 시나리오

다음 다이어그램은 동일한 AWS 리전에 있는 3개의 개별 가용 영역에 라이터 DB 인스턴스와 2개의 리더 DB 인스턴스가 있는 다중 AZ DB 클러스터 배포를 보여줍니다. 3개의 DB 인스턴스 모두 읽기 트래픽을 처리할 수 있습니다.

다중 AZ 클러스터 배포를 위한 고가용성 시나리오

자세한 내용은 다중 AZ 배포 구성 및 관리 단원을 참조하십시오.

보안 그룹을 통한 액세스 제어

보안 그룹은 지정한 IP 주소 범위 또는 Amazon EC2 인스턴스에 대한 액세스를 허용하여 DB 인스턴스에 대한 액세스를 제어합니다. 보안 그룹을 하나 이상의 DB 인스턴스에 적용할 수 있습니다.

VPC에서 DB 인스턴스의 일반적인 용도는 동일한 VPC에 있는 애플리케이션 서버와 데이터를 공유하는 것입니다. 다음 예제에서는 ec2-rds-x VPC 보안 그룹을 사용하여 클라이언트 애플리케이션의 IP 주소를 소스로 사용하는 인바운드 규칙을 정의합니다. 애플리케이션 서버는 이 보안 그룹에 속합니다. rds-ec2-x라는 이름의 보조 보안 그룹은 ec2-rds-x를 소스로 지정하고 RDS DB 인스턴스에 연결합니다. 보안 그룹 규칙에 따르면 클라이언트 애플리케이션은 DB 인스턴스에 직접 액세스할 수 없지만, EC2 인스턴스는 DB 인스턴스에 액세스할 수 있습니다.

VPC의 DB 인스턴스 및 EC2 인스턴스

보안 그룹에 대한 자세한 내용은 Amazon RDS의 보안 섹션을 참조하세요.

Amazon RDS 모니터링

모니터링은 Amazon RDS 및 기타 AWS 솔루션의 신뢰성, 가용성 및 성능을 유지하는 데 있어서 중요한 부분입니다. AWS에서는 Amazon RDS를 모니터링하고, 이상이 있을 때 이를 보고하고, 적절할 경우 자동 조치를 취할 수 있도록 여러 모니터링 도구를 제공합니다.

다양한 자동 및 수동 도구를 사용하여 DB 인스턴스의 성능과 상태를 추적할 수 있습니다.

Amazon RDS DB 인스턴스 상태 및 권장 사항

Amazon RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 인스턴스의 현재 상태에 대한 세부 정보를 봅니다. 또한 DB 인스턴스, 읽기 전용 복제본, DB 파라미터 그룹과 같은 데이터베이스 리소스에 대한 자동화된 권장 사항에 응답할 수 있습니다. 자세한 내용은 Amazon RDS의 권장 사항 단원을 참조하십시오.

Amazon RDS에 대한 Amazon CloudWatch 지표

Amazon CloudWatch 서비스를 사용하여 DB 인스턴스의 성능 및 상태를 모니터링할 수 있습니다. Amazon RDS 콘솔에 CloudWatch 성능 차트가 표시됩니다. Amazon RDS는 각각의 활성 데이터베이스 인스턴스에 대해 1분마다 CloudWatch로 지표를 자동 전송합니다. CloudWatch에서 Amazon RDS 지표에 대한 추가 요금은 표시되지 않습니다.

Amazon CloudWatch 경보를 사용하면 특정 기간 동안 단일 Amazon RDS 지표를 볼 수 있습니다. 그런 다음 설정한 임계값과 지표 값을 비교하여 하나 이상의 작업을 수행할 수 있습니다. 자세한 내용은 Amazon CloudWatch로 Amazon RDS 지표 모니터링 단원을 참조하십시오.

Amazon RDS 성능 개선 도우미 및 운영 체제 모니터링

성능 개선 도우미는 데이터베이스의 부하를 평가하고 조치를 취할 시점과 위치를 결정합니다. 자세한 내용은 성능 개선 도우미를 통한 Amazon RDS 모니터링 단원을 참조하십시오. Amazon RDS 확장 모니터링은 운영 체제에 대한 지표를 실시간으로 확인합니다. 자세한 내용은 Enhanced Monitoring을 사용하여 OS 지표 모니터링 단원을 참조하십시오.

통합 AWS 서비스

Amazon RDS는 Amazon EventBridge, Amazon CloudWatch Logs, Amazon DevOps Guru와 통합됩니다. 자세한 내용은 Amazon RDS 인스턴스에서 지표 모니터링 단원을 참조하십시오.

Amazon RDS에 대한 사용자 인터페이스

Amazon RDS와 상호 작용하는 방법에는 여러 가지가 있습니다.

AWS Management Console

AWS Management Console은 간단한 웹 기반 사용자 인터페이스입니다. 콘솔에서 프로그래밍 없이 DB 인스턴스를 관리할 수 있습니다. Amazon RDS 콘솔에 액세스하려면 AWS Management Console에 로그인하고 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

RDS 콘솔 홈페이지. 왼쪽 패널에는 대시보드, 데이터베이스 등에 대한 링크가 있음. 중앙 패널에는 DB 인스턴스와 같은 리소스가 나열됨.

명령줄 인터페이스

AWS Command Line Interface(AWS CLI)를 사용하여 Amazon RDS API에 대화식으로 액세스할 수 있습니다. AWS CLI를 설치하려면 AWS 명령줄 인터페이스 설치를 참조하세요. RDS에 대해 AWS CLI 사용을 시작하려면 Amazon RDS용 AWS Command Line Interface 참조를 확인하세요.

Amazon RDS API

개발자라면 API를 사용하여 프로그래밍 방식으로 Amazon RDS에 액세스할 수 있습니다. 자세한 내용은 Amazon RDS API 참조 단원을 참조하십시오.

애플리케이션을 개발하는 경우에는 AWS 소프트웨어 개발 키트(SDK) 중 하나를 사용하는 것이 좋습니다. AWS SDK가 인증, 재시도 로직, 오류 처리 등 낮은 레벨 정보를 처리하기 때문에 개발자는 애플리케이션 로직에 더욱 집중할 수 있습니다. AWS SDK는 다양한 언어로 제공됩니다. 자세한 정보는 Amazon Web Services용 도구를 참조하십시오.

AWS그 밖에도 는 라이브러리, 샘플 코드, 자습서 등 보다 쉽게 시작하는 데 도움이 되는 리소스를 제공합니다. 자세한 정보는 샘플 코드 및 라이브러리를 참조하십시오.

Amazon RDS에 대한 요금이 부과되는 방법

Amazon RDS를 사용하는 경우 온디맨드 DB 인스턴스 또는 예약된 DB 인스턴스를 선택하여 사용할 수 있습니다. 자세한 내용은 Amazon RDS에 대한 DB 인스턴스 결제 섹션을 참조하세요.

Amazon RDS 요금에 대한 자세한 정보는 Amazon RDS 제품 페이지를 참조하십시오.

다음 단계

이전 단계에서는 RDS에서 제공하는 기본 인프라 구성 요소를 소개했습니다. 다음으로 무엇을 해야 할까요?

시작하기

Amazon RDS 시작하기의 지침에 따라 DB 인스턴스를 생성하세요.

데이터베이스 엔진과 관련된 주제

다음 섹션에서 특정 DB 엔진별 정보를 검토할 수 있습니다.