- 관계형 모델과 SQL
SQL 문 : Create / Read / Update / Delete
->
관계형 모델(Attribute, Tuple, Relation으로 이루어짐)
->
Relation을 통해 관계형데이터베이스(RDB) 생성
- 대표적인 RDBMS : 관계형 데이터베이스 관리 시스템
- MySQL
- MariaDB
- SQL Server
- ORACLE
- PostgreSQL
- AWS에서 RDBMS 구성하는 방식 2가지
- EC2 인스턴스에서 설치형으로 구성
- AWS 완전 관리형 DB 서비스 : RDS
- Database on EC2 vs Amazon RDS
Database on EC2
- 직접 관리 영역
- DB 서비스 확장
- DBMS 백업
- DBMS 패치
- DBMS 설치 및 관리
- OS 패치
- AWS 관리 영역
Amazon RDS
- 직접 관리 영역
- AWS 관리 영역
- DB 서비스 확장
- DBMS 백업
- DBMS 패치
- DBMS 설치 및 관리
- OS 패치
- OS 설치, 운영 관리
- 전원, 하드웨어 관리
- AWS RDS(Relational Database Servie)란 무엇인가요?
- AWS RDS는 AWS에서 제공하는 완전 관리형 RDBMMS 서비스
- 자유롭게 확장 및 축소 가능
- 여러 AZ에 거친 고가용성 구성
- 백업 기능을 통해 안전하게 데이터 보호
- 읽기 전용 복제본(Read Replica) 기능을 통해 읽기 성능 확장
- RDS 읽기 전용 복제본(Read Replica)란 무엇인가요?
- RDS에서는 읽기 성능이 향상과 가용성을 위해 읽기 전용 복제본(Read Replica) 기능 제공
- Read Replica는 Master와 동일 AZ 혹은 다른 AZ 내에 존재
- Read Replica에서는 읽기 작업만 수행하며, 쓰기 작업은 Master에서만 일어남.
- Master에 있는 데이터 정보를 주기적으로 Read Replica에 복제
- RDS 구성 방식
- 요약
- RDS는 AWS의 완전 관리형 RDBMS 서비스이다.
- Read Replica 구조를 가지고 AZ에 걸쳐 존재하므로 성능과 고가용성 구성을 할 수 있는 구조를 가진다.
- 스냅샷이나 백업 기능으로 데이터 손실을 최소화하는 기능을 제공한다.
- RDS Auto Scaling
- RDS 오토스케일링은 애플리케이션이 확장함에 따라 데이터베이스에서 용량이 추가적으로 필요할 경우, 자동으로 확장해 주는 긴으!
- 최대 16TB까지 확장 가능
- 오토 스케일링 조건
- 사용가능한 여유 공간이 할당된 스토리지의 10% 미만일 때
- 용량이 부족한 스토리지 상태가 5분 이상 지속될 때
- 마지막 스토리지 수정 이후 최소 6시간이 경과했을 때
- RDS 가용성
- AZ에서 장애가 발생 시에 데이터를 보호하는 RDS 가용성 기능 : Master-Standby
- Master와 Standby는 동기식 복제
- AZ 혹은 Master 자체에 장애가 발생했을 경우, 자동으로 Standby로 Master 승격을 진행
- Standby는 Read Replica로 구성 가능
- RDS Backup과 Snapshot
-
백업 : 백업은 데이터 전체가 소실되거나, 특정 시점으로 돌아갈 때, 복구하는 용도로 사용
ex) Multi AZ 가용성 구성
-
자동 백업과 수동 스냅샷 기능
-
자동 스냅샷의 경우, 백업이 저장된 어느 시점에서나 복구 가능(최소 5분 전까지)
- AWS Aurora란 무엇인가요?
- AWS Aurora : AWS에서 클라우드 환경에서 적합하도록 커스터마이징 된 관리형 데이터베이스 서비스
- 일반 MySQL 보다 5배, PostgreSQL보다 3배 더 빠름
- 지원하는 데이터베이스 : mySQL, PostgreSQL
- AWS Aurora 특징
- 최대 15개의 Read replica 지원 : RDS 보다 더 빠른 읽기 성능
- 3개의 AZ에 걸쳐 데이터를 분산해서 저장
- Master에 장애가 발생해도 자동으로 Failover(페일오버)
RDS와 차이
1. 데이터 정합성 속도↓
2. 안정성
- AWS RDS vs Aurora 비교
RDS :
- 최대 5개 Read Replicas
- 볼륨단위, 복제 저장
Aurora
- 최대 15개 Read Replicas
- 분산, 적재 저장
- 요약
- RDS의 핵심적인 기능으로 Auto Scaling, Failover, Backup 등이 있다
- Aurora는 AWS에서 커스터마이징한 RDBMS 서비스이다
- RDS와 Aurora는 같은 DB 서비스 이지만, 기능과 구현 부분에서 차이가 있다.
- AWS S3(Simple Storage Service)란 무엇인가요?
AWS S3는 데이터를 저장, 수집, 분석을 하기 위한 대표적인 오브젝트 스토리지
- EBS나 EFS와 달리, EC2 인스턴스에 마운트하는 방식이 아닌, REST API로 데이터 접근(GET, PUT, POST, PATCH, DELETE)
- S3 용량을 무제한으로 확장 가능
- 99.999999999%의 내구성 제공
- 데이터를 저장하기 위해 객체(Object)라는 개념 사용
- 객체는 버킷(Bucket)이라는 리소스에 저장
- S3 Object와 bucket
- S3 Object : 데이터를 담기 위한 단위
- 각각의 Object는 Key를 가짐(Key-Value 구조)
- Object의 최대 크기는 5TB(하나의 파일(Object)가 5TB를 넘어설 수 없음)
- S3 Bucket : Bucket은 Object를 담기 위한 데이터 보관 단위
- Bucket은 Region 단위로 배포 가능
- S3 저장소 유형
-액세스
-저장량
=>
Storage Class
↑<<---------------------------저장비용--------------------------->>↓
↓<<---------------------------검색비용--------------------------->>↑
- S3 가용성 : 리전별 데이터 복제
- 스토리지 종류 비고
오브젝트 스토리지 :
S3(Simple Storage Service)
- REST
- 용량 무제한
- Region / 분산 저장
블록 스토리지 :
EBS(Elastic Block Store)
- 낮은 지연시간 / 고성능
- AZ 단위 배율
- 여러개 볼륨 ↔ 인스턴스
파일 스토리지 :
EFS(Elastic File System)
- AZ 외부의 File
- 한 개볼륨 ↔ 여러개 인스턴스
- 빅데이터, 공유 서버
- AWS S3 사용 사례
이미지 호스팅
웹 컨텐츠 저장소
백업 데이터
미디어 파일 관리
아카이빙 데이터
데이터 레이크
고성능 스토리지
빅데이터
- 요약
- AWS S3는 관리형 오브젝트 스토리지 서비스이다.
- 블록 스토리지와 파일 스토리지와 달리 오브젝트 형태로 저장되며, REST 방식으로 읽기 쓰기 수행이 가능하다.
- 웹서버 컨텐츠, 미디어파일, 빅데이터 등 다양한 데이터 저장 서비스로 무제한 확장이 가능하다.
- AWS CloudFront란 무엇인가요?
자주 쓰이는 데이터를 가까운 지역(Edge Location)에 적재하여 접근
= CloudFront
- AWS CloudFront는 전 세계에 데이터나, 동영상, 애플리케이션을 빠르고 안전하게 전송하는 콘텐츠 전송 네트워크(CDN) 서비스
- 엣지 로케이션에는 자주 쓰이는 데이터를 '캐싱'하여 읽기 성능을 극대화
- 전 세계적으로 215개 이상의 엣지 로케이션 위치
- 원본 데이터가 적재되어 있는 곳을 'Origin'이라 부름.
- CloudFront - Origin
Origin : Edge Location에서 캐시로 적재하기 위해 데이터를 가져오는 소스
- CloudFront 동작 방식
- 동적 데이터와 정적 데이터
정적 콘텐츠 : .html, .jpg, .css, 변하지 않는 데이터
동적 콘텐츠 : .php, /"*"(Default), HTTP, REST, 변하는 데이터
- CloudFront + S3 + ALB
- 요약
- CloudFront는 컨텐츠를 빠르고 안전하게 제공하는 CDN 서비스이다.
- 엣지 로케이션에서 Origin의 컨텐츠를 적재하여 네트워크 지연시간을 줄일 수 있다.
- 정적 컨텐츠의 경우, S3와 연계, 동적 컨텐츠는 EC2 + ALB 컨텐츠를 가져와 성능을 향상 시킬 수 있다.