본문 바로가기

AWS

[AWS 스터디모임] RDS

RDS

0. 한 줄 요약 : RDS는 무엇이며, 왜 쓰나요?

0.1. 왜/언제 쓰나요 : Relational Database Service의 약자로 SQL을 쿼리 언어로 사용하는 DB를 위한 관리형 DB 서비스입니다.

데이터 베이스 인프라 및 업데이트들을 AWS 측에서 관리해주고(매니지드 서비스) 데이터베이스의 설치, 운영 그리고 관리 등의 서비스들을 지원하는 AWS의 관계형 데이터베이스

관계형 데이터베이스는 그 구조가 정형화되어 정밀한 조작이 가능한 데이터베이스이다.

  • 많은 양의 데이터를 효율적으로 관리하기 위해 사용합니다.
  • 무한하게 저장소를 늘릴 수 있다는 점이 장점입니다.
  • AWS과 관리하는 데이버베이스를 클라우드에서 사용할 수 있습니다.

EC2에 내가 사용하는 데이터베이스를 올리면되는데 RDS를 굳이 왜쓰나요?

더보기

EC2에 데이터베이스를 올리는 것이 사실 AWS에 지불하는 비용적인 측면에서는 더 좋습니다.

다만, 이미 준비되어 제공되고 AWS에 의해 관리되는 데이터베이스를 사용한다는 측면에서  빠른 시간 내에 가치를 이룸으로써 생기는 비용 절감이 장점으로 다가옵니다.

 

기업은 os나 데이터베이스 설치에 비용이나 인력을 쓸 필요가 없어지고 스토리지의 LUN을 구성하고 더 나은 I/O를 위해 스트라이핑 최적화에시간과 노력을 쓸 필요가 없습니다. 또한 클릭 몇 번으로 인스턴스 축소/확장을 할 수 있으니 가용성을 쉽게 얻을 수 있습니다. 직접 설치하는 것에 비해 빠르게 이룰 수 있어 단축된 도입 시간으로 시장에서 이득을 취할 수 있습니다.

 

스트라이핑이란, 
데이터를 분할하는 것을 의미합니다. 서버 한 대의 부하를 줄이기 위해 개별적으로 데이터를 분산하는 기술입니다.

1. 실제 사용 예시 : RDS는 플랫폼, 애플리케이션 등의 Data Storage로 사용됩니다.

  • 데이터 구조가 명확하고 데이터간 관계 설정에 유리합니다.
  • 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 주로 사용합니다.
  • Backend Data Storage
  • Disaster Recovery

2. 개념 및 용어(Terminology) : RDS

db 연관 AWS 시험 출제 범위
더보기

• Amazon Aurora

• Amazon Aurora Serverless

• Amazon DocumentDB(MongoDB 호환)

• Amazon DynamoDB

• Amazon ElastiCache

• Amazon Keyspaces(for Apache Cassandra)

• Amazon Neptune

• Amazon Quantum Ledger Database(Amazon QLDB)

• Amazon RDS

• Amazon Redshift

2.1. DB 인스턴스 : AWS DB 환경, Amazon RDS 기본 블록

RDS는 EC2와 같이 인스턴스 형식으로 사용합니다.

인스턴스 클래스는 표준, 메모리 최적화, 버스트 3종의 성능 클래스가 있으며, 각 클래스에 따라 다른 크기들을 제공한다.

  • micro, small, large, xlarge, 2xlarge, 4xlarge, 8xlarge, 16xlarge

사용자가 생성한 데이터베이스가 하나 이상 포함될 수 있습니다. 독립형 데이터베이스 인스턴스에 사용하는 것과 동일한 도구 및 애플리케이션을 사용하여 DB 인스턴스에 액세스할 수 있습니다.

데이터베이스 인스턴스는 vpc에 설치해야 합니다.

2.2. Engine : DB 인스턴스에서 실행되는 특정 관계형 데이터베이스 소프트웨어

아래와 같은 RDS 엔진을 제공

  1. Postgres
  2. MySQL
  3. MariaDB
  4. Oracle
  5. Microsoft SQL Server
  6. Aurora (AWS Proprietary database)

2.3. DB instance storage : 데이터를 저장할 스토리지의 용량을 결정하는 요소

  • Amazon EBS는 실행 중인 인스턴스에 연결할 수 있는 내구성이 뛰어난 블록 수준 스토리지 볼륨을 제공합니다. DB 인스턴스 스토리지에는 다음 유형이 있습니다.
    1. 일반 SSD (gp2): 이 스토리지 타입은 범용적인 사용을 위해 설계되었습니다. 용량에 따라 IOPS (입출력 연산/초)가 결정되며, 기본적으로 용량의 3배만큼의 IOPS를 제공합니다. 예를 들어, 100GB의 gp2 스토리지는 300 IOPS를 제공합니다. 일반적인 데이터베이스 워크로드에 적합하며, 비용 대비 성능이 우수하다는 장점이 있습니다.
    2. 프로비저닝된 IOPS SSD (io1, io2): 이 스토리지 타입은 높은 IOPS와 일관된 성능이 필요한 데이터베이스에 적합합니다. 사용자가 필요한 IOPS를 직접 지정할 수 있습니다. 또한, 데이터 내구성과 가용성이 더 높은 io2 타입도 있습니다. 가장 높은 성능을 요구하는 미션크리티컬 애플리케이션에 사용됩니다.
    3. 마그네틱 (standard): 이 스토리지 타입은 가장 낮은 비용을 제공하지만, 성능이 상대적으로 낮습니다. 소량의 데이터를 처리하거나 특정 시점에서만 높은 IOPS가 필요한 경우 사용됩니다.
IOPS란?
Input / Output Operation Per Second의 약어로 1초당 처리되는 Input/Output의 개수를 뜻한다. 
저장장치의 속도 단위를 나타날 때 측정단위로 사용
한다.

 

2.4. DB 인스턴스 클래스 :  Amazon RDS DB 인스턴스의 컴퓨팅 및 메모리 성능 결정

DB 인스턴스 클래스는 크게 3가지 유형으로 나눌 수 있습니다:

  1. 일반용도 인스턴스 (예: t3, t2): 이 유형은 비용 효율적이면서도 균형 잡힌 CPU, 메모리, 네트워크 성능을 제공합니다. 일반적인 데이터베이스 워크로드에 적합하다고 볼 수 있습니다.
  2. 메모리 최적화 인스턴스 (예: r5, r4): 이 유형은 메모리 집약적인 애플리케이션에 사용됩니다. 높은 메모리 대비 CPU 성능을 제공하므로, 메모리가 주요 요소인 데이터베이스에 적합합니다.

3.버스트 성능 인스턴스 (예: t3, t2)**: 이 유형은 일정한 시간 동안 높은 성능을 제공할 수 있지만, 긴 시간 동안 높은 성능을 유지하는 것은 제한됩니다. 주기적으로 높은 성능이 필요하지만, 24시간 연속으로 높은 성능이 필요하지 않은 워크로드에 적합합니다.

 

 

인스턴스 클래스와 인스턴스 스토리지는 정확히 무슨 차이?

더보기
  1. DB 인스턴스 클래스: 데이터베이스의 성능을 결정하는 주요 요소 중 하나입니다. DB 인스턴스 클래스는 서버의 CPU, 메모리, 네트워크 성능 등의 자원을 결정합니다. AWS에서는 다양한 DB 인스턴스 클래스를 제공하여 사용자의 요구에 따라 적합한 성능과 가격을 선택할 수 있게 해줍니다. 예를 들어, t2.micro, m5.large 등의 인스턴스 클래스가 있습니다.
  2. DB 인스턴스 스토리지: 데이터베이스가 저장하는 데이터의 양을 결정하는 요소입니다. DB 인스턴스 스토리지는 사용자가 선택한 DB 인스턴스 클래스와 독립적으로 설정할 수 있습니다. AWS에서는 다양한 스토리지 타입을 제공하여 사용자의 요구에 따라 적합한 스토리지를 선택할 수 있게 해줍니다. 예를 들어, 일반 SSD, 프로비저닝된 IOPS SSD, 마그네틱 등의 스토리지 타입이 있습니다.

따라서, DB 인스턴스 클래스는 데이터베이스의 성능을, DB 인스턴스 스토리지는 저장 용량을 결정하는 요소라고 이해하면 됩니다.

 

 

-


3. IAM 정책(Policies) : RDS 정책 모음

학습자료 부족, 미습득 

4. RDS 지원 기능

4.1. RDS Storage Auto Scaling


• RDS DB 인스턴스의 스토리지를 동적으로 늘릴 수 있도록 지원합니다
• RDS가 사용 가능한 데이터베이스 스토리지가 부족한 것을 감지하면 자동으로 확장됩니다
• 최대 스토리지 임계값(DB 스토리지의 최대 한도)을 설정 가능
• 모든 RDS 데이터베이스 엔진 지원

4.2. Read Replicas

  • 성능 퍼포먼스 향상을 위한 복제본 생성
  • AZ, 교차 AZ 또는 교차 영역 내 생성
    • 복제는 ASYNC이므로 읽기는 결국 일관됩니다
    • 복제본을 자신의 DB로 승격할 수 있습니다.

4.3. RDS BackUP

  • 자동 백업 (기본 사용 설정)
    • 매일 스냅샷을 만들고 트랜잭션 로그 저장
    • 저장된 데이터를 바탕으로 이전 특정 시간으로 롤백 가능 ( 스냅샷으로 부터 다른 DB 클러스터 생성)
    • 설정을 통한 1~35일 보관 지원
  • 수정 백업
    • 유저나 프로세스의 요청에 따라 스냅샷 생성
    • DB가 삭제되어도 계속 보관
    • 스냅샷의 복구는 항상 새 DB 인스턴스를 생성해서 수행

4.4. RDS Multi AZ

  • 성능 안정성 향상을 위해 제공되는 서비스
  • 두 개 이상의 AZ에 걸쳐서 DB를 구축하고 원본과 다른 DB를 StandBy로 두어 자동으로 동기화한다.(Snyc)
  • 원본 AZ에 장애 발생 시 다른 DB가 원본으로 승격
  • StandBy 상태의 DB로는 접근 불가능
  • 단점으로는 거의 같은 크기의 인스턴스가 계속 돌아가고 있기 때문에 비용이 배로 늘어난다.

 

2024.02.19 - [AWS] - [AWS 스터디모임] RDS 실습해보기