안녕하세요. 말아탕 입니다.
오늘도 그림으로 이해하는 AWS 구조와 기술 책을 읽고 이해한 내용을 간략하게 정리해 보자(홍보 X)
7장
데이터베이스 서비스 Amazon RDS
데이터베이스 서비스 Amazon RDS
데이터베이스란
- 소프트웨어는 대규모 데이터를 다루기 위해 데이터베이스를 사용한다.
- 최근에는 데이터베이스를 사용하지 않는 서비스나 시스템은 없을 정도로 많은 시스템에서 사용하고 있다.
- 데이터베이스는 구조적으로 정리된 데이터의 집합체이다.
- 데이터베이스는 어디까지나 '데이터의 집합체'이며 데이터를 조작하는 기능은 없다.
- 데이터베이스에 명령을 할 때 사용되는 언어 중 하나가 SQL이다.
- SQL은 명령어(구문)와 명령 방법(문법)이 정의되어 있다.
- SQL은 표준화되어 있다.
DBMS
- 실제로 데이터를 조작하는 것은 DBMS(Database Management System) 데이터베이스 관리 시스템이다.
- DBMS는 데이터 저장, 삭제, 검색 등과 같이 데이터베이스를 실제로 조작하는 역할을 담당한다.
- DBMS는 유료 소프트웨어와 무료 소프트웨어가 있다.
- 유료 소프트웨어(대규모 시스템의 경우 사용) : Oracle Database, SQL Server
- 무료 소프트웨어(소규모 시스템의 경우 사용) : MySQL, PostgresSQL, MariaDB 등이 있다.
- 각 DBMS의 기능은 크게 다르지 않다. 특화된 기능이 조금씩 다를 뿐이다.
RDB와 비RDB
- 데이터베이스는 크게 관계형 데이터베이스(RDB)와 비관계형 데이터베이스(비RDB)로 나뉜다.
- 관계형 데이터베이스
관계형 데이터베이스는 주소록이나 엑셀과 같이 표 형태로 되어 있고 데이터의 종류까지 세세하게 설정하기 때문에 구축하기까지 시간이 들지만, 그만큼 정밀한 조작이 가능하다. 데이터 관련 작업은 SQL을 사용한다.
- 비관계형 데이터베이스
구조가 단순하고 설정할 부분이 적기 때문에 쉽게 구축할 수 있다. 복잡한 작업은 할 수 없지만 액세스가 빠르다. SQL을 사용하지 않기 때문에 'NoSQL 데이터베이스'라고도 한다.
Amazon RDS
- Amazon Relational Database Service(Amazon RDS)의 약자이다.
- AWS는 관계형 데이터베이스 서비스로 Amazon RDS를 제공한다.
- 관계형 데이터베이스 6종류의 제품을 클라우드에 최적화된 상태로 제공하는 서비스이다.
- 대표적인 RDBMS인 Amazon Aurora, PostgresSQL, MySQL, MariaDB, Oracle Database, SQL Server를 제공한다.
- 데이터베이스의 제공 방식은 EC2와 비슷하다. VPC상에 인스턴스 형태로 구축하며 다양한 인스턴스 클래스를 사용할 수 있다.
- EC2와 다른 점은 RDS는 '매니지드 서비스'이며 업데이트 등의 관리가 AWS에 의해 자동으로 이루어진다는 점이다.
- AWS Database Migration Server(DMS)를 사용하면 기존 데이터베이스를 이전하거나 복제하는 것도 가능하다.
- RDS 요금 = 스토리지 요금 + 데이터베이스 인스턴스 요금+ 백업 스토리지 요금+ 통신료
- RDS의 장점과 단점
- 장점 : 매니지드 서비스라는 점이다. AWS가 업데이트 등을 관리해 주기 때문에 따로 관리하지 않아도 된다. 또한, 간단하게 테이버에스를 생성할 수 있으며 데이터를 이전하기 쉽고 소프트웨어를 수정하지 않아도 이전이 가능하다. EC2와 연동하기 쉽고 같은 네트워크라면 통신료도 무료이다.
- 단점 : 사용자가 자유롭게 사용할 수 없다는 점이다. DBMS의 종류나 버전이 한정되어 있으며 AWS가 업데이트를 자동으로 수행하여 편리하지만 오히려 업데이트하면 곤란한 시점에 수행되는 경우도 있다.
인스턴스 클래스
- RDS는 EC2와 마찬가지로 인스턴스 형식으로 사용한다.
- 데이터베이스 인스턴스는 VPC에 설치해야 한다.
주요 인스턴스 클래스
용도 | 인스턴스 클래스 | 내용 |
표준 | db.m5 등 | 범용적인 인스턴스 클래스 |
메모리 최적화 | db.x1e | 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스 일부 리전에서만 제공된다. 한국 리전에서는 이용할 수 있다. |
db.x1 | 메모리를 많이 사용하는 애플리케이션에 최적화된 인스턴스 클래스이다. 메모리 최대치가 db.x1e의 절반이다. |
|
db.r5 등 | 네트워크와 EBS의 성능을 강화한다. AWS Nitro System을 사용한다. |
|
버스트 성능 | db.t3 등 | CPU의 최대 사용률까지 버스트 성능으로 사용할 수 있다. |
RDS 데이터베이스 엔진
- RDS는 DBMS 6종류를 사용할 수 있으며 온프레미스에서 AWS로 쉽게 이전할 수 있다.
- Amazon Aurora
- PostgresSQL
- MySQL
- MariaDB
- Oracle Database
- SQL Server
- SQL Server, Oracle Database와 같은 상용 데이터베이스도 지원한다.
Amazon Aurora
- Amazon Aurora는 MySQL이나 PostgresSQL과 호환할 수 있으며 AWS가 만든 관계형 데이터베이스이다.
- 요금이 조금 비싼 편이지만, 견고하고 성능이 뛰어난 장점이 있다.
- 호환성을 가지고 있어서 프로그램 및 소프트웨어를 수정할 필요가 없다.
- AWS용으로 설계되어 있기 때문에 일반적인 MySQL이나 PostgresSQL 데이터베이스에 비해 속도가 빠르다.
- 매니저드 서비스이며 안전하게 사용할 수 있다.
- AWS에서 MySQL이나 PostgresSQL을 사용하는 방법은 3가지이다.
- EC2에 설치하는 방법
- RDS를 사용하는 방법
- Amazon Aurora를 사용하는 방법
RDS 사용
- RDS를 사용하려면 관리 콘솔에서 RDS 대시보드에 접속하여 인스턴스를 생성해야 한다.
- 인스턴스를 작성하는 부분은 EC2와 같지만 매니지드 서비스이므로 업데이트가 자동으로 이루어진다.
- 데이터베이스 작업은 '데이터베이스 준비'와 '데이터베이스 사용'으로 나누어진다.
- 준비 작업 : 데이터베이스를 만들거나 설정하는 등의 조작을 말한다. 작업은 관리 콘솔에서 이루어진다. 보안패치 적용이나 업데이트는 자동으로 이루어진다.
- 사용 작업 : 데이터를 입력, 삭제, 변경하는 조작을 말한다. 데이터베이스 클라이언트(관리 도구)나 소프트웨어(애플리케이션)를 통해 이루어진다.
RDS 서비스의 기능
- RDS는 데이터베이스 서비스이므로 설정할 수 있는 항목이 여러 가지이다.
① 데이터베이스 엔진 항목
먼저 어떤 DBMS를 사용할 것인지 정해야 한다. 또한, AWS가 지원하는 버전과 지원하지 않는 버전이 있다.
② 데이터베이스 인스턴스 항목
온프레미스 환경의 물리적인 서버에 해당하는 항목이다. 사용할 수 있는 예산과 관련되기 때문에 요금과 기대 효과를 고려하여 필요한 사양을 선택한다.
③ 네트워크 항목
RDS 인스턴스는 반드시 VPC에 설치해야 한다. EC2와 연동하려면 EC2가 사용하고 있는 서브넷 그룹 및 가용 영역을 확인해야 한다.
④ 데이터베이스 환경 항목
데이터베이스별로 환경을 설정할 수 있다.
데이터베이스 환경 항목
항목 | 의미 |
데이터베이스명 | 데이터베이스의 이름 |
포트 | 사용할 포트 1433(SQL Server) 3306(MySQL) 5432(PostgresSQL) 5439(Redshift) 1521(Oracle_Database) |
데이터베이스 파라미터 그룹 | 환결 설정을 위한 옵션 설정 |
옵션 그룹 | 추가 기능에 대한 설정 |
암호화 | 암호화 여부 |
백업 | 자동으로 생성된 백업의 보존 기간 |
모니터링 | 데이터베이스 인스턴스를 모니터링 하는 방법 |
로그 내보내기 | 로그 출력(Amazon CloudWatch Logs) |
유지 관리 | 자동 업데이트에 대한 방법과 시간대 |
삭제 방지 | 삭제되지 않도록 보호 여부 |
RDS 사용 절차
- AWS에 로그인한다.
- DB 인스턴스를 생성한다.
- RDS에 접속한다.
- 데이터를 입력한다.
키 밸류 스토어 데이터베이스
- 키 밸류 스토어(key value store) 데이터베이스란 데이터의 형식에 관계없이 어떤 데이터에 대해서 특정 '키'가 되는 값을 결합하여 저장하는 방식의 데이터베이스이다.
- 줄여서 KVS라고 표기한다.
- NoSQL 데이터베이스의 대표적인 예이며 관계형 데이터베이스보다 역사가 오래되었다.
- 키라는 것은 데이터를 찾기 쉽게 하기 위한 라벨이라고 생각하면 된다.
- AWS에 키 밸류 스토어 데이터베이스는 두 종류가 있다.
- 스토리지에 저장하는 DynamoDB
- 메모리에 저장하는 Amazon ElastiCache
DynamoDB
- Amazon DynamoDB는 키 밸류 스토어 데이터베이스이다.
- 관계형 데이터베이스에 맞지 않는 범용적 데이터를 저장하는 데 사용한다.
- 키 밸류 스토어 데이터베이스는 데이터를 저장하는 형식이 정해져 있지 않다.
- 데이터끼리 연관 관계도 없다.
- 응답속도가 빠르며, VPC를 사용하지 않는 애플리케이션 환경과 궁합이 좋다.
- 테이블을 글로벌 테이블로 생성하면 전 세계 각 리전에 분산되어 복제되며, 각 리전의 테이블에 데이터가 갱신되면 자동으로 동기화된다.
Amazon ElastiCache
- Amazon ElastiCache란 인 메모리 데이터베이스이다.
- 인 메모리 데이터베이스(in-memory database)란 데이터베이스를 조작할 때마다 외부 기억 장치에 읽기/쓰기를 수행하지 않고, 빈번하게 읽고 쓰는 데이터는 일시적으로 메모리에 보관(캐시)하는 방식
- 인 메모리 데이터베이스인 Amazon ElastiCache가 DynamoDB보다 처리 속도가 더 빠르다.
- 대신 인스턴스를 재 시작할 때 데이터가 삭제가 된다.(캐시 용도로 많이 사용된다)
- ElastiCache에는 Redis용과 Memcached용이 있다.(대표적인 인 메모리형 키 밸류 스토어 DBMS)
그 외 데이터베이스
- 문서 기반 데이터베이스(Amazon DocumentDB)
Amazon DocumentDB는 MongoDB 호환 데이터베이스 서비스이다.
MongoDB란 오픈 소스의 문서 기반 데이터베이스이다.
DocumentDB는 MongoDB가 대규모의 데이터를 안정적으로 입출력할 수 있도록 설계되어 있다. 또한, 기본 MongoDB 드라이버와 도구를 사용할 수 있다는 점도 특징이다.
- 그래프 데이터베이스(Amazon Neptune)
Amazon Neptune은 '그래프 데이터베이스'이다.
그래프 데이터란 여러 가지 요소 사이의 관계 혹은 처리의 흐름을 나타내기 때문에 노드의 방향을 포함한 노드 사이의 연결을 기록한 데이터이다.
Amazon Neptune은 대표적인 그래프 모델인 Property Graph와 W3C의 RDF에서 사용하는 쿼리 언어인 Apache TinkerPop Gremlin과 SPARQL을 지원한다.
관리가 자동화되어 있고 네트워크를 통한 데이터의 읽기/쓰기는 HTTPS로 암호화된다.
- 시계열 데이터베이스(Amazon Timestream)
Amazon Timestream은 '시계열 데이터베이스' 서비스이다.
시계열 데이터베이스란 시간의 경과에 따른 사물의 변화를 기록한 데이터로 전형적인 IoT의 데이터 취득 형태이다.
Amazon Timestream에서 쿼리 처리 엔진이 시간별로 처리하는 데 최적화되어 있으며 평활법, 근사, 보간 등의 분석 함수를 사용할 수 있다.
IoT 데이터 처리 성능을 유지하고 데이터 관리 비용을 줄일 수 있다.
- 장부 데이터베이스(Amazon Quantum Ledger Database)
Amazon Quantum Ledger Database(QLDB)는 장부 데이터베이스이다.
Amazon QLDB는 데이터 변경을 추적하여 이력을 남기는 '저널 형식'을 채용하고 있다.
저널 데이터는 변경, 삭제가 불가능하며 암호화 해시 함수(SHA-256)에서 변경한 내용을 변조하는 것을 방지하고 있다.
※평활법 : 데이터의 추세나 수준 등을 분석하는 모델이다.
※근사 : 선형 함수이다.
※보간 : 두 점을 연결하는 방법이다.
참조
직접 구매 한 그림으로 이해하는 AWS구조와 기술 책
'인프라 > AWS' 카테고리의 다른 글
몇 가지 AWS 서비스 알아보기 (0) | 2024.04.27 |
---|---|
Amazon VPC 이해 (0) | 2024.04.13 |
Amazon S3 이해 (0) | 2024.04.06 |
Amazon EC2 이해 (0) | 2024.03.30 |
AWS를 사용하기 위한 도구 (0) | 2024.03.23 |