일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 기초 수학
- For
- php
- deep learning
- Switch
- Backbone.js
- nodejs
- Redux
- laravel
- linux
- fastapi
- React
- Go
- CentOS
- NCP
- Redis
- SQL
- python
- AWS
- rabbitmq
- webpack
- 블레이드 템플릿
- Machine Learning
- mariadb
- docker
- nginx
- Node
- javascript
- Babel
- phpredis
- Today
- Total
개발일기
AWS - RDS(Relational Database Service)란? 본문
AWS RDS란?
데이터 베이스 인프라 및 업데이트들을 AWS 측에서 관리해주고 데이터베이스의 설치, 운영 그리고 관리 등의 서비스들을 지원하는 AWS의 관계형 데이터베이스이다. 현재 AWS RDS는 MySQL, Oracle, SQL Server, PostgreSQL, MariaDB, Microsoft SQL Server 그리고 MySQL, PostgreSQL과 호환이 되는 Aurora DB를 제공한다. Aurora DB는 다른 관계형 데이터베이스보다 성능과 속도 면에서 빠르다는 이점을 가지고 있다.
AWS에서 DB를 사용하는 방법
AWS EC2를 이용할 때, EC2 인스턴스에 관계형 데이터베이스를 직접 설치하거나 AWS RDS 를 이용하는 데이터베이스를 사용하는 2가지의 방법이 존재한다.
- EC2에 직접 설치 : EC2에 직접 데이터베이스를 설치할 경우, 사용자가 데이터베이스의 업데이트와 관리, 백업 등을 모두 관리해야 하는 나름의 장점이자 단점이 발생한다.
- RDS를 사용 : RDS를 사용할 경우, AWS에서 모든 것을 관리하기 때문에, 데이터베이스 부분에 대해 신경을 쓰지 않고 개발을 진행할 수 있다는 장점이 있다. 하지만 RDS를 사용하면 부가적인 요금이 발생한다는 단점이 존재한다. 또한 RDS는 요금을 예측하기 힘들다는 단점을 추가로 가지고 있다.
사용자가 자신의 상황을 고려하여 이 2가지 방법 중 하나를 선택하여 데이터베이스를 운영하면 된다.
RDS 스토리지 유형
RDS은 성능에 따라 세가지 유형의 스토리지를 제공한다. 각각의 유형에 따라 성능 및 가격에 차이가 있기 때문에 적합한 유형을 찾아 사용해야 한다. SQL Server는 최대 16TB까지 생성이 가능하고 MySQL, Oracle, Maria DB, PostgreSQL 등 다른 RDS는 최대 64TB까지 데이터베이스 인스턴스 생성이 가능하다.
- 범용 SSD : 말그대로 어떤 상황에서도 두루두루 쓸 수 있는 스토리지 유형이다. 1GB 당 3IOPS의 일관된 성능을 제공한다. 또한, 범용 SSD에서는 순간적으로 RDS의 성능을 확장시킬 수 있는 버스팅 기능을 제공한다. 최대 3000IOPS까지 버스팅할 수 있는 성능을 가지고 있다. 버스팅 기능을 사용할 경우, 지연 시간은 한 자리수를 기록할 만큼 빠른 성능을 보여준다. 정리하자면 범용 SSD는 비용 효율적이고 기본적인 스토리지 유형이기에 대부분의 데이터베이스에 적합한 스토리지 유형이다.
여기서 말하는 IOPS란?
Input / Output Operation Per Second의 약어로 1초당 처리되는 Input/Output의 개수를 뜻한다. 저장장치의 속도 단위를 나타날 때 측정단위로 사용한다.
- 프로비저닝 된 IOPS : 이 스토리지 유형은 빠르고 일관적인 성능을 필요로 하는 애플리케이션에 적합한 스토리지 유형이다. 성능 예측이 가능하고 짧은 지연 시간을 가지고 있다는 장점을 가지고 있다. 빠른 성능을 요구하는 OLTP(On-Line Transaction Proceessing) 환경에서 주로 사용되는 스토리지 유형이다. 여기서 OLTP란 시스템이 사용자의 처리 요청을 즉각적으로 처리하고 오류없이 수행할 수 있도록 하는 것을 뜻한다. 은행이나 증권거래에서 인출, 송금 및 요금 조회 등이 쉼없이 발생하고, 이에 따라 즉각적으로 오류 없이 수행되어야 하는 금융권의 특성을 생각해보면 이해하기가 한층 쉬워진다.
AWS 공식 문서에 있는 내용으로써, 프로비저닝된 IOPS는 각각의 데이터베이스 엔진에 따라 달라진다는 것을 확인할 수 있다.
- 마그네틱 스토리지 : 이전 버전과의 호환을 위해 지원하는 스토리지 유형이다. 말 그대로 호환을 위해 제공하기 때문에 다른 스토리지 유형에 비해 성능 및 옵션에 대해 제약사항이 크다. 새로운 RDS 스토리지를 생성할 때는 마그네틱 스토리지가 아닌 위의 범용SSD 또는 프로비저닝된 IOPS를 사용할 것을 권장한다.
Multi AZ란?
RDS에서는 고가용성을 위해 Multi AZ( 다중영역) 배포를 지원한다. 먼저, 고가용성이란 사람이 개입하지 않은 상태에서도 시스템이 항상 작동하며 시스템의 가동 중단을 최소화하는 것을 뜻한다.
이처럼 고가용성 보장을 위해 Master RDS에 예기치 않은 장애가 발생하면 다른 AZ에 설치되어 있는 RDS인스턴스를 가동하여 시스템의 중단없이 서비스가 계속 이어지도록 하는 특징이다. 대기중인 RDS 인스턴스는 Master RDS에서 발생하는 데이터 내용의 변화를 동기방식으로 복제하여 동일한 데이터를 보유하도록 데이터를 유지하는 기능만 한다. 대기중인 RDS 인스턴스에서는 이 기능 외에는 따로 작동하는 기능은 없다.
고가용성이 보장된다는 장점이 있지만, 데이터를 동일하게 유지시키기 위해 쓰기 작업이 지속적으로 발생되어 지연이 생길 수 있다는 단점이 존재한다.
Read Replica란?
RDS의 각 데이터베이스 엔진에서 기본 복제 기능을 사용하여 원본 데이터베이스 인스턴스의 읽기 전용 복사본을 추가로 생성할 수 있다. 각 인스턴스 당 최대 5개의 읽기 전용 복제 인스턴스를 생성할 수 있다.
데이터 베이스 성능을 향상 시키기 위해 읽기 전용 복제 인스턴스(Read Replica)를 생성할 수 있다. 복제 인스턴스를 생성하여 Master 인스턴스에서는 쓰기 작업을 담당하고, 복제 인스턴스에서는 읽기 작업을 담당하도록 역할군을 나눌 수 있다.
데이터베이스는 주로 읽기 작업이 많이 이루어 진다. 읽기와 쓰기 작업을 모두 진행하면 Master 인스턴스에 많은 부하가 발생할 수 있기에 읽기 작업만 담당하는 복제 인스턴스를 생성하여 Master 인스턴스의 부하를 해소시켜주는 장점을 가지고 있다. 또한 Multi AZ와는 다르게 쓰기 작업이 진행될 때, 비동기 방식으로 복제 인스턴스에 변경된 값을 복제하여 동일한 데이터가 유지되도록 작동한다.
참고 사이트 :
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Welcome.html
https://dev.classmethod.jp/articles/for-beginner-rds-explanation/
'Web 서비스 > AWS' 카테고리의 다른 글
AWS - AWS CLI로 인증 정보 관리하기 (0) | 2023.01.13 |
---|---|
AWS - EC2(Elastic Compute Cloud)란? (0) | 2022.05.20 |
AWS - IAM(Identity and Access Management)란? (0) | 2022.05.20 |
AWS S3에 파일 업로드 (0) | 2021.05.31 |