[aws] RDS

림예·2024년 5월 30일

CS

목록 보기
15/19

RDS (Relational Database Service)

AWS RDS란 관계형 데이터베이스를 간편하게 클라우드에서 설정, 운영, 확장이 가능하도록 지원하는 웹 서비스이다.

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

따라서 RDS를 통해 개발자는 DB 인프라를 구성하는데 힘을 들이지 않고, 개발이라는 본질적인 작업에 집중할 수 있게되는 장점이 있다.

물론 EC2 자체가 컴퓨터니까 EC2 인스턴스에 직접 데이터베이스를 설치해서 사용해도 된다.

하지만 AWS RDS는 EC2에 RDB(관계형 데이터베이스)를 직접 구축하여운영할 때보다 더 많은 부분을 자동으로 관리할 수 있어 편리하기 때문에 많이 애용된다.



RDS의 데이터베이스의 제공 방식은 EC2와 비슷하다.
EC2 인스턴스를 생성해서 컴퓨팅을 사용하듯이, RDS 인스턴스를 생성해서 DB를 사용하는 원리이다.

하지만 EC2같이 유저가 시스템에 직접 로그인은 불가능하다.
그래서 RDS 인스턴스의 OS패치, 관리 등은 AWS가 전담 한다.
또한 RDS는 데이터베이스 모니터링 기능을 지원해주는데, DB에서 발생하는 여러 로그 (Error Log, General Log 등)를 CloudWatch와 연동하여 확인도 가능하다.

RDS는 기본적으로 VPC 안에서 동작하며, 기본적으로 public IP를 부여하지 않아 외부에서 접근 불가능하다.
다만, 설정에 따라 public으로 오픈 가능하며 대신 로드밸런서 같이 DNS로만 접근이 가능하다.
VPC 내에서 동작하는 서비스이니 당연히 서브넷과 보안그룹 지정도 필요하다.

EC2 인스턴스를 생성할때 EC2 타입과 EBS 타입을 고르듯이,
RDS 인스턴스를 생성할때도 인스턴스 타입을 지정해주어야 하며, 스토리지는 EBS를 그대로 활용하기 때문에 EBS 타입의 선택도 필요하다.
그리고 RDS는 유동적으로 데이터 저장소 용량을 증설하는게 아닌, 생성시 EBS의 용량을 지정해서 생성한다. (추후에 용량 증설 가능)cf) AWS 데이터베이스 서비스인 Amazon Aurora는 용량지정 X, 사용한만큼만 비용 지불

RDS의 가장 큰 특징은 파라미터 그룹(Paramater Group) 시스템인데, 이는 DB의 설정값들을 모아 그룹화한 개념이다.
이 DB 설정들을 모은 그룹을 각 DB 인스턴스에 적용시켜 DB의 설정값을 적용하는 시스템인이다.
왜냐하면 위에서 말했듯이 직접 RDS 인스턴스 수정이 불가능 하기 때문에 이런 우회적인 방법으로 설정값을 세팅하는 원리이다.



RDS 데이터베이스 종류

RDS에서는 Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, MS SQLServer 총 6개의 데이터베이스 엔진 중에서 원하는 DBMS를 선택할 수 있다.

또한 AWS Databae Migration Services를 사용하여 기존 데이터베이스를 Amazon RDS로 손쉽게 마이그레이션 또는 복제 할 수 있다. 


RDS의 특징 & 기능

  1. 관리 부담 감소
  • 사용 편의성 : 몇 분 이내에 데이터베이스 인스턴스를 시작하고 애플리케이션을 연결할 수 있다. DB 파라미터 그룹을 사용하면 데이터베이스를 세부적으로 제어하고 튜닝할 수도 있다.
  • 자동 소프트웨어 패치 : RDS는 최신 패치를 통해 배포를 지원하는 관계형 데이터베이스 소프트웨어가 최신 상태로 유지되도록 한다. 데이터베이스 인스턴스의 패치 여부와 시기를 선택적으로 제어할 수 있다.
  • 모범 사례 권장 시스템 : RDS에서는 데이터베이스 인스턴스의 구성과 사용 지표를 분석하여 모범 사례 지침을 제공한다. 고객은 권장 조치를 즉시 수행하거나 다음 유지 관리 기간에 수행하도록 예약하거나 완전히 무시할 수 있다.
  1. 확장성
  • 즉각적인 컴퓨팅 규모 조정 : 배포에 사용할 컴퓨팅 및 메모리 리소스를 최대 vCPU 32개와 RAM 244G의 범위 내에서 확장하거나 축소할 수 있다. 컴퓨팅 규모 조정 작업은 일반적으로 몇 분이면 완료된다
  • 간편한 스토리지 규모 조정 : 스토리지에 대한 요구가 증가함에 따라 추가 스토리지를 프로비저닝할 수도 있다.또한 DB 가동 중단 없이 즉시 스토리지 확장이 가능하다.
  • 읽기 전용 복제본 시스템 : DB 인스턴스의 복제본을 하나 이상 생성하여 대량의 애플리케이션 읽기 트래픽을 처리할수 있는 기능을 제공 한다.
  1. 가용성 및 내구성
  • 자동 백업 : RDS는 데이터베이스와 트랜잭션 로그를 백업하고 사용자가 지정한 보존 기간 동안 이를 모두 저장할 수 있다. 이를 통해 데이터베이스를 보존 기간 중 어느 시점(초 단위)으로나 복원할 수 있다(최근 5분 전까지 가능). 자동 백업 보존 기간은 최대 35일로 구성할 수 있다.
  • 데이터베이스 스냅샷 : 사용자는 원하는 경우 언제든 데이터베이스 스냅샷으로 새 RDB 인스턴스를 생성할 수 있다.
  • 다중 AZ 구성 배포 : 다중 AZ 구성은 현재 서비스되는 RDB에 문제가 되어도 다른 AZ에 있는 RDB로 빠르게 장애 복구를 할수 있다. 가용성 및 내구성을 높여주므로 프로덕션 데이터베이스 워크로드에 적합하다.
  • 자동 호스트 교체 : 하드웨어에 장애가 발생할 경우, 배포를 지원하는 컴퓨팅 인스턴스를 자동으로 교체한다.
  1. 보안
  • 저장 데이터 및 전송 데이터 암호화 : RDS를 사용하면 사용자가 AWS Key Management Service(KMS)를 통해 관리하는 키를 사용해 데이터베이스를 암호화할 수 있다. 자동 백업, 읽기 전용 복제본 및 스냅샷과 마찬가지로 기본 스토리지에 저장된 데이터가 암호화 된다.
  • 네트워크 격리 : VPC에서 데이터베이스 인스턴스를 실행하여 방화벽 설정을 구성하고 데이터베이스 인스턴스에 대한 네트워크 액세스를 제어할 수 있다.
  • IAM 리소스 수준 권한 : RDS는 IAM과 통합되어 사용자 및 그룹이 특정 Amazon RDS 리소스(데이터베이스 인스턴스, 스냅샷, 파라미터 그룹 및 옵션 그룹)에서 수행할 수 있는 작업을 제어하는 기능을 제공한다. 또한 RDS 리소스에 태그를 지정하고, IAM 사용자 및 그룹이 태그가 동일하고 연관된 값을 가진 리소스 그룹에서 수행할 수 있는 작업을 제어할 수 있다.(예를 들어, 개발자는 "개발" 데이터베이스 인스턴스를 수정할 수 있고, "프로덕션" 데이터베이스 인스턴스는 데이터베이스 관리자만 수정할 수 있도록 IAM 규칙을 구성할 수 있다.)
  1. 관리 효율성
  • 모니터링 및 지표 : RDS는 추가 비용 없이 데이터베이스 인스턴스에 대한 Amazon CloudWatch와 연동해 지표를 제공한다. RDS 관리 콘솔을 사용하면 컴퓨팅/메모리/스토리지 용량 사용률, I/O 작업, 인스턴스 연결 등 주요 작업 지표를 보고 성능 문제를 신속하게 감지할 수 있는 편리한 도구인 성능 개선 도우미에 액세스할 수 있다.
  • 이벤트 알림 : Amazon SNS를 통해 데이터베이스 이벤트를 이메일이나 SMS 텍스트 메시지로 알려줄 수 있다. 
  1. 비용 효율성
  • 사용한 만큼만 비용 지불
  • 예약 인스턴스 : Amazon RDS 예약 인스턴스는 1년 또는 3년 약정 기간 동안 DB 인스턴스를 예약할 수 있는 옵션을 제공하므로 온디맨드 인스턴스 요금과 비교하여 DB 인스턴스의 시간당 요금을 대폭 할인받을 수 있다.
  • 인스턴스 중지 및 시작 : Amazon RDS를 활용하면 한 번에 최대 7일까지 데이터베이스 인스턴스를 쉽게 중지했다 시작할 수 있다. 따라서 데이터베이스를 상시 구동하지 않아도 되는 개발 및 테스트 작업에 데이터베이스를 쉽고 저렴하게 이용할 수 있다.

RDS 구성 아키텍쳐

데이터베이스는 관리가 중요하다. 
만일 어느 데이터베이스가 장애가 나면 재빨리 다른 데이터베이스로 옮겨 서비스를 지속하는 등 고가용적인 관리가 필요하다.
또한 트래픽이 몰려 데이터베이스 서버가 터지는걸 대비해 분산 기법도 이용해야 한다.

AWS RDS는 데이터베이스를 보다 효율적으로 관리할수 있게 하는 인프라 아키텍쳐 방법 3가지를 제공한다.








profile
Think big 🌏

0개의 댓글