티스토리 뷰

Amazon RDS(Amazon Relational Database Service)




RDS는 데이터베이스 PaaS이며 클라우드상에서 관계형 데이터베이스(RDMS)를 이용할 수 있는 서비스입니다.

AWS에서 RDMS를 이용할 경우 EC2 인스턴스에 RDMS를 설치하는 방법

AWS가 제공하는 RDS를 사용하는 두 가지 방법이 있습니다.


EC2에서 RDMS를 이용할 때는 서버 구축은 물론, 패치 적용, 백업 처리 등을 자신이 직접해야 합니다.

그러나 RDS를 쓰면 OS, 데이터베이스 설치 및 설정이 이미 돼 있고 패치 적용 및 백업도 자동으로 처리됩니다.

그러므로 RDS를 사용하면 구축과 운용 비용을 절감할 수 있습니다. 반면 RDS 인스턴스의 OS에 로그인할 수 없거나 유지보수 시간을 조정하기 어려운 등, 기존 운용 방식과 다른 점도 있습니다.



1) Amazon RDS에서 자동으로 수행하는 관리 작업에는 어떤 것이 있습니까?


RDS는 고객이 요구하는 인프라 용량 프로비저닝에서 데이터 베이스 소프트웨어 설치에 이르기까지 관계형 데이터베이스 설정과 관련된 작업을 관리합니다. 데이터베이스가 시작 및 가동되면 Amazon RDS에서 백업 수행,

데이터베이스를 지원하는 소프트웨어 패칭 등과 같은 일반적인 관리 작업을 자동화합니다.

옵션인 다중 AZ 배포를 사용하여 Amazon RDS에서 자동 장애 조치를 통해 가용 영역 전체에서 동기식 데이터 복제를 관리합니다.











*** RDS에서 이용할 수 있는 데이터베이스 엔진의 종류와 Aurora***


Amazon Aurora

PostgreSQL

MySQL(Aurora)

MariaDB

Oracle

SQLServer(Aurora)


Aurora는 RDS와 같은 AWS의 관리형 서비스로 장애발생시 감지, 자동 장애 조치(failover), 디스크의 자동확장,

읽기 전용 레플리카 등의 가용성을 높이는 기능과 같은 스펙의 하드웨어에서 구축한 MySQL, PostgreSQL에 비해 몇 배의 성능을 발휘하는 등 뛰어난 특징이 있습니다.


AuroraDB의 라이선스 비용이 필요 없고 사용 데이터베이스에 비해 비용 측면에서 유리합니다. 또 RDS에 비해서도 내구성이 좋고 장애시의 장애 조치 속도 등에서 뛰어납니다.

구성을 검토할 때는 먼저 Aurora를 적용할 수 있는지를 검토합시다.







AWS의 NoSQL 서비스


AWS가 제공하는 데이터베이스는 RDS만이 아닙니다. NoSQL이라고 하는 데이터베이스도 제공합니다.

한마디로 NoSQL이라고 말해도 칼럼 지향형, 키-값(Key-Value)형, 문서 지향형 등 여러가지가 있습니다.

한마디로 설명하기에는 무리가 있지만 AWS의 데이터베이스 서비스와 데이터 모델의 대응표를 살펴보겠습니다.


서비스명

데이터 모델

특징

RDS

행 지향형

Oracle, SQL Server, MySQL 등 주요 RDBMS를 관리형 서비스로 이용 가능

 DynamoDB

문서 지향형

키-값으로서도 사용 가능, 스키마리스로 문서 지향형의 성격도 가지며 유연한 사용법이 가능

 ElastiCache

 KVS형

 Memcached, Redis를 관리형 서비스로 이용 가능

 Redshift

 칼럼 지향형

 관리형 데이터 웨어하우스로서 페타바이트 급의 데이터 처리가 가능

 Elasticsearch Service

 문서 지향형

 Elasticsearch를 관리형 서비스화한 것으로 검색 기능이 뛰어남

 CloudSearch

 문서 지향형

 Apache Lucene/Solr를 관리형 서비스화한 것으로 텍스트 검색 기능을 제공







Amazon ElastiCache





On-Premis를 마이그레이션할 때 자주 사용하는 서비스 중 하나로 RDS외에 ElasticCache가 있습니다.

ElastiCache는 인 메모리 캐시 시스템 PaaS입니다. 지원하는 엔진은 Memcached와 Redis입니다.

ElastiCache를 사용하면 데이터베이스 캐시를 통한 고속화,

어플리케이션 세션 스토어를 통한 장애 해결 능력 향상 등이 가능해집니다.


RDS처럼 풀 매니지먼트 서비스(Full Management Service)이므로, ElastiCache를 활용하면 서버 유지 관리, 장애가 발생했을 때의 페일오버 등을 따로 하지 않아도 됩니다.


AWS에서는 가용성 향상을 위해 ELB를 사용할 때가 많지만 그때 AP 서버 인스턴스가 상태(스테이트)정보를

갖고 있으면 장애가 발생해서 장애 조치가 이뤄졌을 때 상태 정보가 소실되는 문제가 있습니다.


AWS의 베스트 프랙티스는

AP 서버에는 세션 등의 상태 정보를 맡기지 말고 ElastiCache에 상태 정보를 맡기는 방식으로 설계하는 것입니다.





Amazon DynamoDB



DynamoDB는 Key-Value라는 특징과 문서 지향적인 성격이 있고

MongoDB와 대비되는 경우가 많은 서비스입니다.


Lambda와의 궁합도 좋고, 서버리스 아키텍처 데이터베이스로 많이 이용되고 있습니다.








Amazon Redshift




Redshift는 칼럼 지향형으로 대규모 데이터 웨어하우스 용도로 사용합니다. 페타바이트급 데이터를 취급할 수 있고 상용 데이터 웨어하우스 제품과 비교해서 비용 측면에서 뛰어나다는 점이 주목받고 있습니다.