[AWS] RDS : 서비스 개요 및 프로비저닝 설정
이번 포스팅에서는 AWS에서 제공하는 관계형 데이터베이스 서비스인 RDS의 기능 및 프로비저닝 설정 과정에 대해서 포스팅해보려고 한다.
1. DB 엔진 설정
2. 가상 머신(EC2) 및 스토리지 설정
3. VPC 설정 및 보안 그룹
- DB Subnet Group
4. 백업
5. 암호화
6. 읽기 전용 복제본
7. RDS Multi AZ
- RDS Multi Region
8. 데이터베이스 설정 및 파라미터
- DB Parameter Group
9. Cloudwatch 지표 및 로그 수집
RDS (Relational Database Service)
- AWS의 관계형 데이터베이스 (RDBMS)
- 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업 등 관리 작업 자동화, 유연한 용량 제공
- 가상 머신(EC2)에서 동작 → 직접 시스템에 로그인 불가능, OS 패치 및 관리는 전적으로 AWS가 담당.
- 인스턴스 중지 가능 → 그렇지만 7일 후에 자동으로 다시 시작되므로 과금에 유의.
- RDS는 Serverless가 아니다. (↔ Aurora Serverless)
- AWS의 NoSQL 서비스 : DynamoDB, DocumentDB, ElasticCache)
1. DB 엔진 설정
- MSSQL, Oracle, MySQL Server, PostgreSQL, MariaDB, Amazone Aurora 등
- Amazone Aurora : MySQL, PostgreSQL과 호환 가능, 분산 저장을 통한 고가용성과 자동 장애 복구 기능 제공.
- MSSQL, Oracle : 오픈소스가 아니기 때문에 라이선스 비용 추가
- 템플릿 : 사용 목적(개발/테스트, 프로덕션, 고가용성 등)에 따라서 템플릿 선택 가능. 이에 따라서 비용이 달라짐
- 선택한 템플릿에 따라 비용과 사용 가능한 RDS 옵션이 달라짐
2. 가상 머신(EC2) 및 스토리지 설정
내부에서는 EC2를 활용 → EC2 타입의 지정 필요, 스토리지는 EBS를 활용 (EBS 타입 및 용량 선택 필요)
3. VPC 설정 및 보안 그룹
- VPC 내부에서 동작 → 서브넷과 보안그룹 지정 필요, Public IP를 부여하지 않으면 외부에서 접근 불가능
- 실무에서는 주로 Private Subnet에 DB Instance를 위치시킴
- RDS 생성 시 두 종류의 IP가 할당
- Private IP : VPC 내부의 리소스가 RDS에 접근하기 위해서 사용
- Public IP : 퍼블릭 접근 가능 옵션을 선택했을 경우 할당, Private Subnet에 DB 인스턴스가 위치할 시 할당되지 않음.
- RDS의 IP는 고정되지 않고 변경 가능 → DNS 기반 접근을 권장.
DB Subnet Group
- RDS가 프로비전되는 서브넷을 묶은 그룹
- 최소 두 개 이상의 같은 리전의 서브넷 필요
4. 백업
RDS는 자동 백업과 수동 스냅샷을 제공한다.
- 자동 백업은 최대 35일까지 보관 가능하며, 스토리지 비용이 발생한다.
- 스냅샷은 사용자가 직접 생성 및 삭제할 수 있으며, 백업에서 새로운 인스턴스를 복원할 수 있다.
5. 암호화
RDS는 AWS KMS(Key Management Service)를 사용해 데이터를 암호화할 수 있다.
암호화된 인스턴스에서는 스냅샷, 복제본, 백업도 자동으로 암호화된다.
한번 암호화된 RDS 인스턴스는 비암호화 상태로 직접 변환할 수 없다.
6. 읽기 전용 복제본
Write는 원본 DB(Primary DB)에, Read는 복제본(Standby DB)에서 처리하여 워크로드를 분산하는 방식을 사용할 수 있다.
- 읽기 부하 분산을 위해 원본 RDS 인스턴스를 복제한 읽기 전용 DB 인스턴스
- 비동기 복제를 사용하여 원본 데이터베이스의 변경 사항을 반영
- 복제본에서는 읽기 작업만 가능하며, 쓰기 작업은 불가능
- 필요 시 독립적인 RDS 인스턴스로 승격(Failover)하여 단독 DB로 운영 가능
- MySQL, PostgreSQL, MariaDB, Oracle, Amazon Aurora에서 지원
7. RDS Multi AZ(Avalability Zone)
- 두 개 이상의 가용 영역(AZ)에 걸쳐 DB를 복제하여 장애 발생 시 가용성을 보장
- Primary DB와 Standby DB를 자동으로 동기화(Sync)하며, 동기 복제(Synchronous Replication) 방식 사용
- Primary DB 장애 발생 시 자동으로 Standby DB가 Primary로 승격(Failover)
- Standby DB는 직접 접근할 수 없으며, 읽기 작업 불가능
RDS Multi Region
다른 리전에 지속적으로 동기화시키는 DB 클러스터 생성 및 Async 복제
8. 데이터베이스 설정 및 파라미터
초기 데이터베이스 이름
- RDS 인스턴스가 생성될 때 자동으로 생성할 기본 데이터베이스의 이름을 지정한다.
- 지정하지 않으면 데이터베이스가 자동으로 생성되지 않고 직접 생성해야 한다.
DB 파라미터 그룹
- DB 엔진 설정을 정의하는 파라미터 그룹을 선택하는 부분
- 예를 들어 max_connections, innodb_buffer_pool_size 같은 설정을 조정 가능
옵션 그룹
- 특정 기능(예: TDE, Audit Logging 등)을 활성화할 수 있는 옵션 그룹을 설정한다.
- 기본값은 AWS가 제공하는 기본 설정을 사용한다.
DB Parameter Group
- DB의 주요 파라미터 (Time Zone, Password 유효시간 등)을 묶은 논리적 단위
- 미리 저장해 둔 파라미터 설정 그룹으로 여러 RDS에 적용 가능
9. CloudWatch 지표 및 로그 수집
- RDS 인스턴스의 OS 및 데이터베이스 성능을 모니터링하는 기능을 설정
- CloudWatch Logs와 연동하여 특정 로그 데이터를 저장 및 분석 가능
- Enhanced Monitoring을 활성화하면 프로세스 수준의 성능 데이터를 확인 가능
References
https://docs.aws.amazon.com/
docs.aws.amazon.com
쉽게 설명하는 AWS 기초 강의 강의 | AWS 강의실 - 인프런
AWS 강의실 | , 안녕하세요. AWS 강의실입니다.AWS 공식 커뮤니티 빌더이자 2만명의 구독자를 보유한 AWS Only 강의 유튜브의 경험으로 AWS를 쉽게 알려드립니다.이 강의는AWS의 서비스 및 활용 지식을
www.inflearn.com
'Backend > AWS' 카테고리의 다른 글
[AWS + Spring] RDS + Secrets Manager 연동하기 (0) | 2025.03.11 |
---|---|
[AWS] RDS : 자격 증명과 Connection (+ AWS Secrets Manager & RDS Proxy) (0) | 2025.03.10 |
[AWS] Amazone Athena & Amazone Glue : 데이터 소스에 대한 스키마 분석 및 쿼리 수행 기초 (0) | 2025.02.19 |
[AWS] S3 활용 : Static Hosting (정적 웹 호스팅) (0) | 2025.02.19 |
[AWS + Spring] S3 : 파일 업로드 & 다운로드 (2) (Presigned URL, Multipart Upload) (0) | 2025.02.17 |