AWS RDS 기초개념

2019-03-08

Data Engineering TIL (20190308)

study program : https://www.fastcampus.co.kr/extension_des

[학습목표]

  • AWS RDS를 이해한다.

[학습기록]

  • 2009년부터 Amazon은 관계형 데이터베이스 서비스(RDS)라는 플랫폼 형태의 서비스를 제공함으로써 기존에 서버에 데이터베이스를 탑재하는 형태처럼 더 이상 OS 및 서버에 신경 쓸 필요 없이 데이터베이스를 빌려 쓸 수 있도록 지원하기 시작했다. 이로 인해 기업입장에서 인프라 관리시 고려해야 할 옵션이 더 많아졌고 그만큼 제공할 수 있는 서비스의 질도 높일 수 있다. AWS RDS는 인프라 및 데이터베이스 업데이트를 관리해주는 것 뿐만 아니라 까다로운 관계형 데이터베이스의 설치, 운영 그리고 관리를 지원하는 서비스이다.

  • RDS는 여러 데이터베이스 인스턴스 유형으로 제공되며 Amazon Aurora, MySQL, Oracle Database 및 SQL Server 등 여러 데이터베이스 엔진을 선택할 수 있다. 또한 AWS Database Migration Service를 사용하여 기존 데이터베이스를 Amazon RDS로 손쉽게 마이그레이션 또는 복제할 수 있다.

  • AWS RDS의 Cache Architecture 요약

ElastiCache <-> EC2 <-> RDS

[AWS RDS의 Cache Architecture를 이해하기 위한 관련 개념 이해]

1) Redis 개요

  • 학습 시 참고 URL : https://goodgid.github.io/Redis

  • remote dictionary server의 약자로 대용량데이터 처리 관련 기술이다.

[특징]

  • 오픈 소스 소프트웨어이다.

  • 디스크가 아닌 메모리 기반의 데이터 저장소이다.

  • NoSQL & Cache 솔루션이며 메모리 기반으로 구성된다.

  • 명시적으로 삭제, Expire를 설정하지 않으면 데이터는 삭제되지 않는다. 다시말해 데이터의 영구적인 보존이 가능하다.

  • 여러대의 서버 구성 가능하다.

  • 데이터베이스로 사용될 수 있으며 Cache로도 사용될 수 있는 기술이다.

  • 메모리 위에서 동작하는 Key/value 저장소인 Redis는 NoSQL DBMS로 분류되며 동시에 Memcached와 같은 인메모리 솔루션으로 분리된다.

  • 다양한 데이터 구조체(Message Queue, Shared memory, Remote Dictionary)를 지원한다.

  • 안전한 데이터의 보관과 백업을 위해 두 가지 방법을 제공한다.하나는 다른 서버의 메모리에 실시간으로 복사본을 남길 수 있고, 다른 하나는 디스크에 직접 저장하는 방법이다.

  • 리스트, 배열과 같은 데이터를 처리하는데 유용하다. 예를들어서 리스트형 데이터 입력과 삭제가 MySQL에 비해서 10배정도 빠르다고 한다.

  • 메모리를 활용하면서 영속적인 데이터 보존이 가능하다. 명령어로 명시적으로 삭제, expires를 설정하지 않으면 데이터가 삭제되지 않는다.

  • Redis Server는 1개의 싱글 쓰레드로 수행되며, 따라서 서버 하나에 여러개의 서버를 띄우는 것이 가능하다. 예를들어 Master - Slave 형식으로 구성이 가능하며 이는 데이터 분실 위험을 없애주기 위함이다. 위 기능을 이용하면 실시간으로 데이터를 다른 서버에 복제할 수 있다. 즉, Master server가 down되어도, slave server로 접속하면 바로 서비스를 계속할 수 있다. 그리고 레디스의 성능을 거의 떨어뜨리지 않고 디스크 쓰기 기능을 제공한다. 레디스 시작 시 이 데이터를 읽어 들어므로 데이터 분실 위험은 거의 없다고 봐도 된다.

2) Amazon ElastiCache 개요

  • 학습 시 참고 URL : https://aws.amazon.com/ko/elasticache/redis/

  • Redis용 Amazon ElastiCache는 인터넷 규모의 실시간 애플리케이션을 지원할 수 있도록 1밀리초 미만의 지연 시간을 제공하는 놀랍도록 빠른 인 메모리 데이터 스토어이다. 오픈 소스 Redis를 기반으로 구축되고 Redis API와 호환되는 Redis용 ElastiCache는 Redis 클라이언트와 연동되며 개방형 Redis 데이터 형식을 사용하여 데이터를 저장한다. Redis용 ElastiCache는 오픈 소스 Redis의 속도, 간편성 및 다양성과 Amazon의 관리 편의성, 보안 및 확장성을 결합하여 게임, 광고 기술, 전자 상거래, 의료 서비스, 금융 서비스 및 IoT 분야에서 가장 까다로운 실시간 애플리케이션을 지원한다.

[Redshift]

  • 학습 시 참고 URL : https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/c_redshift_system_overview.html