블록 스토리지 (Block storage)
데이터를 일정한 크기의 블록으로 나누어 저장하는 방식
블록은 고유한 주소가 있고 이를 통해 블록을 재구성하여 데이터를 불러올 수 있다.
-파일을 저장 시 블록 단위의 작업을 지원하기 때문에 변경된 데이터만 최신화해주면 된다.
낮은 I/O 레이턴시 와 Read/Write 작업이 빠르다.
즉 자주 파일이 업데이트 되고 Read/Write 작업이 빈번한 경우에 적합하다.
EBS ( Elastic Block Store)
- EC2 인스턴스와 네트워크로 연결
- 물리적 머신의 로컬 디스크 드라이브와 유사하게 EC2 인스턴스에 연결된 프로비저닝 된 크기의 볼륨에 데이터를 저장
( EC2와 함께 사용, 독립형 스토리지가 아니다.)
- EC2 인스턴스가 종료되어도 별개로 작동하여 데이터가 날아가지 않는다.
- 워크로드에 따라 비용 최적화가 가능한 다양한 볼륨 유형 제공한다.
- 백업된 스냅샷에서 EBS 볼륨 생성 및 복원이 가능하다.
- 데이터에 빠르게 액세스하고 장기적으로 지속해야 하는 경우에 적합하다.
파일 스토리지 (File storage)
폴더와 파일로 이루어진 계층 구조를 가지고 있다.
윈도우 탐색기처럼 폴더 안에 하위 폴더를 만들고 파일을 저장하는 것과 같다.
-사용이 친숙하고 표준화가 잘 되있으나 데이터가 많아지면 파일과 폴더를 찾기 위해 리소스가 많이 든다.
EFS ( Elastic File System )
-NFS 기반 공유 스토리지로 다수의 EC2들이 동일한 파일시스템을 공유할 수 있도록 설계된 스토리지
-완전 관리형 서비스로 파일 시스템을 쉽고 빠르게 생성 및 구성 가능하다.
-수천 개의 EC2에서 동시에 액세스 가능하다.
-파일이 추가 또는 제거됨에 따라 자동으로 스토리지 용량을 즉시 확장하거나 축소
-여러 가용 영역에 파일이 중복으로 저장되어 하나의 가용 영역이 파괴되더라도 다른 가용 영역에서 서비스가 제공 가능
- VPC 내 EC2 인스턴스는 직접 액세스할 수 있으나 On-premise 서버는 Direct Connect 와 VPN 연결을 통해 VPC와 연결
- 각 가용영역에 mount target을 두고 각각의 가용영역에서 해당 mount target으로 접근
/*
NFS (Linux/Unix 기반 네트워크 파일 공유 프로토콜) :
여러 클라이언트가 같은 파일 시스템에 동시에 접근 가능, 파일 공유 가능
클라이언트가 로컬 디렉토리처럼 마운트하여 사용
=> NFS 서버 : /data -> 클라이언트 : /mnt/data
POSIX 파일 시스템 표준을 따르므로, 파일 권한, 잠금 등이 적용됨.
NFS 서버는특정 디렉터리를 네트워크에 공개하여(export) 네트워크를 통해 처리
*/
오브젝트 스토리지 (Object storage)
오브젝트라는 개별 데이터 단위로 데이터를 저장한다.
오브젝트는 사진,비디오,오디오 뿐만 아니라 기계 학습, 센서 데이터 등 모든 데이터를 포괄한다.
-단순한 구조로 읽기 속도가 빠르고 확장성이 좋으며 비용이 저렴하나
파일을 변경 시 새로운 Object로 인식하며 기존의 파일은 지워지고 새로운 파일이 대체된다.
데이터를 조금이라도 수정할 경우 데이터를 엎어버려 Read/Write 작업이 빈번하면 오래 걸린다.
S3 (Simple Storage Service)
- 확장성이 뛰어나고 어떤 양의 데이터도 저장
- 높은 내구성과 99.99% 가용성 제공
- S3의 객체는 고유 식별자(key)와 연결되어있고 어디서나 HTTP 접속을 통해 액세스 가능
- 버전 관리를 통한 데이터 보호 기능과 하이브리드 구성을 통한 데이터 백업 및 복원 기능 제공
- 비용이 EBS,EFS 보다 저렴하다.
- 목적에 따라 다양한 스토리지 클래스를 제공하고 객체 암호화 기능을 설정할 수 있다.
- 버킷이란 S3의 저장공간을 구분하는 단위를 사용하고 버킷정책을 사용하여 권한 관리할수 있다.
- S3에 저장된 파일은 고유한 URL을 가지고 있고 이를 통해 쉽게 접근할 수 있다
EBS vs EFS vs S3
EBS (Block) | EFS (File) | S3 (Object) | |
작업별 대기 시간 | 가장 낮음, 일관됨 (S3 및 EFS보다 빠름) |
낮음, 일관됨 (S3보다 빠르고 EBS보다 느림) |
낮음, 여러 요청 타입 처리 CloudFront와 통합 (EBS 및 EFS보다 느림) |
파일 수정 | 파일 수정 가능 | 파일 수정 가능 | 파일 수정 불가능 (덮어쓰기함) |
가용성 / 내구성 | 단일 AZ에 중복 저장 | 여러 AZ에 중복 저장 | 여러 AZ에 중복 저장 |
엑세스 | 하나의 AZ에 속한 하나의 EC2 인스턴스 | 1개~수천개의 EC2인스턴스 / on-premise 서버 / 여러 AZ에서 동시 접근 |
웹을 통한 수백만 개의 연결 |
사용 케이스 | - 데이터베이스 - OS 디스크 - 고성능 애플리케이션( 고성능 디스크 작업 ) |
- 세션 데이터, 어플리케이션 설정 파일 - 파일 서버 - 컨테이너 스토리지(ECS,kubernetes에서 파일 공유) |
- 정적 컨텐츠(html,css,js,image) - 백업 및 아카이빙 - 빅데이터 분석 -멀티미디어 컨텐츠 (video,image,audio,streaming) |
-EBS: 고성능, 저지연 작업이 필요한 경우.
데이터베이스 스토리지, OS 디스크, 애플리케이션 저장소.
-EFS: 여러 인스턴스에서 동시 파일 접근이 필요한 경우.
파일 서버, 컨테이너 환경, 로그 분석.
-S3: 대규모 데이터를 저장하고, 비용 효율성과 글로벌 접근성이 중요한 경우.
백업, 데이터 아카이빙, 정적 웹 콘텐츠 호스팅.
-EFS와 S3 둘 다 다수의 인스턴스에서 접근 가능하지만
=> EFS 의 경우는 동일한 파일 시스템을 공유하며 네트워크를 통해 실시간으로 동일한 파일을 읽고 쓸 수 있다.
따라서 변경 가능한 데이터를 여러 서버가 공유할 때 유용하다.
=> S3의 경우는 파일이 아닌 객체 형태로 저장하며 파일시스템처럼 공유하는 방식이 아니라 API를 호출하거나 파일을 개별적으로 다운로드하여 공유할 수 있다.
따라서 변경되지 않는 컨텐츠를 보관하고 배포할 때 주로 사용한다.
참고
https://www.dknyou.com/blog/?bmode=view&idx=10474168
https://www.smileshark.kr/post/amazon-s3-efs-ebs-which-aws-storage-service-to-use
'Cloud > AWS' 카테고리의 다른 글
AWS KMS (3) | 2024.12.13 |
---|---|
AWS WAF (Web Application Firewall) (0) | 2024.12.05 |
VPC Endpoints & VPC (0) | 2024.11.23 |
Autoscaling Group & ALB (0) | 2024.11.20 |
IAM User가 아닌 EC2에 역할 부여 (0) | 2024.11.20 |