스토리지

블록 스토리지

  • 사용자의 데이터가 Local Disk 또는 SAN Storage 상의 Volume에 Block 단위로 저장 및 Access하는 스토리지 유형

  • 일반적으로 파일시스템을 구성하여 사용

  • Local Disk, SAN/iSCSI 스토리지, NTFS, UFS, ExtFS, ZFS 등

SAN/iSCSI 스토리지

  • 네트워크를 통해 여러 서버가 공유하는 고성능 스토리지 시스템

  • 디스크처럼 블록 단위로 직접/읽고 쓰기

  • 성능과 확장성이 중요한 대규모 데이터센터와 고부하 환경에 적합.

클라우드 Block Storage

  • 컴퓨팅 파워(EC2)에 연결해서 사용

Instance Store

  • EC2 인스턴스가 존재하는 호스트에 붙어있는 로컬 디스크 (무료)

    • 인스턴스 패밀리에 따라 종류 및 사이즈가 다름

    • 인스턴스 비용에 스토어 비용이 함께 포함되어 무료임

  • 휘발성, 빠른 속도

    • 재부팅(컴퓨팅 파워가 완전히 내려가는 정지,종료)으로 인해 하드웨어가 바뀌면 사라짐(휘발성)

  • 특정 EC2 인스턴스 타입에만 존재

EBS Volume

  • 네트워크로 연결된 리모트 블록 스토리지를 연결해 사용하는 영구 볼륨

    • 종료되더라도 데이터 유지

    • 종료되어 터미네이트로 EC2가 넘어가도 EBS를 따로 떄서 데이터 유지할 수 있음

  • EC2 인스턴스를 위한 Persistent Block Level 스토리지 (데이터 수명이 독립적)

  • 스냅샷 가능 (백업)

  • 외부 스토리지라 별도 비용 발생

EBS snapshot

  • 백업을 위한 볼륨 스냅샷 저장

  • 증분 스냅샷 방식으로 효율적인 저장 용량

파일 스토리지

  • 파일시스템으로 구성된 저장소를 network 기반의 Protocol을 사용하여 파일단위로 Access하는 스토리지 유형 (NAS)

  • CIFS(SMB), NFS

  • 여러 서버가 하나의 공유 볼륨을 사용할 때 많이 사용되었음

  • EC2/ECS/Lambda 같은 컴퓨팅 서비스를 위한 완전 관리형 네트워크 파일 시스템

  • 고가용성 및 내구성

  • NFS(업계표준) v4 기반

  • 네트워크로 접근만 되면 되기에 On-Premise의 서버 연결도 가능

NAS(Network Attached Storage)

  • 네트워크를 통해 데이터를 저장하고 공유할 수 있는 스토리지 장치

  • 주로 파일 기반의 스토리지 제공

  • 다수 사용자가 네트워크를 통해 동시에 접근할 수 있다.

  • 간단한 파일 공유와 백업이 필요한 환경에 적합

오브젝트 스토리지 (S3, Simple Storage Service)

  • Encapsulate된 데이터 및 속성, 메타데이터, 오브젝트 ID를 저장하는 가상의 컨테이너

  • API 기반의 데이터 접근

  • 메타데이터 또는 정책에 기반한 운영

  • Amazon S3, Openstack Swift, Ceph 등

Encapsulate란 데이터를 하나의 독립된 오브젝트로 묶는것을 의미

  • ex: 파일(이미지, 문서, 비디오 등)이 하나의 "오브젝트"로 저장됨.

  • 이 오브젝트는 다른 데이터와 별개로 저장되며, 독립적으로 접근 가능

  • 웹에서 사용 가능한 오브젝트 저장소

    • 데이터가 동일한 레벨의 주소 공간에 위치

    • 실제 앱에서 고유한 주소로 개별적인 오브젝트를 식별 가능

    • non-hierarchy

  • 뛰어난 내구성 99.99999% 내구성 설계

    • S3는 하나의 리전 내에 세개 이상의 Availability Zone 나눠서 총 카피를 6개 저장함

    • AWS 서비스 이후로 S3는 단 한번도 데이터 유실한적이 없음

  • 비용 효율적 (굉장히 저렴)

  • 제약없는 확장성

  • 병렬 처리 지원

  • 버킷/리소스 단위의 IAM 접근 권한

  • API를 통한 직접 사용 가능

  • 데이터에 대한 수명주기 관리 가능

  • HTTP/S 방식으로 접근해서 원하는 데이터를 오브젝트의 고유한 주소 기반으로 가져가게 됨

Buckets

  • Object(File)들을 저장하고 있는 컨테이너

  • Amazon S3가 제공하는 최상위 수준의 Namespace(사용자별)

  • 버킷에 대한 접근 권한 통제(ACL, Access Control List)

Objects

  • S3에 저장된 개체

  • Data와 Metadata로 구성

  • Metadata는 해당 Object를 설명하는 다양한 정보로 구성

  • Object는 해당 버킷내에서 Key Name과 Version ID로 유일하게 구분됨

오브젝트 스토리지 웹 호스팅 (정적 웹사이트)

단순한 스토리지를 넘어서 수 많은 서버의 집합에 더 가까움

  • 기존의 웹 서버를 대체할 수도 있음

  • 기존 웹서버 구성이나 운용비용의 일부만으로 훨씬 성능이 높고 확장성이 높은 웹 환경을 만들 수 있음

  • 종종 웹 호스팅 자체로 사용되기도 함

  • 정적 웹 사이트는 파일 내용이 변경되지 않기 떄문

    • HTML, CSS, JS, Assets 등

  • Public URL 제공

    • 도메인 서비스인 Amazon Route 53이 해당 도메인을 리졸빙해서 S3에 각 필요한 개체주소를 리턴

    • 버킷 내에 개별 개체들을 고유한 HTTP 주소로 식별 가능하기 때문

CDN(Content Delivery Network) [Amazon CloudFront]

  • S3는 하나의 리전 내에 존재하는 리저널 서비스

  • 서로 다른 지리적 조건에 위치한 사용자들에게 컨텐츠를 더 빠르게 제공해주기 위한 캐싱 레이어

  • 아마존에서는 CloudFront 라는 이름으로 CDN을 제공

  • Edge location -> Cache Layer

  • 클라우드 프론트를 만들면 기본적으로 생성되는 복잡한 end point 주소를 Route 53을 이용해서 유저프랜들리한 CNAME 처리 가능

  • 실제 서버 역할을 하는 EC2와 S3, Route 53과 같이 동작하도록 최적화 되어있음

정적 콘텐츠 뿐만아니라 동적 콘텐츠에도 속도 개선 가능

  • 동적 컨텐츠 특성상 캐싱하는건 어렵다.

  • 캐싱을 위해 CloudFront를 사용하는게 아니라 최적화된 네트워크 경로, 원본과의 지속적인 연결 유지, TCP/IP 파라미터 최적화, 컨텐츠 압축기술 같은것들을 CloudFront는 CDN이기 때문에 기본적으로 가지고 있다.

  • 아마존 백본 네트워크와 같이 연결된 최적화된 네트워크들을 가지고 있음

  • 캐싱이 0이라고 하더라도 실제로 POP과 데이터 오리진 사이의 네트워크가 최적화가 잘되있어 동적 컨텐츠 전송할 때도 클라우드 프론트를 태우는게 안태우는것보다 훨씬 더 효율적으로 동작

  • 정적이든 동적이든 클라우드프론트는 글로벌서비스를 할때 굉장히 유용한 서비스

Last updated