스토리지
블록 스토리지
사용자의 데이터가 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