티스토리 뷰

7장 데이터베이스 서비스 Amazon RDS

7.1 데이터베이스와 RDB: 데이터를 관리하는 시스템

- 데이터베이스는 구조적으로 정리된 데이터의 집합체이다.

- 데이터베이스를 실제로 조작하는 것은 데이터베이스 관리 시스템(DBMS)이다.

- DBMS의 종류로는 MySQL이나 PostgreSQL, Oracle Database가 있다.

- 관계형 데이터베이스와 비관계형 데이터베이스가 있다.

 

7.2 Amazon RDS란: 주요 RDBMS를 제공하는 데이터베이스 서비스

- Amazon Relational Database Service(Amazon RDS)는 관계형 데이터베이스 6종류의 제품을 클라우드에 최적화된 상태로 제공하는 서비스이다.

- 데이터베이스의 제공 방식은 EC2와 비슷하다.

- EC2와 다른 점은 RDS는 '매니지드 서비스'이며 업데이트 등의 관리가 AWS에 의해 자동으로 이루어진다는 점이다.

- 백업이 자동화되어 있으며 AWS Database Migration Server(DMS)를 사용하면 기존 데이터베이스를 이전하거나 복제하는 것도 가능하다.

- 인스턴스 클래스는 표준, 메모리 최적화, 버스트 성능의 3종류가 있다.

용도 인스턴스 클래스 내용
표준 db.m5 등 범용적인 인스턴스 클래스이다.
메모리 최적화 db.x1e 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스로, 일부 리전에서만 제공된다. 한국 리전에서는 이용할 수 있다.
db.x1 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스이다. 메모리 최대치가 db.x1e의 절반이다.
db.r5 등 네트워크와 EBS의 성능을 강화한다. AWS Nitro System을 사용한다.
버스트 성능 db.t3 등 CPU의 최대 사용률까지 버스트 성능으로 사용할 수 있다.

- RDS 요금 = 스토리지 요금 + 데이터베이스 인스턴스 요금 + 백업 스토리지 요금 + 통신료

- 스토리지 요금은 사용한 용량이 아닌 확보하고 있는 용량에 대해 과금되기 때문에 주의가 필요하다.

- 다중 AZ로 구성하여 이중화를 구축하면 단일 AZ 구성보다 약 2배의 요금이 부과된다.

- 유료 DBMS의 경우에는 라이선스 요금까지 추가된다.

- RDS 가 매니지드 서비스라는 점이 장점이자 단점이다. (쉬운 구축, 관리 vs 낮은 자유도, 한정적인 DBMS 종류 및 버전)

- RDS의 자동 업데이트를 무시하는 옵션이 있다. 하지만 치명적인 취약점에 대한 업데이트를 무시하기 힘들고 오래된 버전은 AWS가 점점 지원을 종료하므로 어느 시점에는 업데이트를 해야한다. 즉, 업데이트를 하지 않는 선택은 문제를 미루는 것에 불과하다. 업데이트를 아예 하지 않는 선택지는 없다고 생각하자.

 

7.3 RDS에서 사용할 수 있는 DBMS: 데이터베이스 엔진을 선택한다

- RDS는 AWS가 만든 Amazon Aurora 외에도 PostgreSQL, MySQL, MariaDB, Oracle Database, SQL Server 등 데이터베이스 엔진 6종류를 사용할 수 있다.

- Amazon Aurora는 MySQL이나 PostgreSQL과 호환할 수 있으며 AWS가 만든 관계형 데이터베이스이다. 요금이 비싼 편이지만 견고하고 성능이 뛰어나다.

- AWS에서 MySQL이나 PostgreSQL을 사용하는 방법은 3가지이다.

  • Amazon Aurora 를 사용하는 방법
  • RDS를 사용하는 방법
  • EC2에 설치하는 방법

 

7.4 RDS 사용 절차: 데이터베이스를 사용하기까지의 절차

- RDS 설치는 관리 콘솔의 대시보드에서 수행한다.

- 데이터베이스 사용을 위한 조작은 관리 도구나 소프트웨어에서 수행한다.

- 어떤 데이터베이스 엔진을 사용할지 결정하자.

- EC2와 마찬가지로 데이터베이스 인스턴스의 종류도 다양하게 선택할 수 있다.

- 데이터베이스 인스턴스 설정 항목

항목 의미
인스턴스 클래스 데이터베이스 인스턴스의 사양이다. EC2와 같이 여러 인스턴스 클래스를 제공한다.
다중 AZ 배포 두 개 이상의 AZ에 배포하여 이중화 구성 여부를 설정한다.
스토리지 유형 스토리지의 종류이다.
스토리지 할당 스토리지의 용량이다.
자동 스케일링 스토리지가 부족할 때 자동으로 늘릴지 여부를 설정한다.
스케일링 임계 값 자동 스케일링의 임계 값이다.
데이터베이스 클러스터 식별자 AWS에서 데이터베이스 클러스터를 관리하기 위한 이름이다. 데이터베이스명이 아니므로 주의해야 한다.
마스터 사용자명 데이터베이스 인스턴스의 관리자 권한을 가진 사용자명이다. 임의로 설정한다.
마스터 사용자 암호 데이터베이스 인스턴스의 관리자의 암호이다. 임의로 설정한다.

- 네트워크 설정 항목

항목 의미
VPC RDS를 설치할 VPC이다. VPC의 생성은 VPC 대시보드에서 수행한다. 기본 VPC도 선택할 수 있다.
서브넷 그룹 RDS를 설치할 서브넷 그룹이다. EC2 인스턴스와 연동할 경우 동일한 곳에 설치하는 것이 일반적이다.
퍼블릭 액세스 가능 데이터베이스 인스턴스에 공인 IP 주소를 할당할지 여부를 나타낸다. 같은 VPC 내의 서비스가 아닌 곳에서 데이터베이스에 직접 접속할 경우(회사 내 서버에서 직접 RDS에 접속해야 하는 경우를 말하지만 보안상으로 위험하므로 실제 사용 사례는 적을 것이다)에도 필요하다.
가용 영역 RDS를 설치할 가용 영역이다. EC2 인스턴스와 연동할 경우 동일한 곳에 설치하는 것이 일반적이다(사전에 정보를 알아 두어야 한다).
보안 그룹 인스턴스 단위로 설정하는 방화벽이다. 사용할 포트를 열지 않으면 통신이 안 되므로 주의하자. 보안 그룹이 없으면 미리 만들어 두자. 설정하면서 생성도 가능하다.

- 관계형 데이터베이스는 구축하기 전에 설계를 먼저 해야 한다.

 

7.5 키 밸류 데이터베이스: 키를 관리하는 데이터베이스 서비스

- 키 밸류 스토어(key value store) 데이터베이스란 데이터의 형식에 관계없이 어떤 데이터에 대해서 특정 '키'가 되는 값을 결합하여 저장하는 방식의 데이터베이스이다. 줄여서 KVS라고 표기한다.

- 관계형 데이터베이스와 다르게 유연성이 높아서 형식에 구애받지 않고 데이터를 입력할 수 있다.

- 반면, 어떤 것이든 데이터로 저장하므로 상세하게 검색할 수는 없다. 대신 데이터에 대한 액세스가 빠르다.

- Amazon DynamoDB : 키 밸류 스토어 데이터베이스이다. 범용적 데이터를 저장하는 데 사용한다.

- Amazon ElastiCache : 인 메모리 데이터베이스이다. 메모리를 활용하여 처리 속도가 빠르며 Redis 용과 Memcached용이 있다.

 

7.6 그 외의 데이터베이스: 다양한 데이터베이스 서비스를 제공한다

- Amazon DocumentDB는 문서 기반 데이터베이스를 제공한다.

- Amazon Neptune은 그래프 데이터베이스를 제공한다.

- Amazon Timestream은 시계열 데이터베이스를 제공한다.

- Amazon Quantum Ledger Database는 장부 데이터베이스를 제공한다.

댓글