study/TIL🐥

[AWS Cloud Practitioner] 5. 스토리지 및 데이터베이스

서나쓰 2022. 7. 15. 13:12
728x90

인스턴스 스토어

인스턴스 스토어는 Amazon EC2 인스턴스에 임시 블록 수준 스토리지를 제공한다. 인스턴스 스토어는 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결이 되어 있고, 따라아서 인스턴스 수명이 동일한 디스크 스토리지이다. 인스턴스가 종료되면 인스턴스 스토어의 데이터가 손실된다.

Amazon Elastic Block Store

Amazon Elastic Block Store(EBS)는 EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨을 제공하는 서비스이다. EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터를 사용할 수 있다.

EBS 볼륨을 생성하려면 구성을 정의하고 볼륨을 프로비저닝한다. 볼륨을 생성한 다음 볼륨을 EC2 인스턴스에 연결할 수 있다.

EBS 볼륨을 보존해야 하는 데이터를 위한 것이므로 데이터 백업이 중요하다. 스냅샷을 생성하여 볼륨을 백업할 수 있다.

EBS 스냅샷

EBS 스냅샷증분 백업이다. 즉, 처음 백업하면 모든 데이터가 복사되고 이후 백업에서는 가장 최근의 스냅샷 이후 변경된 데이터 블록만 저장된다.

객체 스토리지

객체 스토리지에서 각 객체는 데이터, 메타데이터, 키로 구성된다.

💡블록 스토리지에서 파일을 수정하면 변경된 부분만 업데이트 된다. 객체 스토리지에서 파일을 수정하면 전체 개체가 업데이트 된다.

Amazon Simple Storage Service (S3)

Amazon Simple Storage Service(S3)는 객체 수준 스토리지를 제공하는 서비스이다. S3는 데이터를 버킷에 객체로 저장한다.

S3에는 이미지, 동영상, 텍스트 파일 등 모든 유형의 파일을 업로드할 수 있다. S3는 저장 공간을 무제한으로 제공하고, 객체의 최대 파일 크기는 5TB이다.

S3에 파일을 업로드할 때 권한을 설정하여 파일에 대한 표시 여부 및 액세스를 제어할 수 있다. S3 버전 관리 기능을 사용하여 시간 경과에 따른 객체 변경 사항을 추적할 수 있다.

Amazon S3 스토리지 클래스

S3에서는 사용한 만큼만 비용을 지불한다. 비즈니스 및 비용 요구 사항에 맞춰 다양한 스토리지 클래스 중에서 다음을 고려하여 선택할 수 있다.

  • 데이터를 검색할 빈도
  • 필요한 데이터 가용성
  • S3 Standard
    • 자주 액세스하는 데이터용으로 설계
    • 최소 3개의 가용 영역에 데이터를 저장
    객체에 대한 고가용성을 제공한다. 웹 사이트, 콘텐츠 배포, 데이터 분석 등 광범위한 사용 사례에 적합하다. 자주 액세스 하지 않는 스토리지를 위한 스토리지 클래스보다 비용이 높다.
  • S3 Standard-Infrequent Access(S3 Standard-IA)
    • 자주 액세스하지 않는 데이터에 이상적
    • S3 Standard와 비슷하지만 스토리지 가격은 더 저렴하고 검색 가격은 높음
    자주 액세스하지 않지만 필요에 따라 고가용성이 요구되는 데이터에 이상적입니다. Standard 및 Standard-IA는 모두 최소 3개의 가용영역에 데이터를 저장한다. Standard보다 스토리지 가격은 더 저렴하지만 검색 가격은 높다.
  • S3 One Zone-Infrequent Access(S3 One Zone-IA)
    • 단일 가용 영역에 데이터를 저장
    • S3 Standard-IA보다 낮은 스토리지 가격
    최소 3개 가용 영역을 저장하는 제품 대신 단일 가용 영역에 데이터를 저장. 다음과 같은 조건이 적용되는 경우 훌륭한 스토리지 클래스이다.
    • 스토리지 비용을 절감하려는 경우
    • 가용 영역에 장애가 발생할 경우 데이터를 손쉽게 재현할 수 있는 경우
  • S3 Intelligent-Tireing
    • 액세스 패턴을 알 수 없거나 자주 변화하는 데이터에 이상적
    • 객체당 소량의 월별 모니터링 및 자동화 요금을 부과
    Amazon S3가 객체의 액세스 패턴을 모니터링합니다. 사용자가 30일 연속 객체에 액세스하지 않으면 S3는 자동으로 해당 객체를 자주 사용하지 않는 액세스 계층인 IA로 이동합니다. 사용자가 자주 사용하지 않는 계층에 저장된 객체에 액세스하면 S3는 자동을 해당 객체를 Standard로 이동합니다.
  • S3 Glacier
    • 데이터 보관용으로 설계된 저비용 스토리지
    • 객체를 몇 분에서 몇 시간 이내에 검색
    Glacier는 데이터 보관에 이상적인 저비용 스토리지 클래스이다. 스토리지 클래스를 사용하여 보관된 고객 레코드가 이전 사진 비디오 파일을 저장할 수 있다
  • S3 Glacirer Deep Archive
    • 보관에 이상적인 가장 저렴한 객체 스토리지 클래스
    • 객체를 12시간 이내에 검색
    Glacier와 Glacier Deep Archive간을 결정할 때 보관된 객체를 얼마나 빨리 검색해야 하는지를 고려해야 한다. Glacier에 저장된 객체는 몇 분에서 몇 시간이내에 검색할 수 있다. Glacier Deep Archive 스토리지에 저장된 객체는 12시간 이내에 검색할 수 있다.

EBS와 S3 비교

EBS

  • 블록 스토리지
  • 각각 16TiB
  • EC2 인스턴스가 종료되어도 그대로 유지
  • SSD, HDD 모두 제공

S3

  • 무한대 스토리지 제공
  • 개별 객체는 크기가 5,000GB
  • 한번 쓰기/여러번 읽기에 특화
  • 99.999999999% 내구성

→ 각 스토리지 클래스는 서로 다른 스토리지 요구 사항에 대한 최상의 동적 분산 설계. 사용 사례에 따라 필요한 상품이 달라짐

예시 1) 사진 분석 웹 사이트를 운영. 사용자가 본인의 사진을 업로드하면 애플리케이션이 비슷한 동물을 찾아 주는 사이트. 동물 사진 수백만 장을 인덱싱하고 이 사진을 수천명이 동시에 볼 수 있어야 한다. 이는 S3에 완벽한 사용 사례.

→ S3는 웹을 지원

→ 모든 객체에 URL이 있으며 이미지를 보거나 관리할 수 있는 사람에 대한 액세스 권한 제어

→ 리전별로 분산되어 있어 99.999999999% 내구성 제공하여 백업 걱정이 없다

→ 동일 로직을 실행하는데 비용 절감 효과가 있다

→ 서버리스여서 EC2가 필요하지 않다

예시 2) 오류를 수정해야 하는 80G 영상이 있다. 객체 스토리지의 블록 스토리지의 차이는 객체 스토리지는 모든 파일을 완성된 개별 객체로 취급한다. 객체가 변경될 때마다 전체 파일을 다시 업로드해야한다. 증분 업데이트가 지원되지 않는다. 하지만 블록 스토리지는 파일을 작은 구성 요소, 블록으로 나눈다. 80GB 파일의 경우 영상 한 장면을 편집하고 변경사항을 저장하면 해당 비트가 있는 블록만 업데이트 한다. 즉 EBS에 적합하다.

Amazon Elastic File System(EFS)

파일 스토리지

파일 스토리지에서 여러 클라이언트가 공유 파일 폴더에 저장된 데이터에 액세스할 수 있다. 이 접근 방식에서는 스토리지 서버가 블록 스토리지를 로컬 파일 시스템과 함꼐 사용하여 파일을 구성한다.

블록 스토리지 및 객체 스토리지와 비교하면, 파일 스토리지는 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스해야 하는 사용 사례에 이상적이다.

EFS는 AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용되는 확장 가능한 파일 시스템이다. 파일을 추가, 제거하면 EFS가 자동으로 확장하거나 축소된다. 애플리케이션을 중단하지 않고 온디맨드로 페타바이트 규모로 확장 할 수 있다.

💡 EBS vs EFS
EBS → 단일 가용 영역에 데이터를 저장, 인스턴스를 EBS 볼륨에 연결하려면 동일한 가용 영역에 상주
EFS → 리전별 서비스, 여러 가용 영역에 걸쳐 데이터 저장, 중복 스토리지를 사용하면 파일 시스템이 위치한 리전의 모든 가용 영역에서 동시에 데이터에 액세스 가능

Amazon Relational Database Service(RDS)

관계형 데이터베이스

관계형 데이터베이스에서는 데이터가 다른 데이터 부분과 관련된 방식으로 저장.

정형 쿼리 언어(SQL)를 사용하여 데이터를 저장하고 쿼리한다. 이러한 접근 방식은 데이터를 쉽게 이해할 수 있고 일관되며 확장 가능한 방식으로 저장할 수 있다.

Amazon Relational Database Service

RDS는 AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스이다.

RDS는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스.

RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 운영 요구 사항을 충족시킬 수 있다.

RDS는 다양한 보안 옵션을 제공한다. 대부분의 데이터베이스 엔진이 저장시 암호화 및 전송중 암호화를 제공한다.

RDS 데이터베이스 엔진

메모리, 성능, 입출력에 최적화된 6개의 데이터베이스 엔진에서 사용할 수 있다.

  • Amazon Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle Database
  • Microsoft SQL Server

Amazon Aurora

Aurora는 엔터프라이즈급 관계형 데이터베이스이다. 이 데이터베이스는 MySQL, PostgreSQL 관계형 데이터베이스와 호환된다. MySQL보다 5배 빠르며 PostgreSQL보다 3배 빠르다.

데이터베이스 리소스의 안정성 및 가용성을 유지하면서도 불필요한 입출력 작업을 줄여 비용을 절감한다

Amazon DynamoDB

비관계형 데이터베이스

비관계형 데이터베이스에서는 테이블을 생성한다. 테이블은 데이터를 저장하고 쿼리할 수 있는 장소이다.

비관계형 데이터베이스는 행과 열이 아닌 구조를 사용하여 데이터를 구성하기 때문에 NoSQL 데이터베이스라고도 한다.

비관계형 데이터 베이스의 구조적 접근 방식은 키-값 페어이다. 데이터가 항목(키)으로 구성되고 항목은 속성(값)을 갖는다. 속성을 데이터의 여러 기능으로 생각할 수 있다.

Amazon DynamoDB

DynamoDB는 키-값 데이터베이스 서비스이다. 모든 규모에서 한 자릿수 밀리초 성능을 제공한다.

  • 서버리스
    • 서버를 사용하지 않으므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요가 없다
    • 소프트웨어를 설치, 유지관리, 운영할 필요도 없다
  • 자동 조정
    • 데이터베이스 크기가 축소 또는 확장되면 DynamoDB는 용량 변화에 맞춰 자동으로 크기를 조정하면서 일관된 성능을 유지한다
    • 크기를 조정하는 동안에도 고성능이 필요하다면 사용 할 수 있다

RDS vs DynamoDB

RDB

  • 관계형 데이터베이스
  • 자동 고가용성 및 복구 기능을 이용해 데이터 베잇 관리자의 획일적인 작업 부담 제거
  • 사용자가 데이터와 스키마, 네트워크를 제어

DynamoDB

  • NoSQL
  • 고급 스키마가 필요 없고 키-값 쌍으로 사용
  • 페타바이트 크기로 확장
  • 세분화된 API 액세스 제공

예시 1) 여러 테이블에 있는 데이터의 복잡한 분석을 수행할 수 있다는 것은 관계형 데이터베이스의 장점. 판매 공급망 관리 시스템에서 약점을 분석하는 것은 RDS가 필요한 순간이다. 비즈니스 분석용으로 제작된 상품이고 복잡한 관계형 조인이 필요하다

예시 2) 예시 1 외 모든 상황이 NoSQL의 예시이다. 단순한 단일 테이블 영역을 사용하게 된다면 관계형으로 사용할 수 있지만 비관계형 데이터베이스를 사용하는 것이 오버헤드를 줄이고 빠르고 복잡한 조인 기능을 사용하지 않을 수 있다. 이 경우 DynamoDB가 훨씬 유리하다

Amazon Redshift

Amazon Redshift는 빅 데이터 분석에 사용할 수 있는 데이터 웨어하우징 서비스이다. 이 서비스는 여러 원본에서 데이터를 수집하여 데이터 간의 관계 및 추세를 파악하는데 도움이 된다.

데이터가 너무 복잡해 기존의 관계형 데이터베이스로 처리하기가 어려워지면 데이터 웨어하우스의 세계로 들어가게 된다. 데이터 웨어하우스는 이러한 유형의 빅 데이터용으로 특별히 제작되었고, 사용자는 운영 분석이 아닌 기록 분석을 살피게 된다.

  • 확장성이 뛰어나고
  • 수 페타바이트의 크기의 노드가 흔할 정도다
  • 데이터 레이크에서 실행되는 수 엑사바이트 비정형 데이터를 대상으로 단일 SQL 처리 가능

빅 데이터 BI 솔루션이 필요할때 Redshift를 이용하면 단일 API 호출로 작업을 시작할 수 있다

Amazon Database Migration Service

Database Migration Service(DMS)는 관계형 데이터베이스, 비관계형 데이터베이스 및 기타 유형의 데이터 저장소를 마이그레이션 할 수 있는 서비스이다.

DMS를 사용하면 원본 데이터베이스와 대상 데이터베이스간에 데이터를 이동할 수 있다.

마이그레이션 하는 동안 원본 데이터베이스가 계속 작동하므로 애플리케이션을 중지할 필요도 없다

DMS는 마이그레이션만이 아닌 다른 활용도로 사용할 수 있다

개발 및 테스트 데이터베이스 마이그레이션

  • 프로덕션 사용자에게 영향을 주지 않고 개발자가 프로덕션 데이터에서 애플리케이션을 테스트할 수 있도록 지원

데이터베이스 통합

  • 여러 데이터베이스를 단일 데이터베이스로 결합

연속 복제

  • 일회성 마이그레이션을 수행하는 것이 아니라 데이터의 진행중 복제본을 다른 대상 원본으로 전송

추가 데이터베이스 서비스

Amazon DocumentDB

  • MongoDB 워크로드를 지원하는 문서 데이터베이스 서비스

Amazon Neptune

  • 그래프 데이터베이스 서비스 엔진, 사기탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션에 적합

Amazon Quantum Ledger Database(QLDB)

  • 데이터에 발생한 모든 변경 사항 전체를 기록, 검토할 수 있다
  • 원장 데이터베이스 서비스

Amazon Managed Blockchain

  • 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는데 사용하는 서비스

Amazon ElastiCache

  • 자주 사용되는 요청의 읽기 시간을 향상시키기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스

Amazon DynamoDB Accelerator

  • 응답시간을 한 자릿수 밀리초에서 마이크로초까지 향상시킬 수 있다
  • DynamoDB용 인 메모리 캐시
728x90