티스토리 뷰
Amazon 데이터베이스 서비스 정리하기 전에 참고하면 좋을 내용
* 데이터(Data)
- 어떤 이론을 세우는데 기초가 되는 자료
- 문제와 숫자, 그림, 영상 등의 형태로 된 단위
* 정보(Information)
- 이런 데이터를 특정 목적에 따라 가공하고 이론을 세워 의미와 가치를 부여한 결과
* 데이터베이스(Database)
- 데이터를 하나에 모아 두는 것으로, 간단히 데이터를 모아 두는 집합이라고 정의
* DBMS(DataBase Management System)
- 데이터에 대해 사용자의 논리적 명령을 해석하고 필요한 데이터를 찾아 주는 시스템
* 데이터베이스 모델 유형
1) 계층형(Hierarchical) 데이터베이스 모델
- 트리(tree) 구조를 기반으로 하며, 데이터는 1:N으로 상하 종속 관계 구조로 되어 있음
- 데이터에 빠르게 접근이 가능하지만, 구조 변경에 대한 유연성이 부족하다는 단점 존재
2) 네트워크형(Network) 데이터베이스 모델
- 계층형 데이터베이스의 정형화된 구조를 해결하기 위해 1:N 뿐만 아니라 1:1, N:N형태의 구조를 가질 수 있음
- 하위 개체는 다수의 상위 개체를 가질 수 있어 형태가 조금 더 자유로움
- 다양한 개체 간 연결에 따라 복잡성은 높아짐
- 위 이유로 인해 데이터베이스 전반의 구조를 이해하는 데 어려움이 있음
3) 관계형(Relational) 데이터베이스 모델
- 데이터의 논리적 관계를 초점을 둔 모델
- 특정 개체 정보를 이용해 열과 행으로 된 테이블이라는 최소 단위로 구성됨
- 계층형과 네트워크형 데이터베이스 모델은 데이터가 변화하면 상관관계에 따라 모든 데이터를 변경해야 함
- 관계형 데이터베이스 모델은 데이터가 변화하면 쉽게 적용할 수 있다는 장점이 있음
- 시스템 자원을 많이 차지해서 상대적으로 느리다는 단점 있음
- 계속 하드웨어가 발전하면서 느리다는 단점은 해소 되어 감
- 현재 가장 많이 사용하는 데이터베이스 모델
- SQL이라는 프로그래밍 언어를 사용해 손쉽게 데이터베이스를 읽고 쓰고 해석함
4) 객체(Object-oriented) 지향형 데이터베이스 모델
- 모든 데이터를 테이블로 구성하는 관계형 데이터베이스 모델과 달리 객체라는 형태의 최소 단위로 표현함
- 객체 집합을 정의하고 연결 구조를 확립하여 복잡한 객체 구조도 즉각적으로 표현할 수 있음
- 사용자 정의 데이터, 멀티미디어 등 비정형 데이터도 지원함
- 보편적으로 사용하는 관계형 데이터베이스의 호환성 문제와 복잡성에 따른 문제가 있음
- 현재 객체 지향형 데이터베이스 모델은 특수한 전문 분야가 아니면 잘 사용하지 않음
* 관계형 DBMS의 SQL 데이터 정의/조작/제어
1) 정의
- CREATE : 테이블을 구성하고 속성에 대한 제약을 정의하는 명령어
- ALTER : 생성된 테이블 속성을 정의하고 변경하는 명령어
- DROP : 생성된 테이블을 삭제하는 명령어
2) 조작
- SELECT : 테이블에 있는 정보를 가져오는 명령어
- INSERT : 테이블에 새로운 데이터를 삽입하는 명령어
- UPDATE : 테이블에 있는 데이터를 수정하는 명령어
- DELETE : 테이블에 있는 기존 데이터를 삭제하는 명령어
3) 제어
- GRANT : 테이블에 대한 권한을 허용하는 명령어
- DENY : 테이블에 대한 권한을 차단하는 명령어
- REVOKE : 테이블에 대한 권한을 회수하는 명령어
* DBMS 종류
- 다양한 회사에서 만든 DBMS 제품들이 있는데, 대표적으로 Oracle, MySQL, PostgreSQL 등 있음
* 데이터베이스 유형별 AWS 데이터베이스 서비스
데이터베이스 유형 | AWS 데이터베이스 서비스 | 주요 특징 | 사용 사례 |
관계형 | Amazon RDS Amazon Aurora |
참조 무결성, 안전한 트랜잭션 수행 | ERP, CRM, 전자상거래 |
키-값 | Amazon DynamoDB | 빠른 응답 시간, 처리량 | 대규모 트래픽의 웹 서비스 게임 APP |
문서형 | Amazon DocumentDB | 각종 문서 저장 인덱싱 | 콘텐츠 관리, 카탈로그, 프로필 |
인-메모리 | Amazon ElastiCache | 메모리 저장, 1밀리초 응답 시간 | 캐싱, 세션 관리 |
그래프형 | Amazon Neptune | 쉽고 빠른 데이터 관계 생성 및 탐색 | 소셜 네트워킹, 추천 엔진 |
시계열 | Amazon Timestream | 순차적 데이터 수집, 저장, 처리 | DevOps, 산업용 텔레메트리 |
원장 | Amazon QLDB | 모든 변경에 대한 불변, 검증 기록 유지 | 레코드 시스템, 은행 거래 |
* Amazon RDS(Relational Database Service)
- 클라우드 환경에서 관계형 데이터베이스를 간편하게 설정하고 운영할 수 있는 서비스
- 원하는 성능 요구에 따라 다양한 데이터베이스 인스턴스 유형을 선택할 수 있음
- Amazon Aurora, PostgreSQL, MariaDB, Oracle Database 등등 관계형 데이터베이스 엔진 선택 가능
- 관계형 데이터베이스 모델 유형으로 행과 열로 구성됨
- 관계형 데이터베이스 엔진을 사용하기 때문에 SQL 언어 기반으로 데이터베이스를 손쉽게 제어 가능
- 사용 편의성이 높고, 모니터링 및 지표와 이벤트 알람을 이용하여 높은 관리 효율성을 보장함
- 비용도 상대적으로 매우 저렴하며, 간편한 복제 기능을 이용해 워크로드의 가용성과 확장성을 확보할 수 있음
* Amazon RDS 데이터 복제
1) Multi-AZ 복제 방식
- 기본적으로 Active-Standby 형태로 동작함
- Primary DB가 활성 상태이며, 보조의 Standby Replica가 대기 상태임
- Primary DB에 문제가 발생하면 Standby Replica를 Primary DB로 승격해 동적으로 유지함
- 데이터 정합성을 유지하는 것이 가장 중요함
► 데이터 정합성 : 데이터가 서로 일관되게 일치하는 것
이를 위해 동기식 복제로 다른 가용 영역에 있는 데이터베이스와 데이터 동기화하는 것
- 동기식 복제 방식을 따르는 고가용성 유지가 목적임
2) Read Replica 복제 방식
- 원본 데이터를 Primary DB에 저장함
- 읽기 전용의 복제 데이터를 Read Replica 데이터베이스에 생성하여 유지함
- 읽기 전용 복제 데이터가 있는 Read Replica 데이터베이스는 확장이 가능하며, 데이터 읽기 처리 속도를 높일 수 있음
- Amazon RDS는 최대 다섯 개의 Read Replica 데이터베이스를 복제할 수 있음
- Amazon RDS는 다른 리전까지 Read Replica 데이터베이스를 가질 수 있음
- 읽기 전용의 복제를 생성하여 성능을 확장하는 것이 목적
* Amazon Aurora
- AWS 관계형 데이터베이스 서비스는 Amazon RDS를 이용해 MySQL, PostgreSQL, Oracle 등 데이터베이스 엔진을 주로 사용하다 Amazon Aurora라는 AWS 자체의 클라우드 데이터베이스 엔진을 개발함
- Amazon Aurora는 엔터프라이즈 수준의 관계형 데이터베이스 엔진으로 안정적이고 고성능의 데이터베이스 처리 가능
- 오픈 소스를 기반으로 다른 관계형 데이터베이스와 호환성이 우수하며, 비용 효율이 높다는 장점 가지고 있음
- Amazon RDS에서 관리하며 프로비저닝, 패치, 백업, 복원, 장애복구 등 작업 수행
- 다른 관계형 데이터베이스 엔진보다 스토리지 내결함성이 우수함
[복제 방식]
MySQL 데이터베이스 엔진은 데이터베이스 인스턴스에 EBS 스토리지가 연결되어 서로 다른 가용 영역으로 동기식 복제가 되지만, Amazon Aurora 데이터베이스 엔진은 공유 스토리지를 통해 최소 세 개의 가용 영역에서 두 개씩 총 여섯 개의 복제 데이터를 가지고 있어 더욱 안정적으로 서비스할 수 있음
* Amazon DynamoDB
- 비관계형 데이터베이스로, 키-값(Key-Value) 메소드를 사용하는 키-값 데이터베이스
- 비관계형 데이터베이스는 관계형 데이터베이스와 다르게 데이터가 서로 연결되지 않는 개별 형태로 저장하여 복잡하고 구조화되지 않은 데이터 유형에 적합한 데이터베이스
- SQL문을 사용하지 않으며 키를 데이터의 고유한 식별자로 사용하고, 값은 유형의 제한이 없어 단순한 개체 뿐 아니라 복잡한 집합체까지 무엇이든 가능한 비정형 데이터를 입력할 수 있음
- 키와 값을 쌍으로 집합해서 저장함
- 구조가 단순하여 빠른 처리 가능하며, 대규모 환경에서도 일관되게 10밀리초 미만의 처리 성능을 제공함
- 프로비저닝, 패치, 소프트웨어 설치가 필요 없고 용량에 따라 테이블을 자동으로 확장 및 축소해서 관리 편의성이 높음
* Amazon ElastiCache
- 인-메모리 데이터베이스로, 데이터를 메모리에 저장하는 형태로 동작함
- 데이터가 메모리상에 위치하여 데이터를 빠르게 처리할 수 있다는 장점 존재
- 데이터 양이 많다면 데이터 처리가 느려질 수 있기 때문에 대용량 데이터에는 적합하지 않고 주로 데이터를 빠르게 자주 접근해야 할 때 사용함
- Memcached 방식과 Redis 두 가지로 구분됨
1) Amazon ElastiCache for Memcached
- Memcached는 보편적으로 사용하는 메모리 객체 캐싱 시스템
- 인-메모리 데이터베이스 서비스
- Memcached와 호환하여 자주 접근할 데이터를 메모리에 놓고 빠르게 처리 가능함
2) Amazon ElastiCache for Redis
- Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열 용도로 사용되는 인-메모리 데이터베이스 서비스
- 오픈 소스인 Redis 기반으로 구축되고 Redis API와 호환하여 개방형 Redis 데이터 형식으로 저장함
- 실시간 애플리케이션을 지원할 수 있도록 1밀리초 미만의 지연으로 빠른 데이터를 처리할 수 있음
'개인공부 > AWS' 카테고리의 다른 글
[AWS] CloudFormation 기본 인프라 배포 및 환경 검증 (0) | 2024.01.26 |
---|---|
[AWS] CloudFormation 기초 내용 정리 (0) | 2024.01.25 |
[AWS] 스토리지 서비스 (0) | 2024.01.25 |
[AWS] 부하분산 서비스 - ELB 기능 (0) | 2024.01.21 |
[AWS] AWS 네트워킹 (0) | 2024.01.21 |