스토리지 서비스

AWS 스토리지

블록 스토리지

  • 데이터를 일정 크기의 블록으로 나누어 저장
  • 호스트에서 파일 시스템을 생성
    Storage Area Network (SAN)

파일 스토리지

  • 디렉토리 구조로 파일을 저장
  • 스토리지단에서 파일 시스템을 생성
  • Network Attached Storage (NAS)

오브젝트 스토리지

  • REST 기반의 API 호출을 통해 데이터에 접근
  • HTTP 프로토콜


EBS

  • 블록(Block) 스토리지, Disk, OS Level, 포맷되지 않은 원시 스토리지

EFS

  • 네트워크 파일(File) 스토리지, NAS, OS Level, 이미 포맷되어 있는 파일 시스템을 원격에서 마운트하여 접근
  • EFS는 공유 저장소이다 보니, 자주 활용 됨 (ex. 애플리케이션이 여러 EC2 서버에 동작 시, 동일한 저장소 공간이 필요 시 등) -가시다님 댓글 참고!-

S3

  • 오브젝트(Object) 스토리지, Application(Web, CRUD)Level, 계층형이 아닌 수평적으로 데이터가 저장 (메타 데이터 및 개체 ID)


Block Storage : 호스트에서 직접 파일을 액세스하고 기록하며 빠른 성능을 요하는 경우

File Storage : 여러대의 서비스들이 데이터를 공유하고 사용해야 하는 경우

Object Storage : 대량의 데이터를 저장하고 또는 앱 컨텐츠로 사용되어야 하거나 다수의 서버에서 해당 데이터에 접근해야 하는 경우




EBS (Elastic Block Store)

EBS란?

  • EC2 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨을 제공
  • 볼륨 사용 가능
  • 인스턴스에 연결된 볼륨의 구성을 동적으로 변경 가능

EBS 사용 권장

  • 빠르게 액세스하고 정기적으로 지속해야 하는 경우
  • EBS 볼륨은 빈번한 업데이트가 필요하고 자주 액세스해야 하는 파일 시스템, 데이터베이스 또는 애플리케이션의 스토리지로 사용하기에 특히 적합

EBS 기능

  • 범용 SSD, 프로비저닝된 IOPS SSD, 처리량에 최적화된 HDD 및 Cold HDD 볼륨 유형을 제공
  • EBS 스냅샷(Snapshot)를 사용하여 증분식으로 EBS 볼륨의 데이터를 백업할 수 있음

증분식 백업이란 ? : 마지막 스냅샷 이후 변경된 디바이스의 블록만이 저장 (마지막 저장 이후, 변경된 것만 다시 저장된다고 이해하면 될 것 같다.)

  • 스냅샷 복사 및 공유 및 리전간 복제 가능


EFS (Elastic File System)

EFS란?

  • AWS와 온프레미스에서 사용할 수 있는 확장 가능하며 탄력적인 Network File System 을 제공
  • 애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 자동으로 퐉장 축소가 됨
  • NFS 프로토콜 지원 - 동시에 액세스 가능으로 공통 데이터 원본을 서버들에 제공 가능
  • EFS 파일 시스템은 다중 가용 영역에 걸쳐 데이터와 메타데이터를 저장
  • 데이터 일관성 및 파일 잠금 등 파일 시스템 액세스 기능 제공
  • 파일 시스템 암호화 제공 - 전송 중 암호화, 유휴 시 암호화(모든 데이터와 메타데이터가 암호화됨)
  • 두가지 성능 모드 제공 - 기본 범용 성능, 기본 버스팅 처리량 모드
  • EFS는 공유 저장소이다 보니, 자주 활용 됨 (ex. 애플리케이션이 여러 EC2 서버에 동작 시, 동일한 저장소 공간이 필요 시 등) -가시다님 댓글 참고!-

EFS 직동 방식

  • 동일 리전에 여러 가용 영역(고가용성)에서 액세스 가능 - 가용 영역 별 각각 EFS IP 와 공통 DNS 주소를 제공


S3(Amazon Simple Storage Service)

S3란?

  • 인터넷용 객체(Object) 기반 무제한 스토리지 서비스

S3 장점

  • 버킷 만들기 : 버킷은 데이터 스토리지를 위한 S3의 기본 컨테이너
  • 버킷 저장 : 버킷에 데이터를 무한정 저장, S3 버킷에 객체를 원하는 만큼 업로드 가능, 객체에 최대 5TB 데이터를 포함
  • 데이터 다운로드
  • 권한 : 데이터를 S3 버킷ㅇ으로 업로드 또는 다운로드하려는 사용자에게 액세스 권한을 부여하거나 해당 권한을 거부
  • 표준 인터페이스 : 표준 기반 REST API 또는 AWS SDK 사용

S3 개념

  • 버킷 : 버킷은 데이타 스토리지를 위한 S3의 기본 컨테이너. 객체는 어떤 버킷에 포함됨, 리전에서 생성됨
  • 객체 : S3에 저장되는 기본 매체. 객체는 객체 데이터와 객체 메타데이터로 구성됨 (메타데이터: 객체를 설명하는 이름-값 페어의 집합)
  • 키 : 키는 버킷 내 객체의 고유한 식별자, 버킷 내 모든 객체는 정확히 하나의 키를 가짐(S3는 버킷+키+버전 과 객체 자체 사이의 기본 데이터맵으로 생각할 수 있음)
  • Regions : 버킷을 저장할 지리적 AWS 리전을 선택함
  • S3 버킷에 있는 객체에 대해서 여러 서버로 데이터를 복제함으로 고가용성을 구현하고 일관성 모델을 제공

S3 버킷

  • 버킷 이름은 전역 수준에서 고유해야 하며, 네임스페이스는 모든 AWS 계정이 공유 가능
  • 버킷을 만든 후에는 이름 또는 리전 변경 불가
  • AWS 계정 각각에 대해 최대 100개 버킷을 만들 수 있음, 증가 요청시 최대 1000개 버킷을 만들 수 있음

S3 스토리지 크래스

  • S3 Standard : 사용중, 자주 접근, 가장 비쌈
  • S3 Intellogent-Tiering : 변화하는 접근 패턴 데이터
  • S3 Standard-IA(Infrequent) : 비상시 접근
  • S3 One Zone-IA(Infrequent) : 재생산 가능, 접근이 적은 데이터, 한 공간만 사용
  • S3 Glacier : 아카이빙 데이터, 접근시 수분/수시간 소요, S3 콘텐츠의 수명 주기 보관을 구성 가능
  • S3 Glacier Deep Archive : 아카이빙 데이터, 접근시 12 or 48시간 소요, 제일 가격이 쌈


CloudFormation

CloudFormation이란 ?

  • AWS 인프라를 개략적으로 설명하여 선언하는 방법 (인프라를 코드로 만들 수 있음)
  • 정의한 대상에 대해 자동으로 순서대로 자원을 생성
  • 아키텍처의 전체 정의가 하나의 파일에 있고 AWS에 제출하여 AWS가 모든 리소스를 관리

Infrastructure as code

  • 수동으로 리소를 만들지 않아도 됨
  • Github을 활용하여 제어
  • 코드를 통하여 인프라 변경사항을 검토 가능

Cost

  • 리소스 비용을 쉽게 추정할 수 있음
  • 필요한 경우만 CloudFormation을 배포하고 필요하지 않을 경우 삭제하여 비용 절감

Productivity

  • 클라우드 상 인프라를 즉시 삭제하거나 재 생성이 가능
  • Diagram 기능으로 Template 구성 가능 (Automated Generation)
  • Declarative Programming(선언적 프로그래밍)

Don;t re-invent wheel

  • 웹 상에 기존 Template을 활용
  • 다양한 정보와 문서가 많이 있음



참고 자료 : AFOS[2기] 노션 내용


[AWS] 4주차-1 스토리지 서비스
http://example.com/2021/06/30/2021-06-30-AFOS-1/
Author
Sujeong Hyeon
Posted on
June 30, 2021
Licensed under