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에 넣는다

  1. S3 버킷 생성 하고 권한 설정
  • S3 대시보드
  • create bucket
    • public Access 허용하여 컨텐츠 다운로드 할 수 있게함 (block all public access 설정 해제 )
  • 권한 설정
    • 버킷의 Permission 부분 설정
    • Bucket policy 섹션으로 이동 edit
      • 정책을 입력
  1. DB 생성
  • DynamoDB 대시보드에서 바로 create table 버튼 눌러 테이블 생성

끝..!

  1. EC2 서비스 생성
  • AMI로 이미지 가져옴
  • Storage는 기본인 블록 스토리지 EBS로 EC2 데이터가 저장된다
  • Advanced Detail 에서 termination protection을 활성화하여 Instance가 실수로 종료되는 일이 없게 한다