Amazon Relational Database Service(RDS)
by 현생사는갓생지망생Relational Database Service
AWS의 서비스 중에 PaaS로 구분되는 RDS, Elastic Beanstalk, ElastiCache 중 RDS에 대해 알아본다.
Amazon Relational Database Service란
클라우드에서 관계형 데이터베이스(RDBMS)를 사용할 수 있게 해주는 서비스이다.
1. AWS에서 RDBMS를 사용하는 방법은 2가지가 있다.
1. EC2 인스턴스에서 RDBMS 설치
- 서버 구축, 패치 적용, 백업을 모두 스스로 처리해야 한다.
2. RDS 사용
- 구축은 버튼 하나만 누르면 되고, 패치 적용과 백업이 자동으로 이루어지므로, 구축과 운용 비용을 줄일 수 있다.
- 편리하지만 RDS 인스턴스의 OS에 로그인할 수 없다는 것, 관리가 어렵고 불편하다는 단점도 있다.
2. RDS에서 사용할 수 있는 데이터베이스 엔진
Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, SQL Server 6가지가 있다.
3. RDS 인스턴스 유형
RDS도 EC2처럼 사용 목적에 따라 인스턴스 유형을 선택한다.
표준적인 m3 인스턴스, 메모리에 최적화된 r3 인스턴스, 가격이 저렴한 마이크로 인스턴스 등이 있다.
4. RDS 비용
RDS는 종량제 과금이다.
인스턴스 사용 시간, 스토리지 용량, I/O 요청, 백업 등에 비용이 청구된다.
RDS는 EC2처럼 정지할 수 없으며 한 번 기동하면 계속 실행되어 있다.
비용을 줄이려면 인스턴스를 삭제해야 하며, 일시적으로 사용하지 않는 인스턴스라면 백업(DB 스냅샷) 생성 후 삭제한다.
5. RDS의 라이선스
Oracle, SQL Server는 사용할 때 라이선스가 필요하다.
RDS는 라이선스 비용을 인스턴스 사용 비용에 포함한 모델과 이미 가지고 있는 라이선스를 사용하는 모델(BYOL)을 제공한다.
따라서 기존의 On Premise 시스템에서 마이그레이션할 때 현재 사용하고 있는 라이선스를 계속 사용할 수 있다.
6. RDS 백업
1. 자동 백업
1일에 1번 완전한 스냅샷을 생성할 수 있다. 생성한 스냅샷은 S3에 저장된다.
스냅샷을 생성하는 시간은 자유롭게 선택 가능하다. 자동 백업 기능을 활성화하면 특정 시점으로 복구할 수 있다.
자동 백업을 비활성화하면 특정 시점으로의 복구가 비활성화 된다.
RDS는 매일매일의 스냅샷과 트랜잭션 로그를 기반으로 데이터베이스를 과거의 특정 시점에서의 상태로 되돌릴 수 있다.
자동 백업에는 최소 1일, 최대 35일의 보존 기간이 있다.
2. DB 스냅샷(수동 백업)
자동 백업과 다르게 수동 백업은 보존 기간에 제한이 없다. 따라서 수동으로 제거해줘야 한다.
DB 스냅샷 유지에도 비용이 발생하므로, 불필요한 DB 스냅샷이 많이 생성되지 않도록 주의한다.
잠시 사용하지 않는 인스턴스를 삭제하기 전에 DB 스냅샷을 추출하고 저장한다.
7. RDS 인스턴스의 IP 주소와 DNS
RDS 인스턴스의 IP 주소는 고정되어 있지 않다.
따라서 접근할 때는 반드시 인스턴스를 생성할 때 발행되는 DNS 이름을 사용한다.
RDS의 DNS 이름을 엔드포인트(Endpoint)라고 한다.
8. RDS 인스턴스 접근 포트
RDS 인스턴스에 접근할 때는 특정 포트와 특정 프로토콜을 사용해야 한다.
ex. MySQL의 경우 접근 가능 포트 3306
RDS 인스턴스의 OS 로그인은 불가능하다.
포트는 1150 이상의 원하는 포트로 변경 가능하다.
RDS는 VPC 위에서 기동시킬 수 있다. 그러면 RDS 인스턴스를 특정 서브넷에 소속시킬 수 있으며
RDS에 부여할 IP 주소의 범위를 어느 정도 압축할 수 있다.
또한, 프라이빗 서브넷에 소속시켜 외부와의 통신을 차단시킬 수도 있다.
VPC 위에 올리면 라우팅 테이블과 네트워크 ACL도 적용시킬 수 있으므로 보다 안전한 네트워크를 구축할 수 있다.
멀티 AZ 기능을 활성화하면 RDS의 예비 복제본이 다른 AZ에 추가로 생성된다.
멀티 AZ 기능은 사용할 수 있는 리전이 제한적이다.
그리고 RDS DB instance가 사용 불가능해지면 자동적으로 FailOver된다.
FailOver가 발생해도 RDS 인스턴스의 DNS 이름은 변하지 않는다.
DNS 참조 대상이 변경될 뿐이므로, 애플리케이션에서의 접속 정보를 변경할 필요는 없지만
애플리케이션 서버 등에서 DNS를 캐시하는 경우에는 접근이 불가능해질 수 있다.
9. IOPS/스토리지 유형
범용(SSD), 프로비저닝된 IOPS(SSD), 마그네틱 중에서 스토리지를 선택할 수 있다.
선택한 스토리지에 따라 IOPS가 변한다.
10. 파라미터 그룹
파라미터 그룹은 각각의 데이터베이스 엔진에 대한 설정을 관리/적용하는 기능이다.
생성한 파라미터 그룹은 여러 개의 RDS 인스턴스에 적용 가능하다.
RDS 인스턴스 생성 후에도 파라미터 그룹을 변경하거나 다른 파라미터 그룹을 적용할 수 있다.
다만, 재부팅이 필요하다.
'AWS 공부기록 > Database' 카테고리의 다른 글
Amazon DynamoDB (0) | 2019.01.22 |
---|---|
Relational Database Service(RDS)_실습 (0) | 2019.01.21 |
블로그의 정보
현생이네
현생사는갓생지망생