YataNox
[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 엔진을 제공
- Postgres
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- Aurora (AWS Proprietary database)
2.3. DB instance storage : 데이터를 저장할 스토리지의 용량을 결정하는 요소
- Amazon EBS는 실행 중인 인스턴스에 연결할 수 있는 내구성이 뛰어난 블록 수준 스토리지 볼륨을 제공합니다. DB 인스턴스 스토리지에는 다음 유형이 있습니다.
-
- 일반 SSD (gp2): 이 스토리지 타입은 범용적인 사용을 위해 설계되었습니다. 용량에 따라 IOPS (입출력 연산/초)가 결정되며, 기본적으로 용량의 3배만큼의 IOPS를 제공합니다. 예를 들어, 100GB의 gp2 스토리지는 300 IOPS를 제공합니다. 일반적인 데이터베이스 워크로드에 적합하며, 비용 대비 성능이 우수하다는 장점이 있습니다.
- 프로비저닝된 IOPS SSD (io1, io2): 이 스토리지 타입은 높은 IOPS와 일관된 성능이 필요한 데이터베이스에 적합합니다. 사용자가 필요한 IOPS를 직접 지정할 수 있습니다. 또한, 데이터 내구성과 가용성이 더 높은 io2 타입도 있습니다. 가장 높은 성능을 요구하는 미션크리티컬 애플리케이션에 사용됩니다.
- 마그네틱 (standard): 이 스토리지 타입은 가장 낮은 비용을 제공하지만, 성능이 상대적으로 낮습니다. 소량의 데이터를 처리하거나 특정 시점에서만 높은 IOPS가 필요한 경우 사용됩니다.
IOPS란?
Input / Output Operation Per Second의 약어로 1초당 처리되는 Input/Output의 개수를 뜻한다.
저장장치의 속도 단위를 나타날 때 측정단위로 사용
한다.
2.4. DB 인스턴스 클래스 : Amazon RDS DB 인스턴스의 컴퓨팅 및 메모리 성능 결정
DB 인스턴스 클래스는 크게 3가지 유형으로 나눌 수 있습니다:
- 일반용도 인스턴스 (예: t3, t2): 이 유형은 비용 효율적이면서도 균형 잡힌 CPU, 메모리, 네트워크 성능을 제공합니다. 일반적인 데이터베이스 워크로드에 적합하다고 볼 수 있습니다.
- 메모리 최적화 인스턴스 (예: r5, r4): 이 유형은 메모리 집약적인 애플리케이션에 사용됩니다. 높은 메모리 대비 CPU 성능을 제공하므로, 메모리가 주요 요소인 데이터베이스에 적합합니다.
3.버스트 성능 인스턴스 (예: t3, t2)**: 이 유형은 일정한 시간 동안 높은 성능을 제공할 수 있지만, 긴 시간 동안 높은 성능을 유지하는 것은 제한됩니다. 주기적으로 높은 성능이 필요하지만, 24시간 연속으로 높은 성능이 필요하지 않은 워크로드에 적합합니다.
인스턴스 클래스와 인스턴스 스토리지는 정확히 무슨 차이?
- DB 인스턴스 클래스: 데이터베이스의 성능을 결정하는 주요 요소 중 하나입니다. DB 인스턴스 클래스는 서버의 CPU, 메모리, 네트워크 성능 등의 자원을 결정합니다. AWS에서는 다양한 DB 인스턴스 클래스를 제공하여 사용자의 요구에 따라 적합한 성능과 가격을 선택할 수 있게 해줍니다. 예를 들어, t2.micro, m5.large 등의 인스턴스 클래스가 있습니다.
- 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로는 접근 불가능
- 단점으로는 거의 같은 크기의 인스턴스가 계속 돌아가고 있기 때문에 비용이 배로 늘어난다.
'AWS' 카테고리의 다른 글
[AWS 스터디 모임] ElasticCache 생성해보기 (0) | 2024.03.04 |
---|---|
[AWS 스터디모임] ElasticCache (0) | 2024.03.04 |
[AWS 스터디모임] EC2 Instance Storage (0) | 2024.02.26 |
[AWS 스터디모임] RDS 실습해보기 (0) | 2024.02.19 |
AWS VPC 및 서브넷 설정하기 (0) | 2023.10.13 |