[AWS] AWSOME DAY - DataBase ( RDS,Aurora,Redshift,DynamoDB,DocumentDB,ElasticCache,Neptune,QLDB,Timestream 비교)
|2024. 7. 12. 10:59
DB를 사용하는 2가지 방법
- 1. EC2위에 직접 DB 구축
- OS 설정등 세밀한 조정이 필요할 경우
- AWS 에서 지원하지 않는 상용 DB 설치 가능
- 2. AWS 에서 제공하는 관리형 DB 사용
- DB 프로비저닝 , 백업 복구 작업 , 패치 등 사소한 관리 작업을 AWS 가 해결해줌 (APP에 집중 가능하게)
- 원클릭으로 standby DB 설치하고 , 데이터 동기화 하는 Multi AZ 기능 사용 가능
- DB관련 할 일은 성능 조정, 스키마 최적화 그런 고차원적이 작업만 하면 된다
다양한 DB옵션 제공
- 15개 이상의 엔진 제공
- Amazon RDS: 대표적인 RDB로 얘기한다
- Amazon Aurora : mysql 과 postgreSQL 이랑 연동 가능
- Amazon Redshift : DW용 DB
- Amazon DynamoDB : NOSQL - key값 DB
- Amazon DocumentDB : MongoDB 같이 문서 데이터 처리 가능
- Amazon ElasticCache? : Redis, Memchached 사용 가능
- Amazon Neptune : 그래프DB
- Amazon QLDB : 원장DB
- Amazon Timestream : 시계열 DB
Amazon RDS
- RDS for Aurora , PostgreSQL, MySQL , MariaDB , Oracle . MS SQL 엔진중에 선택 가능하다
- 하드웨어 설치, 업데이터, 백업등을 AWS에게 위임한다
- 몇번의 클릭으로 DB 컴퓨팅 및 스토리지 리소스 용량 확장이 가능하다
- 안전성이 높은 AWS 인프라에서 실행됨
- MultiAZ 로 DB이중화 여러 가용영역에 DB인스턴스를 여러개 둘 수 있다
Aurora
- Amazon 에서 직접 구현한 RDB
- Mysql 과 PostgreSQL엔진과 호환
- DB 비용을 90% 낮추면서 DB 안정성과 가용성을 높일 수 있다
- 완전 관리형 서비스 (프로비저닝, 백업, 복원, 장애탐지, 패치 등 시간이 많이드는 작업을 자동화 할 수 있다)
- 성능
- Mysql 보다 5배 빠름
- PostgreSQL보다 3배 빠름
- 64TB 까지 자동 확장 가능
- READ only 복제본은 최대 15개까지 생성 가능
DynamoDB
- NOSQL
- 규모와 상관없이 10ms 이내의 작업을 보장
- 데이터 볼륨이 늘어나고 APP 성능에 대해 요구가 증가하면 DB는 용량에 맞게 테이블을 자동으로 조정한다 . 별도의 관리 없ㅇ이 성능 유지 가능
- 키값 문서데이터모델 모두 지원
- 완전관리형
- 세분화된 엑세스 제어 가능 (IAM)
- 유연함
- Amazon Management Console , AWS CLI, AWS SDK 를 사용하여 테이블 항목에 DML 가능
테스트
EC2- DynamoDB -S3를 이용한 사진공유APP 배포 및 테스트 해보기 EC2에 있는 web서버는 1. 사용자로부터 이미지를 받고, 2. 썸네일을 만든다 3. 이미지와 썸네일을 S3에 저장하고 4. 이미지의 메타데이터를 DB에 넣는다
- S3 버킷 생성 하고 권한 설정
- S3 대시보드
- create bucket
- public Access 허용하여 컨텐츠 다운로드 할 수 있게함 (block all public access 설정 해제 )
- 권한 설정
- 버킷의 Permission 부분 설정
- Bucket policy 섹션으로 이동 edit
- 정책을 입력
- DB 생성
- DynamoDB 대시보드에서 바로 create table 버튼 눌러 테이블 생성
끝..!
- EC2 서비스 생성
- AMI로 이미지 가져옴
- Storage는 기본인 블록 스토리지 EBS로 EC2 데이터가 저장된다
- Advanced Detail 에서 termination protection을 활성화하여 Instance가 실수로 종료되는 일이 없게 한다