AWS 스토리지 삼총사: EFS, EBS, S3 제대로 이해하기
AWS 스토리지 삼총사: EFS, EBS, S3 제대로 이해하기
Summary AWS의 EFS, EBS, S3는 각각 고유한 특징을 가진 스토리지 서비스이다. EFS는 네트워크 파일 시스템으로 여러 EC2 인스턴스가 파일을 공유할 수 있도록 설계되었고, EBS는 블록 스토리지로 EC2 인스턴스에 연결해 사용해야 한다. S3는 객체 스토리지로, 고유한 키를 가진 객체 단위로 데이터를 저장하며, HTTP를 통해 직접 접근할 수 있어 정적 웹사이트 호스팅이 가능하다. 각 서비스는 용도에 따라 다르게 사용되며, S3의 설계는 서버 관리 부담 없이 클라우드 네이티브 애플리케이션을 지원한다.
AWS 스토리지 삼총사: EFS, EBS, S3 제대로 이해하기
AWS 클라우드 환경에서는 다양한 방식으로 데이터를 저장할 수 있습니다. 그중 EFS(Elastic File System), EBS(Elastic Block Store), S3(Simple Storage Service)는 가장 기본적이면서도 핵심적인 스토리지 서비스입니다. 각 서비스는 고유한 특징과 작동 방식을 가지고 있어 그 차이를 명확히 이해하는 것이 중요합니다. 이 글에서는 사용자들이 자주 궁금해하는 질문을 바탕으로 EFS, EBS, S3의 차이점을 하나씩 살펴보겠습니다.
1. 폴더 구조는 어떻게 다른가요?
가장 먼저 드는 의문은 이들 서비스에서 우리가 흔히 생각하는 ‘폴더 구조’가 어떻게 보이는지일 것입니다.
- EFS (Elastic File System): EFS는 네트워크 파일 시스템(NFS)을 기반으로 합니다. 여러 EC2 인스턴스가 동시에 접근하여 파일을 공유할 수 있도록 설계되었습니다. EFS는 우리가 컴퓨터에서 사용하는 것과 동일한 실제 폴더와 파일 구조를 가지고 있어, EC2 인스턴스에 마운트하면 익숙한 디렉터리 구조가 명확하게 나타납니다.
- EBS (Elastic Block Store): EBS는 하드디스크나 SSD와 같은 블록 스토리지입니다. EBS 자체에는 파일 시스템이나 폴더 구조가 없습니다. 사용하려면 EC2 인스턴스에 연결하고 운영체제 수준에서 파일 시스템(예: ext4, NTFS)으로 포맷해야 합니다. 이후에야 EC2 인스턴스 내에서 폴더 구조를 생성하고 사용할 수 있습니다.
- S3 (Simple Storage Service): S3는 앞선 두 서비스와는 다른 객체 스토리지입니다. S3에는 실제 ‘폴더’라는 개념이 없습니다. 대신 데이터를 ‘객체(Object)’ 단위로 저장하고, 각 객체는 고유한 ‘키(Key)‘를 가집니다. AWS 콘솔에서는 사용자 편의를 위해 키 이름에 슬래시(/)를 사용하여 가상의 폴더 구조로 보여주지만, 실제로는 모든 객체가 평면적(flat)으로 저장됩니다. 결론적으로, 폴더 구조의 유무와 형태는 각 서비스가 데이터를 저장하고 접근하는 근본적인 방식(파일 시스템, 블록, 객체)을 반영하는 중요한 지표입니다.
2. 어디에서 폴더 구조가 보이는 건가요?
폴더 구조의 가시성은 ‘어디에서 보느냐’에 따라 달라집니다. AWS 관리 콘솔(웹 브라우저)과 EC2 인스턴스 내부(서버 OS), 이 두 관점에서 살펴보겠습니다.
| 서비스 | AWS 콘솔에서 폴더 구조 | EC2 내부에서 폴더 구조 | | EFS | ❌ (보이지 않음 - 관리 정보만 표시) | ✅ (명확히 보임 - 마운트 후 일반 파일 시스템처럼 사용) | | EBS | ❌ (보이지 않음 - 관리 정보만 표시) | ✅ (파일 시스템 생성 후 보임 - 일반 디스크처럼 사용) | | S3 | ✅ (가상으로 보임 - 콘솔 인터페이스에서 폴더처럼 탐색) | ❌ (기본적으로 보이지 않음 - CLI/SDK로 객체 접근, 추가 도구 사용 시 마운트 가능) |
AWS 콘솔에서는 S3만이 가상의 폴더 구조를 탐색할 수 있습니다. 반면 EC2 인스턴스 내부에서는 EFS와 EBS가 명확한 폴더 구조를 제공합니다. S3는 기본적으로 EC2 내부에서 폴더 구조로 보이지 않습니다. 이는 각 서비스가 어떤 환경에서 어떻게 사용되도록 설계되었는지를 잘 보여줍니다.
3. S3는 EFS/EBS와 근본적으로 무엇이 다른가요?
EFS와 EBS가 기존의 파일 시스템(NAS)이나 블록 스토리지(하드디스크/SAN)를 클라우드에 구현한 것이라면, S3는 완전히 다른 패러다임을 가집니다. 바로 ‘객체 스토리지’입니다.
객체 스토리지는 데이터를 파일이나 블록이 아닌, 데이터 본체와 풍부한 메타데이터를 하나로 묶은 ‘객체’ 단위로 관리합니다. S3의 핵심 특징은 다음과 같습니다.
- 계층 구조 없음 (Flat Structure): 실제 폴더 없이 고유한 키로 모든 객체를 식별합니다.
- 무한한 확장성: 설계부터 대규모 데이터 저장을 고려하여 사실상 무제한의 용량 확장이 가능합니다.
- HTTP/API 기반 접근: OS 마운트가 아닌, HTTP(S) 기반 API를 통해 어디서든 접근할 수 있습니다.
- 높은 내구성 및 가용성: 데이터를 여러 곳에 자동으로 복제하여 안정성을 보장합니다. 이러한 특징으로 인해 EFS/EBS가 **‘서버 중심의 연결된 디스크’**라면, S3는 **‘인터넷 중심의 독립적인 거대 데이터 저장소’**에 가깝습니다. 따라서 용도도 다릅니다. EFS/EBS는 OS 실행, 데이터베이스, 고성능 파일 처리 등 서버 작업에 적합하고, S3는 대규모 데이터 백업, 아카이빙, 미디어 서빙, 빅데이터 레이크, 정적 웹사이트 호스팅 등 인터넷 기반의 데이터 저장과 공유에 최적화되어 있습니다.
4. 왜 S3만 정적 웹사이트 호스팅이 가능한가요?
S3와 EFS/EBS의 본질적인 차이를 가장 잘 보여주는 것이 바로 ‘정적 웹사이트 호스팅’ 기능입니다. S3만이 이 기능을 제공하는 이유를 살펴보겠습니다.
- EFS/EBS의 방식: EFS나 EBS에 저장된 HTML, CSS, 이미지 등의 파일은 그 자체로는 인터넷에 노출될 수 없습니다. 이 파일들을 웹으로 서비스하려면 EC2 같은 서버와 Apache나 Nginx 같은 웹 서버 소프트웨어가 필요합니다. 즉, 서버가 중간에서 요청을 받아 데이터를 처리하고 인터넷으로 전달해야 합니다.
- S3의 방식: S3는 설계부터 다릅니다. 각 객체에 고유한 HTTP(S) URL을 부여하여 인터넷을 통해 직접 접근할 수 있습니다. S3 자체가 HTTP 요청을 처리하여 저장된 객체를 사용자에게 바로 전달합니다. 따라서 별도의 웹 서버 없이 S3 버킷 설정만으로 정적 웹사이트를 서비스할 수 있습니다. 이것이 바로 ‘서버리스(Serverless)’ 호스팅입니다. 결론적으로, **‘서버가 필요한 저장소(EFS/EBS)’**와 **‘저장소 자체가 인터넷을 통해 직접 데이터를 서비스할 수 있는 저장소(S3)’**라는 점이 근본적인 차이입니다. S3의 이러한 인터넷 친화적 설계 덕분에 서버 관리 부담 없이 정적 웹사이트를 손쉽게 운영할 수 있습니다.
결론
지금까지 살펴본 것처럼 EFS, EBS, S3는 단순한 데이터 저장 서비스를 넘어 각각 명확한 기술적 기반과 설계 철학을 가지고 있습니다. EFS는 공유 파일 시스템이 필요할 때, EBS는 EC2 인스턴스를 위한 고성능 블록 스토리지가 필요할 때, S3는 확장 가능하고 내구성 높은 인터넷 기반의 객체 저장이 필요할 때 사용합니다. 특히 S3의 객체 스토리지 방식과 HTTP 직접 접근성은 정적 웹 호스팅과 같은 클라우드 네이티브 애플리케이션 구현에 핵심적인 역할을 합니다. 따라서 워크로드의 특성과 요구사항을 정확히 파악하고 각 서비스의 장단점을 비교하여 가장 적합한 스토리지 솔루션을 선택해야 합니다.
💬 댓글
GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인
🔧 댓글 시스템 설정이 필요합니다
GitHub Discussions 기반 댓글 시스템을 활성화하려면:
GISCUS_SETUP_GUIDE.md
파일의 안내를 따라 설정 완료Repository 관리자만 설정할 수 있습니다. 설정이 완료되면 모든 방문자가 댓글을 남길 수 있습니다.