본문 바로가기

카테고리 없음

[AWS] Certified Cloud Practitioner(CCP) 모듈5: 스토리지 및 데이터베이스

 

 

 

 

1. 블록 스토리지

 

1) 인스턴스 스토어

  • Amazon EC2 인스턴스에 임시 블록 수준 스토리지 제공
  • 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결되어 있기 때문에 인스턴스와 수명이 동일한 스토리지
  • 인스턴스가 종료되면 인스턴스 스토어의 모든 데이터가 손실됨

 

2) Amazon Elastic Block Store(Amazon EBS)

  • Amazon EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨 제공
  • Amazon EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터 사용 가능
  • EBS 볼륨을 생성하려면 구성(예: 볼륨 크기 및 유형)을 정의하고 볼륨을 프로비저닝
  • EBS 볼륨을 생성하고 Amazon EC2 인스턴스에 연결할 수 있음
  • *Amazon EBS 스냅샷을 생성하여 EBS 볼륨을 증분 백업할 수 있음

 

*Amazon EBS 스냅샷

  • 처음 볼륨을 백업하면 모든 데이터가 복사되고 그 이후의 백업에서는 가장 최근 스냅샷 이후 변경된 데이터 블록만 저장
  • 증분 백업은 전체 백업(백업이 실행될 때마다 스토리지 볼륨의 모든 데이터가 복사)과는 다름, 전체 백업은 가장 최근의 백업 이후 변경되지 않는 데이터도 포함

 

 

2. 객체 스토리지

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

 

  • 데이터는 이미지, 동영상, 텍스트 문서 또는 기타 유형의 파일일 수 있음
  • 메타데이터에는 데이터의 내용, 사용 방법, 객체 크기 등에 대한 정보가 포함되어 있음
  • 객체의 키는 고유한 식별자

cf) 블록 스토리지에서는 파일 수정 시 변경된 부분만 업데이트되고, 객체 스토리지에서는 파일 수정 시 전체 객체가 업데이트됨

 

 

1) Amazon Simple Storage Service(Amazon S3)

  • 객체 수준 스토리지 제공 서비스 - 데이터를 버킷에 객체로 저장
  • 이미지, 동영상, 텍스트 파일 등 모든 유형의 파일 업로드 가능
  • Amazon S3는 저장 공간을 무제한으로 제공하며, 저장할 수 있는 객체 최대 파일 크기는 5 TiB
  • Amazon S3에 파일을 업로드할 때 권한을 설정하여 파일에 대한 표시 여부 및 액세스 제어 가능
  • Amazon S3 버전 관리 기능을 사용하여 경과에 따른 객체 변경 사항 추적 가능
  • Amazon S3 스토리지 클래스
    • Amazon S3에서는 사용한 만큼만 비용 지불
    • 비즈니스 및 비용 요구 사항에 맞춰 다양한 스토리지 클래스 중에서 선택 가능
    • 스토리지 클래스 선택 시 데이터를 검색할 빈도와 필요한 데이터 가용성 두 가지 요소를 고려해야 함
스토리지 클래스 액세스 빈도 가용 영역 스토리지 비용 검색 비용
S3 Standard 자주 최소 3개 높음 -
S3 Standard-Infrequent Access(S3 Standard-IA) 가끔 최소 3개 저렴 높음
S3 One-Zone-Infrequent Access(S3 One Zone-IA) 가끔 단일 저렴 -
S3 Intelligent-Tiering 다양 최소 3개 자동 최적화 상황에 따라 상이
S3 Glacier Instant Retrieval 드뭄 최소 3개 높음 높음
S3 Glacier Flexible Retrieval 매우 드뭄 최소 3개 저렴 유연함
S3 Glacier Deep Archive 매우 드뭄 최소 3개 가장 저렴 낮음
S3 Outposts 다양 온프레미스 상황에 따라 상이 상황에 따라 상이

 

 

① S3 Standard

  • 자주 액세스하는 데이터를 위해 설계됨
  • 자주 액세스하지 않는 데이터와 보관 스토리지를 위한 다른 스토리지 클래스보다 비용이 높음
  • 최소 3개의 가용성 영역에 데이터를 저장
  • 객체에 대한 고가용성 제공
  • 웹사이트, 콘텐츠 배포, 데이터 분석과 같은 광범위한 사용 사례에 적합한 선택

 

 

② S3 Standard-Infrequent Access(S3 Standard-IA)

  • 자주 액세스하지 않지만 필요에 따라 고가용성이 요구되는 데이터에 이상적
  • 최소 3개의 가용성 영역에 데이터를 저장
  • S3 Standard와 비슷하지만 스토리지 가격은 더 저렴하고 검색 가격은 더 높음

 

 

③ S3 One Zone-Infrequent Access(S3 One Zone-IA)

  • 단일 가용 영역에 데이터 저장
  • S3 Standard-IA보다 낮은 스토리지 가격
  • 스토리지 비용을 절감하는 경우, 가용 영역 장애가 발생할 경우 데이터를 손쉽게 재현할 수 있는 경우에 적합

 

④ S3 Intelligent-Tiering

  • 액세스 패턴을 알 수 없거나 자주 변화하는 데이터에 이상적
    • Amazon S3가 객체의 액세스 패턴을 모니터링함
    • 사용자가 30일 연속 객체에 액세스 하지 않으면 Amazon S3는 자동으로 해당 객체를 자주 사용하지 않는 액세스 계층인 S3 Standard-IA로 이동
    • 사용자가 자주 사용하지 않는 액세스 계층에 저장된 객체에 액세스 하면 Amazon S3는 자동으로 해당 객체를 자주 사용하는 액세스 계층인 S3 Standard로 이동
  • 객체당 소량의 월별 모니터링 및 자동화 요금을 부과
  • 자주 액세스 된 데이터에 대해서는 검색 비용이 없으며, 드물게 액세스 된 데이터에 대해서는 검색 비용 발생

 

⑤ S3 Glacier Instant Retrieval

  • 즉각적인 액세스가 필요한 *아카이브 데이터에 적합
  • S3 Standard와 동일한 성능으로 몇 밀리초 만에 객체 검색 가능

*아카이브: 장기 보관을 목적으로 저장되는 데이터로 자주 액세스 되지 않지만 보존이 필요한 데이터 의미

 

⑥ S3 Glacier Flexible Retrieval

  • 데이터 보관용으로 설계된 저비용 스토리지
  • 객체를 1분 ~ 12시간 내에 검색

 

⑦ S3 Glacier Deep Archive

  • 가장 저렴한 객체 스토리지 클래스로 보관에 적합
    • 일 년에 한두 번 액세스 되는 데이터의 장기 보존 및 디지털 보존 지원
  • 12시간 ~ 48시간 내에 객체 검색
  • 모든 객체가 최소한 3개의 지리적으로 분산된 가용 영역에 복제되고 저장됨

 

⑧ S3 Outposts

  • Amazon S3 Outposts에 S3 버킷을 생성
    • 온프레미스 AWS Outposts 환경에 객체 스토리지 제공
    • Amazon S3 Outposts는 Outpost에 있는 여러 개의 디바이스와 서버에 데이터를 내구성이 높고 중복되게 저장하도록 설계되어 있음
    • 데이터를 온프레미스 애플리케이션 가까이 유지하여 까다로운 성능 요구 사항을 충족해야 하고 로컬 데이터 레지던스 요구 사항이 있는 워크로드에 적합
  • AWS Outposts에서 더 쉽게 데이터를 검색, 저장, 액세스 할 수 있음

 

 

3. 파일 스토리지

  • 여러 클라이언트(예: 사용자, 애플리케이션, 서버 등)가 공유 파일 폴더에 저장된 데이터에 액세스 할 수 있음
  • 스토리지 서버가 블록 스토리지를 로컬 파일 시스템과 함께 사용하여 파일을 구성
  • 클라이언트는 파일 경로를 통해 데이터에 액세스
  • 블록 스토리지나 객체 스토리지와 비교하면 파일 스토리지는 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스해야 하는 사용 사례에 이상적

 

1) Amazon Elastic File System(Amazon EFS)

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

 

 

Amazon EBS vs Amazon S3 vs Amazon EFS 비교

특징 Amazon EBS Amazon S3 Amazone EFS
스토리지 유형 블록 스토리지 객체 스토리지 파일 스토리지
사용 데이터 변경 상황이 자주 발생하는 데이터 한 번 쓰기/ 여러 번 읽기 패턴인 데이터 공유되는 데이터
사용 예 데이터베이스, 파일 시스템, 동영상 편집, 자주 업데이트되는 데이터 정적 데이터, 이미지, 동영상, 백업 파일 등 웹 서버 로그, 애플리케이션 데이터, 공유 파일 시스템
데이터 처리 블록 단위로 관리 / 부분적 업데이트 가능 객체 단위로 관리 / 파일 전체 업데이트 파일 단위로 관리 / POSIX 호환 파일 시스템 제공
내구성 가용 영역 단위의 고가용성 및 내구성 제공 99.99% 내구성(리전 별 분산 저장) 다중 가용 영역에 중복저장으로 높은 내구성 제공
액세스 방식 EC2 인스턴스에 직접 연결하여 디스크처럼 사용 HTTP 기반 객체로 URL로 액세스(EC2 인스턴스 필요 없음) 여러 인스턴스에서 동시 액세스 가능
온프레미스 서버에서 Direct Conenct로 액세스 가능
백업/스냅샷 EBS 스냅샷 기능을 통해 백업 가능 자동으로 다중 가용 영역에 저장되어 백업 전략 불필요 중복 저장으로 백업 필요성 감소, 리전 내 가용 영역에 자동 분산 저장
비용 고성능, 고비용, 자주 액세스하고 자주 변경되는 데이터를 위한 최적화 상대적으로 저렴, 잦은 변경 없는 정적 파일에 적합 사용한 파일 시스템 용량에 따라 비용 부과, 동적 확장 가능
데이터 크기 최대 16TiB까지 지원 개별 객체 크기 최대 5TiB까지 지원 파일 시스템 크기 제한 없음
액세스 패턴 읽기/쓰기가 빈번한 데이터에 적합 한 번 쓰기, 여러 번 읽기에 최적화 여러 인스턴스에서 동시에 파일을 공유해야 할 때 적합
서버 요구 사항 EC2 인스턴스 필요(서버 기반) 서버리스로 EC2 인스턴스가 필요하지 않음 여러 인스턴스에서 공유 가능, 온프레미스 서버도 Direct Connect로 액세스 가능
영역 사용성 특정 가용 영역 내에서 사용 리전 내에서 여러 가용 영역에 데이터 분산 리전 내 모든 가용 영역에서 동시에 사용 가능

 

 

4. 관계형 데이터 베이스

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

 

1) Amazon Relational Database Service

  • AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스
  • 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스
  • 관리 작업을 수행하는데 드는 시간을 줄이고 데이터를 사용하여 애플리케이션을 혁신하는 데 더 많은 시간을 할애할 수 있음
  • Amazon RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 및 운영 요구사항을 충족할 수 있음
  • 다양한 보안 옵션 제공: Amazon RDS 데이터베이스 엔진이 저장 시 암호화(데이터가 저장되는 동안 데이터를 보호) 및 전송 중 암호화(데이터를 전송 및 수신하는 동안 데이터를 보호)를 제공

 

2) Amazon RDS 데이터베이스 엔진

  • 메모리, 성능 또는 입/출력에 최적화된 6개의 데이터베이스 엔진에서 사용 가능
  • 지원되는 데이터베이스 엔진
    • Amazon Aurora
    • PsotgresSQL
    • MySQL
    • Oracle Database
    • Microsoft SQL Server

 

3) Amazon Aurora

  • 엔터프라이즈 급 관계형 데이터베이스
  • MySQL 및 PostgreSQL 관계형 데이터베이스와 호환됨
  • 표준 MySQL 데이터베이스보다 최대 5배 빠르며 표준 PostgreSQL 데이터베이스보다 최대 3배 빠름
  • 데이터베이스 리소스의 신뢰성 및 가용성을 유지하면서도 불필요한 입/출력 작업을 줄여 데이터베이스 비용을 절감함
  • 워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려해 볼 수 있음
  • 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3 데이터를 백업함

 

5. 비관계형 데이터베이스

  • 테이블을 생성하고, 테이블에 데이터를 저장하고 쿼리 할 수 있음
  • 행과 열이 아닌 구조를 사용하여 데이터를 구성하기 때문에 NoSQL 데이터베이스라고도 함
  • 비관계형 데이터베이스의 구조적 접근 방식 중 한 유형은 키-값 페어로, 데이터가 항목(키)으로 구성되고 항목은 속성(값)을 가짐
  • 키-값 데이터베이스에서는 언제든지 테이블의 항목에서 속성을 추가하거나 제거할 수 있으며 테이블의 모든 항목에 동일한 속성을 가질 필요 없음

 

1) Amazone DynamoDB

  • 키-값 데이터베이스 서비스
  • 모든 규모에서 한 자릿수 밀리초의 성능 제공
  • 서버리스 이므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요 없으며 소프트웨어 설치, 유지 관리, 운영할 필요도 없음
  • 데이터베이스 크기가 축소 또는 확장되면 용량 변화에 맞춰 자동으로 크기를 조정하면서도 일관된 성능 유지되므로 크기를 조정하는 동안에도 고성능이 필요한 사용 사례에 적합함

 

6. 데이터 웨어하우스

  • 빅데이터와 다양한 데이터 소스에서 데이터를 수집하고 분석하는데 기존 관계형 데이터베이스로는 한계가 생길 수 있어 이에 대한 해결책으로 데이터 웨어하우스가 등장
  • 기록 분석에 특화된 시스템으로 과거 데이터를 기반으로 질문(예: 지난 1시간 동안의 매출)에 대답하는 데 최적화되어 있음(실시간 데이터 분석은 기존 데이터베이스가 더 적합)

 

1) Amazon Redshift

  • AWS의 확장 가능한 데이터 웨어하우스 서비스
  • 페타바이트의 데이터 처리도 가능하며 Redshift Spectrum을 통해 비정형 데이터도 분석 가능
  • 다양한 데이터 소스에서 대규모 비즈니스 인텔리전스(BI) 프로젝트를 쉽게 수행할 수 있고 기존 데이터베이스 대비 최대 10배 성능 제공
  • 대규모 기록 데이터 분석과 빅 데이터 BI 프로젝트에 최적화된 설루션이며 AWS에서 쉽게 확장 가능하고 관리 부담이 적음

 

7. AWS 데이터베이스 마이그레이션 서비스(AWS DMS)

  • 관계형 데이터베이스, 비관계형 데이터베이스 및 기타 유형의 데이터 저장소를 마이그레이션 할 수 있음 
  • 원본 데이터베이스와 대상 데이터 베이스 간 데이터를 이동할 수 있음
  • 원본 데이터베이스와 대상 데이터베이스는 유형이 동일할 필요 없음
  • 마이그레이션 하는 동안 원본 데이터베이스는 계속 작동하여 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 줄일 수 있음
  • 다른 사용사례
    • 개발 및 테스트 데이터베이스 마이그레이션: 프로덕션 사용자에게 영향을 주지 않고 개발자가 프로덕션 데이터에서 애플리케이션을 테스트할 수 있도록 지원
    • 데이터베이스 통합: 여러 데이터베이스를 단일 데이터베이스로 결합
    • 연속 복제: 일회성 마이그레이션이 아닌 데이터의 진행 중 복제본을 다른 대상 원본으로 전송

 

 

8. 추가 데이터베이스 서비스

 

1) Amazon DocumentDB

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

 

2) Amazon Neptune

  • 그래프 데이터베이스 서비스
  • 추천 엔진, 사기 탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션을 빌드하고 실행할 수 있음

 

3) Amazon Quantume Ledger Database(Amazon QLDB)

  • 원장 데이터베이스 서비스
  • 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토할 수 있음

 

4) Amazon Managed Blockchain

  • 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는 데 사용할 수 있는 서비스
  • Blockchain은 여러 당사자가 중앙 기관 없이 거래를 실행하고 데이터를 공유할 수 있는 분산형 원장 시스템

 

5) Amazon ElasticCache

  • 자주 사용되는 요청의 읽기 시간을 향상하기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스
  • 이 서비스는 두 가지 데이터 스토어 Redis 및 Memcached를 지원

 

6) Amazon DynamoDB Accelerator

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