끄적이는 보송

[AWS] EBS, S3, EFS 차이 (Block Level Storage, Object Storage) 본문

STUDY/AWS

[AWS] EBS, S3, EFS 차이 (Block Level Storage, Object Storage)

끄적이는 보송 2022. 4. 18. 21:31
반응형

자주 접하는 Storage 서비스지만 평소 감(?)과 대충으로만 알 뿐이었다. 이들이 정확히 어떤 녀석들이고 어떤 차이가 있는지 정리해본다. 이들에 대해서 논하기 전에 먼저 Block Level Storage와 Object Storage를 짚고 넘어가야 한다.

 

Block Level Storage의 개념

먼저 우리들 컴퓨터에 1GB짜리 파일이 저장되어 있다고 가정하자. 그 파일은 컴퓨터 하드디스크의 몇몇 블록에 할당되어 있을 것이다. 그리고 파티셔닝에 따라 다르겠지만 여기선 각 블록을 512KB라고 가정하겠다. 그렇다면 1GB짜리 파일은 2000블록을 차지하고 있는 셈이 되겠다. 그리고 그 2000블록을 예제로 그린 것이 밑의 그림이 되겠다. (비록 25칸짜리 그림이지만 2000블록으로 상상하자)

Block Level Storage 파일 수정 전

우리는 1GB짜리 파일을 수정하고 저장을 했다고 가정하자. 그 결과 데이터의 일부분 (몇몇 블록)이 변경되었다.

Block Level Storage 파일 수정 후

그렇다면 파일을 저장할 때, 2000블록을 전부 업데이트해줘야 할까? 아니다. Block Level Storage는 블록 단위의 작업을 지원하기 때문에 변경된 데이터만 최신화해주면 된다. 이런 이유로 Block Level Storage는 낮은 I/O 레이턴시를 자랑하며 Read/Write 작업이 빠르다는 장점이 있다. 자주 파일이 업데이트되고, Read/Write 작업이 빈번하다면 Block Level Storage가 좋은 선택이 될 수 있다.

 

Object Storage의 개념

똑같은 파일을 Object Storage에 올려 같은 작업을 했다고 가정하자. 위 그림과 사뭇 다르다. 변경된 파일은 새로운 Object로 인식하며 기존의 파일은 지워지고 새로운 파일이 대체하게 된다. 데이터를 조금이라도 수정할 경우 데이터를 싹 물갈이를 해주다 보니 Read/Write이 빈번한 환경이라면 작업이 오래 걸린다는 단점이 있다.

Object Storage 파일 수정 전
Object Storage 파일 수정 후

하지만 단순한 구조로 읽기 속도가 빠르다는 점과 높은 확장성 그리고 비용이 저렴한 장점이 있다. 

 

EBS vs S3 vs EFS

각 Storage 특징에 대해 짚었으니, 이제 AWS Storage 서비스를 비교해보며 정리해보자. 모든 정보를 담고 있진 않지만 간단하게 표로도 만들어 보았다.

EBS S3 EFS
stands for ... Elastic Block Storage stands for ... Simple Storage Service stands for ... Elatic File System
Block Level Storage Object Storage  Shared File Storage
EC2에 마운트 가능 EC2에 마운트 불가능 EC2에 마운트 가능
빈번한 Read/Wirte에 추천 Write once Read many times에 추천 빈번한 Read/Wirte에 추천
서비스 붙을 때 AZ 제한 있음 서비스 붙을 때 AZ 제한 없음 서비스 붙을 때 AZ 제한 없음
평균 싸다 비싸다
높은 호환성 및 Sync 낮은 호환성 및 Sync 높은 호환성 및 Sync
파일 수정 가능 파일 수정 불가능(덮어쓰기 해야함) 파일 수정 가능

- EBS 

EC2에 기본적으로 붙어있는 볼륨 서비스다. Stop 되어도 데이터가 날아가지 않는 지속성을 보이며, 선택한 Type에 따라 다르지만 빠른 Read/Write 속도를 보여준다. 생성 시, 디폴트로 특정 AZ에 배치되어 그곳에서 자동으로 복제되는데, S3의 eleven nines 까진 아니더라도 99.999%의 가용성을 자랑한다. 한번 늘어난 볼륨을 다시 줄일 수 없다.

- S3

사실상 용량 제한이 없으며, 파일 사이즈에 대한 고려 없이 데이터를 S3에 올릴 수 있다. 로그 파일, 정적 휍 호스팅을 위한 파일 등 빈번한 업데이트가 없는 파일(Write few but read many times)을 싼 맛에 올릴 때 용이하게 쓰인다. 하지만 OS나 DB처럼 빠르고 많은 Read/Write 작업이 요구되는 환경에선 추천되지 않는다. 나아가 생각보다 에러도 많고 파일 sync도 맞지 않는 경우도 종종 있다.

- EFS

S3와 동일하게 사이징 고려 없이 데이터를 올릴 수 있다. 가장 큰 장점은 각기 다양한 서버에서 하나의 파일 시스템으로 데이터를 공유하고 싶을 때 사용될 수 있다는 점이다. EFS는 EBS와 다르게 여러 AZ를 거쳐 복제되어 더 높은 가용성을 자랑한다. 다르게 보자면 EC2가 어느 AZ에 위치하건 마운트가 가능하다는 소리다 (EBS는 안됨). Site-to-Site VPN 혹은 DX로 연결만 되어있으면 On-Premise와도 연결할 수 있다. 사실 돈만 있으면 이게 최고다.

반응형
Comments