6일차. 스토리지 및 데이터베이스

변현섭·2023년 6월 26일
0

1. 인스턴스 스토어

인스턴스 스토어는 Amazon EC2 인스턴스에 임시 블록 수준 스토리지를 제공한다. 이 스토리지 볼륨은 물리적 하드 드라이브처럼 동작한다. 인스턴스 스토어는 물리적으로 EC2 인스턴스의 호스트 컴퓨터에 연결되어 있으므로 인스턴스와 수명이 동일하다. 즉, 인스턴스가 종료되면 인스턴스 스토어의 데이터는 소실된다.

2. Amazon Elastic Block Store(Amazon EBS)

1) 개념

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

EBS 볼륨을 생성하려면 볼륨 크기 및 유형 등의 구성 정보를 정의하여 볼륨을 프로비저닝해야 한다. EBS 볼륨 생성이 완료되면, 볼륨을 Amazon EC2 인스턴스에 연결할 수 있다. EBS 볼륨은 보존해야 하는 데이터를 위한 것이므로 데이터 백업이 매우 중요하다. Amazon EBS 스냅샷을 생성하여 EBS 볼륨을 증분 백업할 수 있다.

2) 스냅샷

EBS 스냅샷은 증분 백업 방식이다. 즉, 처음 볼륨을 백업하면 모든 데이터가 복사되지만, 이후의 백업에서는 가장 최근의 스냅샷 이후 변경된 데이터 블록만 저장된다. 이러한 점에서 증분 백업은 백업이 실행될 때마다 스토리지 볼륨의 모든 데이터가 복사되는 전체 백업과 차이를 보인다.

3. Amazon Simple Storage Service(Amazon S3)

1) 개념

Amazon S3는 객체 수준 스토리지를 제공하는 서비스이다. Amazon S3는 데이터를 버킷에 객체로 저장한다. 객체 스토리지에서 각 객체는 데이터, 메타데이터, 키로 구성된다. 여기서 데이터는 이미지, 동영상, 텍스트 문서일 수 있으며, 키는 고유한 식별자이다.

Amazon S3에는 이미지, 동영상, 텍스트 파일 등 모든 유형의 파일을 업로드할 수 있다. 예를 들어 Amazon S3를 사용하여 백업 파일, 웹 사이트용 미디어 파일 또는 보관된 문서를 저장할 수 있다. Amazon S3는 저장 공간을 무제한으로 제공한다. 참고로 Amazon S3에 저장할 수 있는 객체의 최대 파일 크기는 5TB이다.

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

2) Amazon S3 스토리지 클래스

Amazon S3도 마찬가지로 사용한 만큼만 비용을 지불한다. 따라서 비즈니스 및 비용 요구 사항에 맞춰 다양한 스토리지 클래스 중에서 유리한 것을 선택해 사용해야 한다. Amazon S3 스토리지 클래스를 선택할 때 중요한 기준은 데이터를 검색할 빈도와 필요한 데이터 가용성이다.

① 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

  • 액세스 패턴을 알 수 없거나 변화하는 데이터에 이상적이다.
  • 객체당 소량의 월별 모니터링 및 자동화 요금을 부과한다.
  • 사용자에게 가장 적합한 액세스 계층으로 객체를 이동시킨다.

⑤ S3 Glacier

  • 데이터 보관용으로 설계된 저비용 스토리지이다.
  • 객체를 몇 분에서 몇 시간 이내에 검색한다.

⑥ S3 Glacier Deep Archive

  • 보관에 이상적인 가장 저렴한 객체 스토리지 클래스이다.
  • 객체를 12시간 이내에 검색한다.

※ 객체 스토리지와 블록 스토리지
용량이 큰 동영상을 저장한다고 생각해보자. 객체 스토리지에서는 모든 파일을 완성된 개별 객체로 취급한다. 동영상의 일부를 수정하는 경우에도 전체 파일을 다시 업로드해야 한다(증분 업데이트가 지원되지 않는다). 반면, 블록 스토리지는 하나의 파일을 작은 구성요소(블록)로 나누기 때문에 영상을 일부 수정한 경우 해당 블록에 대해서만 업데이트를 진행하면 된다.
이는 EBS와 S3 중 어떤 서비스를 선택해야 유리한지에 대한 답이 될 수 있다. 완성 객체만이 사용되거나 변경 작업의 횟수가 적다면 S3를 사용하는 것이 유리하고, 복잡한 읽기, 쓰기 등의 변경 작업이 자주 필요하다면 EBS를 사용하는 것이 유리하다.

4. Amazon Elastic File System(Amazon EFS)

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

EFS는 파일 스토리지인데, 파일 스토리지는 블록 스토리지 및 객체 스토리지와 달리 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스하는 사례에 적합하다. 클라이언트는 파일의 경로를 통해 데이터에 액세스할 수 있다.

5. Amazon Relational Database Service(Amazon RDS)

1) 개념

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

Amazon RDS는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스이다. 이러한 기능을 사용하면 관리 작업을 수행하는 데 드는 시간을 줄이고 데이터를 사용하여 애플리케이션을 개선하는 데에 더 많은 시간을 할애할 수 있다. Amazon RDS를 다른 서비스와 통합할 수도 있다. 예를 들어 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리를 실행하는 등 비즈니스 및 운영 요구 사항을 충족할 수 있다.

Amazon RDS는 다양한 보안 옵션을 제공한다. 대부분의 Amazon RDS 데이터베이스 엔진이 저장 시 암호화(데이터가 저장되는 동안 데이터를 보호) 및 전송 중 암호화(데이터를 전송 및 수신하는 동안 데이터를 보호)를 제공한다.

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

Amazon RDS에서 지원되는 데이터베이스 엔진은 다음과 같다.

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

6. Amazon Aurora

Amazon Aurora는 엔터프라이즈급(기업 환경에서 요구되는 높은 수준의 성능, 신뢰성, 보안, 확장성을 갖춘 솔루션이나 서비스) 관계형 데이터베이스이다. 이 데이터베이스는 MySQL 및 PostgreSQL 관계형 데이터베이스와 호환된다. 표준 MySQL 데이터베이스보다 최대 5배 빠르며, 표준 PostgreSQL 데이터베이스보다 최대 3배 빠르다.

Amazon Aurora는 데이터베이스 리소스의 안정성 및 가용성을 유지하면서도 불필요한 입/출력(I/O) 작업을 줄여 데이터베이스 비용을 절감한다. 워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려할 수 있다. 이 데이터베이스는 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3에 데이터를 백업한다.

7. Amazon DynamoDB

Amazon DynamoDB는 key-value 데이터베이스 서비스이다. 비관계형 데이터베이스 즉, NoSQL 데이터베이스이기 때문에 복잡한 쿼리는 수행할 수 없는 대신, 오버헤드가 없기 때문에 모든 규모에서 한 자릿수 밀리초의 성능을 제공할 수 있다.

① 서버리스

  • DynamoDB는 서버를 사용하지 않으므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요가 없다.
  • 소프트웨어를 설치, 유지 관리, 운영할 필요도 없다.

② 자동 조정

  • 데이터베이스 크기가 축소 또는 확장되면 DynamoDB는 용량 변화에 맞춰 자동으로 크기를 조정하면서도 일관된 성능을 유지한다.
  • 크기를 조정하는 동안에도 고성능이 필요한 사용 사례에 적합하다.

8. Amazon Redshift

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

※ 데이터 웨어하우징
데이터 웨어하우징이란, 기업이나 조직에서 사용되는 데이터 관리 시스템을 말한다. 일반적으로 데이터 웨어하우징은 대규모의 데이터를 처리하고 분석하기 위해 사용된다. 데이터를 통합하고 중앙 저장소에 보관함으로써 보다 효율적으로 데이터를 관리하고 분석할 수 있다.

9. Amazon Database Migration Service(AWS DMS)

1) 개념

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

※ 데이터 마이그레이션
마이그레이션이란, 어떤 시스템이나 환경에서 다른 시스템이나 환경으로 이전하는 것을 의미한다. 특히, 데이터 마이그레이션은 데이터의 이동과 전환을 포함한다. 데이터 마이그레이션은 조직이 새로운 시스템 또는 환경으로 전환할 때 중요한 단계이다. 잘 계획된 데이터 마이그레이션은 데이터의 안정성과 일관성을 유지하며, 업무 연속성을 보장할 수 있다.

AWS DMS를 사용하면 원본 데이터베이스와 대상 데이터베이스 간에 데이터를 이동할 수 있다. 이 때, 원본 데이터베이스와 대상 데이터베이스는 유형이 동일할 필요는 없다. 마이그레이션하는 동안 원본 데이터베이스가 계속 작동하므로 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 줄일 수 있다.

예를 들어 온프레미스에서 Amazon EC2 인스턴스 또는 Amazon RDS에 저장된 MySQL 데이터베이스가 있다고 하고 MySQL 데이터베이스가 원본 데이터베이스라고 하자. AWS DMS를 사용하여 Amazon Aurora 데이터베이스와 같은 대상 데이터베이스로 데이터를 마이그레이션할 수 있다.

2) 기능

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

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

② 데이터베이스 통합

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

③ 연속 복제

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

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

① Amazon DocumentDB

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

② Amazon Neptune

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

③ Amazon Quantum Ledger Database(Amazon QLDB)

  • 원장 데이터베이스(거래 또는 이벤트의 기록을 저장하고 추적하기 위해 사용되는 특수한 종류의 데이터베이스로 주로 블록체인 기술에서 사용됨)이다.
  • 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토할 수 있다.

④ Amazon Managed Blockchain

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

⑤ Amazon ElasticCache

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

⑥ Amazon DynamoDB Accelerator(Amazon DAX)

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

이 시리즈의 글들은 AWS Skill Builder의 교육 내용을 모방하고 있으며, 이미지는 AWS Skill Builder에서 가져온 것입니다. 넷제로 해커톤을 준비하는 과정에서 수료해야 하는 교육 내용이기에 블로그에 정리해 둔 것입니다. 문제 시 삭제하겠습니다.
>> AWS Skill Builder

profile
Java Spring, Android Kotlin, Node.js, ML/DL 개발을 공부하는 인하대학교 정보통신공학과 학생입니다.

0개의 댓글