문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

EFS | |
이름 | EFS |
전체 명칭 | Encrypting File System |
분류 | 파일 시스템 암호화 기술 |
개발사 | |
주요 운영체제 | |
주요 기능 | 파일 및 폴더 단위 암호화 |
기술 상세 정보 | |
도입 버전 | |
암호화 알고리즘 | DESX, 3DES, AES (버전에 따라 다름) |
키 관리 | |
복구 에이전트 | 관리자가 데이터 복구 가능 |
통합 기술 | NTFS 파일 시스템과 통합 |
대체/발전 기술 | 비트로커 (전체 드라이브 암호화) |
장점 | 사용자 투명성, 강력한 암호화, NTFS와의 긴밀한 통합 |
단점/한계 | 공유 폴더 환경에서의 복잡성, 특정 백업 제한 |
관련 표준/프로토콜 | |
주요 용도 | 기업 내 중요 문서 보호, 모바일 장치 데이터 보안 |

EFS는 아마존 웹 서비스가 제공하는 완전관리형 네트워크 파일 시스템 서비스이다. 리눅스 기반 워크로드를 위해 설계되었으며, EC2 인스턴스, ECS 및 EKS의 컨테이너, 람다 함수 등 여러 AWS 컴퓨팅 서비스에서 동시에 접근하여 공유 데이터를 읽고 쓸 수 있다. 전통적인 NAS 장비와 유사한 기능을 클라우드 환경에서 서비스 형태로 제공한다는 점이 특징이다.
이 서비스의 핵심 가치는 탄력성과 공유성에 있다. 사용자는 파일 시스템의 용량을 미리 프로비저닝할 필요 없이, 실제 저장된 데이터 양에 따라 자동으로 확장 및 축소된다. 또한, 한 리전 내의 여러 가용 영역에 걸쳐 데이터를 자동으로 복제하여 높은 가용성과 내구성을 보장한다. 이러한 특성 덕분에 애플리케이션을 중단하지 않고도 수천 개의 클라이언트로부터 동시에 접근이 가능하다.
EFS는 주로 여러 서버나 애플리케이션이 공통 데이터 세트에 접근해야 하는 사용 사례에 적합하다. 예를 들어, 웹 서버 팜의 콘텐츠 저장소, 공유된 미디어 처리 워크플로, 데이터베이스 백업 디렉터리, 그리고 컨테이너화된 애플리케이션의 영구 스토리지 등에 널리 사용된다. 표준 NFS 프로토콜을 사용하므로, 대부분의 리눅스 배포판에서 추가적인 소프트웨어 설치 없이 마운트하여 사용할 수 있다.

EFS는 AWS에서 제공하는 완전관리형 NFS 파일 시스템 서비스이다. 핵심 아키텍처는 파일 시스템 인터페이스, 스토리지 클래스, 액세스 포인트라는 세 가지 주요 구성 요소로 이루어진다.
파일 시스템 인터페이스는 표준 NFSv4.0 및 NFSv4.1 프로토콜을 지원한다. 이를 통해 Linux 및 macOS 기반의 EC2 인스턴스, ECS 및 EKS의 컨테이너, Lambda 함수 등 다양한 컴퓨팅 리소스가 동일한 파일 시스템에 동시에 접근할 수 있다. 네트워크를 통해 파일을 공유하는 방식으로, 단일 VPC 내 또는 VPC 피어링, AWS Transit Gateway를 통해 연결된 여러 가용 영역의 인스턴스에서 공유 스토리지로 활용된다.
스토리지 클래스는 데이터의 접근 빈도와 비용 최적화를 위해 설계되었다. 주요 클래스는 다음과 같다.
스토리지 클래스 | 설명 | 주요 사용 사례 |
|---|---|---|
표준 | 자주 접근하는 데이터를 저장. 기본 스토리지 계층. | 활성 작업 세트, 애플리케이션 코드, 개발 환경 |
EFS Infrequent Access (EFS IA) | 덜 자주 접근하는 데이터를 비용 효율적으로 저장. 자동 티어링 가능. | 백업, 아카이브, 오래된 프로젝트 파일 |
액세스 포인트는 파일 시스템에 대한 애플리케이션별 진입점을 제공하는 관리형 구성 요소이다. 각 액세스 포인트는 고유한 루트 디렉터리, 운영 체제 사용자 및 그룹 POSIX 권한, 파일 시스템 경로를 지정할 수 있다. 이를 통해 애플리케이션은 파일 시스템의 특정 하위 디렉터리만 마운트하여 접근할 수 있으며, 이는 다중 테넌트 환경이나 특정 애플리케이션에 대한 접근을 제한하는 데 유용하다.
EFS는 표준 NFS 프로토콜을 통해 파일 시스템 인터페이스를 제공한다. 주로 NFSv4.0 및 NFSv4.1 프로토콜을 지원하며, 이를 통해 리눅스 기반 EC2 인스턴스, 온프레미스 서버, AWS Lambda 함수, 컨테이너 등 다양한 클라이언트에서 파일을 공유하고 액세스할 수 있다. 이 표준 프로토콜 지원 덕분에 기존 애플리케이션을 수정 없이 EFS로 마이그레이션하는 것이 가능해진다.
클라이언트는 POSIX 파일 시스템 세마포어를 포함한 표준 파일 시스템 작업을 수행할 수 있다. 이는 파일 및 디렉터리 생성, 읽기, 쓰기, 삭제와 같은 기본적인 작업뿐만 아니라 파일 잠금과 같은 고급 기능도 포함한다. POSIX 호환성은 애플리케이션이 기대하는 파일 시스템 동작을 보장하여 호환성 문제를 최소화한다.
네트워크를 통한 접근은 VPC 내의 마운트 타겟을 통해 이루어진다. 클라이언트는 표준 mount 명령이나 Amazon Linux의 amazon-efs-utils와 같은 도구를 사용하여 파일 시스템을 마운트한다. 주요 지원 프로토콜과 특징은 다음과 같다.
프로토콜 | 주요 특징 | 권장 사용 사례 |
|---|---|---|
강화된 성능, 병렬 처리, 세션 트렁킹 지원 | 대부분의 최신 애플리케이션, 높은 처리량이 필요한 워크로드 | |
기본적인 NFSv4 기능 제공 | NFSv4.1을 지원하지 않는 레거시 클라이언트 |
이 인터페이스는 완전관리형 서비스로서의 이점과 결합되어, 사용자가 서버 프로비저닝이나 프로토콜 구성과 같은 인프라 관리 부담 없이 완전한 파일 시스템 기능을 활용할 수 있게 한다.
EFS는 데이터의 접근 빈도와 비용 최적화 요구에 따라 선택할 수 있는 여러 스토리지 클래스를 제공한다. 각 클래스는 내구성, 가용성, 성능 및 가격이 다르게 설계되어 다양한 워크로드에 맞춰 유연하게 사용할 수 있다.
주요 스토리지 클래스는 다음과 같다.
클래스 이름 | 설명 | 데이터 접근 지연 시간 | 비용 특징 |
|---|---|---|---|
표준 스토리지 클래스 | 자주 접근하는 데이터를 저장하기 위한 기본 클래스이다. | 낮은 지연 시간 제공 | 스토리지 용량 및 처리량에 따라 비용 발생 |
EFS Infrequent Access (EFS IA) | 덜 자주 접근하지만 빠른 액세스가 필요할 때 사용하는 클래스이다. | 낮은 지연 시간 유지 | 스토리지 비용이 표준보다 낮으나, 데이터를 읽거나 쓸 때 요금이 추가됨[1] |
EFS Archive | 거의 접근하지 않고 장기 보관이 필요한 데이터를 위한 클래스이다. | 데이터 회수 시 몇 분에서 수 시간 소요 가능 | 스토리지 비용이 가장 낮으나, 데이터 회수 시 요금이 추가됨 |
사용자는 라이프사이클 관리 정책을 설정하여 파일의 마지막 접근 시간을 기준으로 스토리지 클래스를 자동으로 전환할 수 있다. 예를 들어, 30일 동안 접근하지 않은 파일은 표준 클래스에서 EFS IA로, 90일 동안 접근하지 않은 파일은 EFS Archive로 이동하도록 정책을 구성할 수 있다. 이는 수동 개입 없이도 스토리지 비용을 효과적으로 절감하는 데 도움을 준다.

EFS는 미사용 데이터 암호화와 전송 중 데이터 암호화를 모두 지원하여 데이터 보안을 강화한다. 기본적으로 모든 새로운 EFS 파일 시스템은 생성 시점에 AWS Key Management Service를 사용한 미사용 데이터 암호화가 활성화된다. 이때 AWS KMS의 기본 고객 마스터 키를 사용하거나, 사용자가 직접 생성하고 관리하는 고객 관리형 키를 선택할 수 있다. 암호화는 파일 시스템의 모든 데이터와 메타데이터에 적용된다.
전송 중 데이터 보호를 위해 EFS는 TLS를 통한 암호화된 연결을 지원한다. 클라이언트가 EFS 파일 시스템에 마운트할 때, 암호화된 전송 옵션을 활성화하면 NFS 트래픽이 TLS 1.2를 사용하여 암호화된다. 이는 Amazon EC2 인스턴스, 온프레미스 서버, AWS Direct Connect 또는 VPN 연결을 통한 접근 모두에 적용 가능하다.
암호화 설정은 파일 시스템 생성 과정에서 결정되며, 이후 변경할 수 없다. 따라서 보안 요구 사항을 사전에 평가하는 것이 중요하다. 고객 관리형 키를 사용하면 키 정책, 회전 주기, 접근 제어를 세밀하게 관리할 수 있어 규정 준수 요건을 충족하는 데 유리하다.
라이프사이클 관리는 EFS에서 스토리지 비용을 자동으로 최적화하기 위한 기능이다. 이 기능은 파일 시스템 내 오래되거나 덜 자주 액세스되는 데이터를 더 비용 효율적인 스토리지 티어로 이동하는 정책 기반의 자동화된 프로세스를 제공한다.
사용자는 파일 액세스 패턴을 기반으로 라이프사이클 정책을 구성할 수 있다. 기본적으로 파일은 표준 스토리지 클래스에 저장된다. 사용자가 설정한 기간(예: 7일, 14일, 30일, 60일, 90일) 동안 액세스되지 않은 파일은 EFS가 자동으로 EFS Infrequent Access 스토리지 클래스로 이동시킨다[2]. 이 프로세스는 완전히 관리되며, 애플리케이션에 대한 파일 시스템의 네임스페이스나 접근성에는 변화가 없다.
라이프사이클 관리를 통해 스토리지 비용을 상당히 절감할 수 있다. EFS Infrequent Access 스토리지 클래스는 기가바이트당 요금이 표준 스토리지 클래스보다 낮지만, 파일을 읽거나 쓸 때 적용되는 추가적인 데이터 처리 요금이 존재한다. 따라서 액세스 빈도가 낮은 데이터(예: 백업 아카이브, 오래된 로그 파일, 역사적 데이터 세트)를 저장하는 데 이상적이다. 이 기능은 특히 용량이 지속적으로 증가하는 파일 시스템에서 비용 효율성을 유지하는 데 핵심적인 역할을 한다.

EFS는 완전 관리형 NFS 파일 시스템으로, 여러 EC2 인스턴스나 온프레미스 서버, 컨테이너 및 서버리스 애플리케이션에서 동시에 접근하여 공유 데이터를 읽고 쓸 수 있다. 이러한 특성은 특정 워크로드 패턴에 매우 적합한 사용 사례를 만들어낸다.
컨테이너 및 마이크로서비스 환경에서 EFS는 상태를 유지해야 하는 애플리케이션에 이상적인 공유 스토리지 계층을 제공한다. Amazon ECS나 Amazon EKS에서 실행되는 여러 컨테이너 인스턴스 또는 파드가 동일한 데이터 세트에 접근해야 할 때, EFS 볼륨을 영구 스토리지로 마운트하여 사용한다. 이를 통해 애플리케이션의 확장성과 가용성을 유지하면서도 사용자 세션 데이터, 업로드된 파일, 공통 구성 파일 등을 일관되게 공유할 수 있다.
빅 데이터 및 분석 워크로드에서 EFS는 로그 집계, 데이터 레이크의 입구 지점, 또는 협업 분석을 위한 공간으로 활용된다. 여러 분석 서버나 EMR 클러스터의 노드들이 원본 데이터나 중간 처리 결과를 공유 파일 시스템으로부터 읽고 쓸 수 있어 처리 파이프라인의 효율성을 높인다. 또한 콘텐츠 관리 시스템과 미디어 처리 워크플로우에서는 웹 서버 팜이 공통의 문서, 이미지, 비디오 자산을 EFS에 저장하고 제공함으로써 모든 서버가 일관된 콘텐츠를 표시하도록 보장한다.
사용 사례 카테고리 | 주요 적용 예시 | EFS가 제공하는 핵심 가치 |
|---|---|---|
컨테이너 및 마이크로서비스 | 공유 구성 파일, 세션 상태, 컨테이너 간 데이터 교환 | 다중 AZ 내구성, 탄력적 용량, 다중 호스트 동시 접근 |
빅 데이터 및 분석 | 로그 집계, 공유 데이터 레이크, 협업 분석 작업 | 높은 처리량, POSIX 호환 파일 시스템 의미 체계 |
콘텐츠 관리 및 미디어 | 웹 서버 팜을 위한 공유 문서 저장소, 미디어 처리 워크플로우 | 낮은 지연 시간의 파일 액세스, 자동 확장 |
이 외에도 개발자 도구 환경(공통 코드 리포지토리), CI/CD 파이프라인(빌드 아티팩트 공유), 그리고 머신 러닝 모델 학습을 위한 대규모 데이터셋 공유 등 다양한 영역에서 EFS의 공유 파일 스토리지 기능이 활용된다.
EFS는 컨테이너화된 애플리케이션과 마이크로서비스 아키텍처에 적합한 공유 파일 스토리지를 제공한다. 컨테이너는 기본적으로 무상태(stateless)로 설계되지만, 애플리케이션에 따라 로그, 설정 파일, 업로드된 콘텐츠 또는 세션 데이터와 같은 상태 정보를 유지해야 하는 경우가 있다. EFS는 여러 Amazon EC2 인스턴스나 AWS Fargate에서 실행되는 Amazon ECS 또는 Amazon EKS 태스크/포드가 동시에 접근할 수 있는 영구적이고 탄력적인 공유 볼륨을 마운트할 수 있게 한다.
이를 통해 동일한 데이터 세트에 대한 공유 액세스가 필요한 분산 애플리케이션을 쉽게 구축할 수 있다. 예를 들어, 웹 애플리케이션 팜에서 사용자 업로드 파일을 모든 웹 서버가 접근 가능한 중앙 위치에 저장하거나, 배치 처리 작업들이 공통의 입력 데이터를 읽고 결과를 동일한 출력 디렉터리에 기록하는 시나리오에 적합하다. 컨테이너 오케스트레이션 서비스인 ECS와 EKS는 EFS 볼륨을 태스크 정의나 퍼시스턴트 볼륨(PV)으로 직접 통합하여 사용할 수 있다.
EFS의 주요 장점은 탄력적인 용량 관리와 다중 가용 영역(AZ)에 걸친 내구성이다. 컨테이너 기반 애플리케이션은 수평적으로 확장되거나 축소될 수 있으며, EFS는 이러한 변화에 맞춰 자동으로 용량을 조정한다. 개발자는 스토리지 용량을 미리 프로비저닝하거나 관리할 필요가 없다. 또한 파일 시스템이 여러 AZ에 자동으로 복제되어 단일 AZ 장애로부터 데이터를 보호하므로, 고가용성을 요구하는 마이크로서비스에 안정적인 스토리지 기반을 제공한다.
사용 사례 | 설명 | EFS의 역할 |
|---|---|---|
공유 구성 관리 | 여러 마이크로서비스가 참조하는 중앙 집중식 설정 파일 | 모든 서비스 인스턴스가 실시간으로 동일한 구성을 읽을 수 있는 공유 마운트 지점 제공 |
콘텐츠 저장소 | 사용자가 업로드한 미디어 파일(이미지, 동영상) | 업로드 포드와 서비스 포드가 동일한 파일 시스템에 접근하여 콘텐츠 제공 |
데이터 처리 파이프라인 | 분산 로그 처리 또는 분석 작업 | 여러 처리 작업 포드가 공유 입력 디렉터리에서 데이터를 읽고 결과를 공통 출력 위치에 기록 |
컨테이너 간 데이터 공유 | 서로 다른 컨테이너화된 애플리케이션 간 데이터 교환 | 표준 파일 시스템 인터페이스를 통해 데이터를 공유하는 영구 볼륨 역할 |
EFS는 빅 데이터 및 분석 워크로드에서 공유 데이터 소스를 위한 확장 가능한 스토리지 계층으로 활용된다. 여러 EC2 인스턴스, EMR 클러스터의 노드, 또는 AWS Lambda 함수가 동일한 데이터셋에 동시에 접근해야 하는 경우에 적합하다. 예를 들어, 로그 파일, 센서 데이터, 트랜잭션 기록과 같은 대규모 데이터를 중앙 집중식으로 저장하고, 다양한 분석 애플리케이션이 이를 읽어 ETL 작업을 수행하거나 머신러닝 모델 학습에 사용할 수 있다.
주요 장점은 펫바이트 규모까지 자동으로 확장되는 탄력적 용량과, 수천 개의 NFS 클라이언트로부터의 초당 수만 건의 IOPS를 처리할 수 있는 처리량 성능에 있다. 특히 빠른 성능 모드를 선택하면 높은 메타데이터 처리 성능을 제공하여, 수백만 개의 작은 파일로 구성된 데이터 레이크에서도 효율적인 파일 조회가 가능하다. 이는 Apache Spark, Hadoop (HDFS 대체), Presto 등의 분산 처리 프레임워크와 통합되어 사용될 때 유리하다.
다음은 EFS가 빅 데이터 파이프라인에서 주로 사용되는 몇 가지 구체적인 패턴이다.
사용 패턴 | 설명 |
|---|---|
공유 데이터 레이크 | 다양한 팀이나 애플리케이션이 표준 NFS 프로토콜을 통해 동일한 원본 데이터에 접근하여 분석을 수행한다. |
로그 집계 및 분석 | 분산된 애플리케이션 서버에서 생성된 로그 파일을 EFS에 실시간으로 집중 저장하고, 분석 클러스터에서 이를 즉시 처리한다. |
모델 학습 데이터 공유 | 대규모 훈련 데이터셋을 EFS에 저장하여, 여러 GPU 인스턴스가 동시에 데이터를 읽어 머신러닝 모델 학습 속도를 높인다. |
이러한 워크로드는 표준 스토리지 클래스와 EFS 인프라 액세스 포인트를 결합하여 특정 애플리케이션에 대한 파일 시스템 접근을 제한하고 관리 효율성을 높일 수 있다. 또한, 주기적으로 접근 빈도가 낮아지는 데이터에 대해서는 EFS Intelligent-Tiering 또는 수동으로 EFS One Zone-Infrequent Access 스토리지 클래스로 이동시켜 비용을 최적화할 수 있다[3].
콘텐츠 관리 시스템은 웹사이트의 텍스트, 이미지, 비디오 등 디지털 콘텐츠를 생성, 관리, 게시하는 데 사용되는 애플리케이션입니다. EFS는 이러한 시스템에 필요한 공유 파일 스토리지 레이어를 제공하는 데 적합합니다. 여러 웹 서버 인스턴스가 동일한 파일 시스템에 접근하여 콘텐츠와 애플리케이션 코드를 공유할 수 있게 하여, 확장성과 고가용성을 보장합니다.
EFS를 CMS 백엔드 스토리지로 사용할 때의 주요 이점은 다음과 같습니다. 첫째, 서버 인스턴스 수를 자동으로 조정하는 오토 스케일링 그룹과 쉽게 통합됩니다. 사용자 트래픽이 증가하면 새로운 웹 서버가 프로비저닝되고 기존 EFS 파일 시스템에 즉시 마운트되어 모든 서버가 일관된 최신 콘텐츠를 제공합니다. 둘째, 다중 AZ 내구성 덕분에 단일 가용 영역 장애 시에도 미디어 파일과 업로드된 콘텐츠가 안전하게 보호됩니다.
일반적인 아키텍처는 Amazon EC2 인스턴스나 컨테이너에서 실행되는 WordPress, Drupal, Joomla와 같은 CMS 애플리케이션이 EFS를 공유 스토리지로 사용하도록 구성하는 것입니다. 이때 애플리케이션 코드 자체는 EFS에 저장할 수 있지만, 성능을 위해 로컬 인스턴스 스토리지에 배포하는 것이 더 일반적입니다. 반면 사용자가 업로드한 미디어 파일, 플러그인, 테마 파일, 세션 데이터 등 변경이 빈번한 콘텐츠는 EFS에 저장하여 모든 인스턴스에서 접근 가능하게 합니다.
구성 요소 | 저장 위치 | 이유 |
|---|---|---|
CMS 코어 애플리케이션 파일 | 주로 EC2 인스턴스 로컬 스토리지 또는 Amazon EBS | 빠른 읽기 성능과 배포 간편성 |
업로드된 미디어(이미지, 문서) | 모든 웹 서버 인스턴스에서 공유 접근 필요 | |
플러그인 및 테마 파일 | EFS | 모든 인스턴스에서 일관된 구성 유지 |
세션 데이터 | EFS 또는 전용 세션 스토어(예: Amazon ElastiCache) | 사용자 세션의 지속성 보장[4] |
이러한 구성은 관리형 데이터베이스 서비스인 Amazon RDS와 결합될 때 특히 효과적입니다. 결과적으로 CMS는 완전히 스테이트리스(stateless) 아키텍처로 운영될 수 있으며, 이는 로드 밸런서 뒤의 어떤 웹 서버 인스턴스도 사용자 요청을 처리할 수 있음을 의미합니다.

EFS 파일 시스템은 AWS Management Console, AWS CLI, 또는 AWS CloudFormation을 통해 생성할 수 있다. 생성 시 파일 시스템의 이름, VPC, 보안 그룹, 성능 모드, 처리량 모드 등의 기본 설정을 지정한다. 생성된 파일 시스템은 NFS 프로토콜(v4.0 또는 v4.1)을 지원하는 EC2 인스턴스, AWS Lambda, 온프레미스 서버 등에 마운트하여 사용한다. 마운트 지침은 콘솔에서 제공되며, 일반적으로 DNS 이름을 통해 마운트 타겟에 접근한다.
성능 모드는 범용 모드와 최대 I/O 모드 중에서 선택해야 한다. 범용 모드는 지연 시간이 짧은 일반적인 워크로드(예: 웹 서빙, 콘텐츠 관리)에 적합하다. 최대 I/O 모드는 높은 수준의 병렬 처리와 처리량이 필요한 워크로드(예: 빅 데이터 분석, 미디어 처리)에 적합하지만, 파일 작업당 지연 시간이 약간 더 길 수 있다. 처리량 모드는 버스팅 모드와 프로비저닝 모드로 나뉜다. 버스팅 모드는 파일 시스템 크기에 비례하여 기본 처리량을 제공하며, 크레딧 시스템을 통해 일시적인 버스트를 지원한다. 프로비저닝 모드는 애플리케이션 요구 사항에 관계없이 명시적으로 설정한 처리량을 유지한다.
백업 및 복구를 위해 AWS Backup 서비스를 통한 자동화된 백업 정책을 설정할 수 있다. EFS는 또한 파일 시스템의 특정 시점 상태를 나타내는 복구 가능한 스냅샷을 지원한다. 스냅샷은 증분 방식으로 생성되어 스토리지 효율성이 높다. 스냅샷은 동일한 AWS 리전 내에 저장되며, 이를 통해 새로운 파일 시스템을 생성하거나 기존 파일 시스템을 특정 시점으로 복원할 수 있다.
EFS 파일 시스템을 생성하는 과정은 AWS Management Console, AWS CLI, AWS CloudFormation 또는 Terraform과 같은 인프라스트럭처 코드 도구를 통해 수행된다. 생성 시에는 파일 시스템의 이름, 가용 영역 배치 방식(표준 또는 One Zone), 성능 모드(범용 또는 Max I/O), 처리량 모드(버스팅, 프로비저닝, 탄력적) 등의 기본 속성을 설정한다. 또한 생성 단계에서 AWS Key Management Service를 사용한 데이터 암호화를 활성화할 수 있다.
생성된 파일 시스템은 Amazon EC2, AWS Lambda, Amazon ECS, Amazon EKS 등 다양한 컴퓨팅 서비스에 마운트하여 사용한다. 마운트를 위해서는 클라이언트에 NFS 클라이언트가 설치되어 있어야 하며, EFS 마운트 도우미를 사용하면 마운트 과정을 단순화할 수 있다. 마운트 명령은 파일 시스템의 DNS 이름을 사용하며, 특정 액세스 포인트를 지정하여 마운트할 수도 있다.
마운트 대상 | 권장 방법 | 주요 특징 |
|---|---|---|
Amazon EC2 인스턴스 |
| 인스턴스와 파일 시스템이 동일한 VPC 및 보안 그룹 설정을 공유해야 함 |
온프레미스 서버 | AWS Direct Connect 또는 VPN 연결 활용 | 하이브리드 클라우드 아키텍처에서 파일 공유 가능 |
볼륨 구성 시 파일 시스템 ID 지정 | 태스크나 파드 간에 지속적인 스토리지 공유 |
마운트 후에는 표준 파일 시스템 명령어를 사용하여 디렉터리 생성, 파일 읽기/쓰기 등의 작업을 수행할 수 있다. EFS는 탄력적이므로 용량을 미리 프로비저닝하거나 확장 작업 없이도 데이터를 추가할 수 있다.
EFS는 두 가지 성능 모드를 제공하여 다양한 워크로드의 처리량과 지연 시간 요구사항에 맞게 최적화할 수 있다. 사용자는 파일 시스템 생성 시 또는 이후에 성능 모드를 선택할 수 있다.
성능 모드 | 설명 | 최적 워크로드 |
|---|---|---|
범용 모드 | 짧은 지연 시간과 높은 수준의 초당 IOPS를 제공하는 기본 모드이다. | 대부분의 일반적인 워크로드, 웹 서버, 콘텐츠 관리 시스템, 홈 디렉터리 등 |
최대 I/O 모드 | 대규모 병렬 처리, 빅 데이터 분석, 미디어 처리 등 높은 처리량이 필요한 작업 |
범용 모드는 대부분의 사용 사례에 권장되는 기본 설정이다. 이 모드는 짧은 지연 시간을 유지하면서도 확장성을 제공한다. 반면, 최대 I/O 모드는 수천 개의 EC2 인스턴스나 컨테이너가 동시에 파일 시스템에 접근하는 대규모 병렬 워크로드에 적합하다. 이 모드는 높은 집계 처리량과 초당 IOPS를 제공하도록 설계되었다.
성능 모드는 파일 시스템 생성 후에도 변경할 수 있다. 단, 변경 작업은 몇 분 정도 소요되며, 이 동안 파일 시스템은 사용 가능한 상태를 유지하지만 성능이 일시적으로 저하될 수 있다. 워크로드의 특성과 성능 요구사항을 신중히 평가한 후 적절한 모드를 선택하는 것이 중요하다.
EFS는 AWS Backup 서비스를 통한 자동화된 백업과 파일 시스템 수준의 복구 기능을 제공하여 데이터 보호를 강화한다. 사용자는 AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 백업 계획을 생성하고, 백업 빈도(예: 매일, 매주)와 보존 기간을 정의할 수 있다. 이러한 백업은 자동으로 생성되어 Amazon S3에 안전하게 저장되며, 별도의 관리 오버헤드 없이 데이터의 내구성을 보장한다.
파일 시스템의 특정 시점으로 복구하는 작업은 간단한 프로세스로 수행된다. 사용자는 복원하려는 백업 복사본을 선택하고, 기존 EFS 파일 시스템에 덮어쓰거나 새로운 파일 시스템으로 복원할 수 있다. 이 과정은 파일 시스템의 메타데이터와 실제 데이터를 모두 포함한 완전한 상태를 복구한다.
백업 방법 | 설명 | 주요 특징 |
|---|---|---|
AWS Backup 통합 백업 | 완전 관리형 서비스를 이용한 정책 기반 자동 백업 | 백업 일정, 보존 규칙, 생애주기 관리 지원 |
수동 스냅샷 | 사용자가 필요 시점에 직접 생성하는 백업 | 특정 이벤트(예: 주요 배포 전) 직전의 상태 보존에 유용 |
데이터 손실 위험을 최소화하기 위해 EFS는 기본적으로 다중 가용 영역에 데이터를 저장하여 높은 내구성을 제공한다. 백업 정책은 이러한 내장된 내구성에 추가적인 보호 계층을 형성하며, 실수로 인한 삭제나 악의적인 활동으로부터 데이터를 보호하는 데 핵심적인 역할을 한다.

보안은 EFS를 운영하는 데 있어 가장 중요한 고려 사항 중 하나이다. AWS는 IAM 정책, 네트워크 접근 제어, 데이터 암호화를 포함한 다층적 보안 모델을 제공하여 파일 시스템과 데이터를 보호한다.
파일 시스템 수준의 접근은 IAM 정책과 네트워크 정책을 통해 제어된다. IAM을 사용하면 특정 EFS 파일 시스템에 대한 생성, 삭제, 마운트와 같은 관리 작업을 허용하거나 거부하는 정책을 정의할 수 있다. 네트워크 접근은 VPC 보안 그룹과 함께 사용되며, 특정 IP 주소 범위나 EC2 인스턴스로부터의 NFS 트래픽만 허용하도록 구성할 수 있다. 액세스 포인트를 활용하면 애플리케이션이 파일 시스템의 특정 디렉터리에만 접근하도록 제한할 수 있어, 루트 디렉터리 전체에 대한 접근 권한을 부여하지 않고도 세분화된 접근 제어가 가능해진다.
데이터 보호를 위해 EFS는 전송 중 및 저장 중 암호화를 모두 지원한다. 전송 중 데이터는 NFS 클라이언트와 EFS 간의 통신 시 TLS를 통해 자동으로 암호화된다. 저장 중 데이터는 AWS Key Management Service를 사용한 암호화가 기본적으로 활성화되어 있다. 사용자는 AWS가 관리하는 키를 사용하거나, 고객 관리형 CMK를 생성하여 암호화 키에 대한 완전한 제어권을 가질 수 있다. 암호화는 파일 시스템 생성 시 설정되며, 이후 변경할 수 없다.
보안 영역 | 구성 요소 | 주요 기능 |
|---|---|---|
인증 및 권한 부여 | 파일 시스템 관리 작업(생성, 마운트 등) 제어 | |
네트워크 보안 | VPC, 보안 그룹 | |
파일 시스템 접근 제어 | 애플리케이션이 특정 디렉터리만 접근하도록 제한 | |
데이터 암호화 (전송 중) | 클라이언트와 EFS 간 통신 암호화 | |
데이터 암호화 (저장 중) |
IAM 정책은 EFS 파일 시스템에 대한 접근 권한을 제어하는 핵심 메커니즘이다. 이 정책은 "누가(Who)" "어떤 리소스에(Which Resource)" "무엇을 할 수 있는지(What Action)"를 정의하는 JSON 형식의 문서이다. IAM 정책은 파일 시스템 수준에서 적용되며, AWS 계정 내의 IAM 사용자, IAM 역할, IAM 그룹 또는 다른 AWS 계정에 대한 세분화된 권한을 부여하거나 거부할 수 있다.
EFS에 적용되는 주요 IAM 정책 요소는 다음과 같다.
권한 | 설명 |
|---|---|
| 파일 시스템을 EC2 인스턴스 등에 마운트할 수 있는 권한이다. |
| 파일 시스템에 데이터를 쓸 수 있는 권한이다. |
| 파일 시스템의 루트 디렉토리에 대한 전체 접근 권한이다. |
| 파일 시스템의 속성 정보를 조회할 수 있는 권한이다. |
정책은 특정 조건(Condition)을 추가하여 더욱 세밀하게 제어할 수 있다. 예를 들어, 특정 VPC나 서브넷에서만 접근을 허용하거나, 암호화가 활성화된 파일 시스템에 대한 작업만 허용하도록 조건을 설정할 수 있다. IAM 정책은 네트워크 접근 제어 목록(NACL)이나 보안 그룹과 같은 네트워크 계층의 제어와는 별개로, 인증된 주체의 행위 자체를 규정한다는 점에서 차이가 있다[5].
정책 관리 시 주의할 점은 최소 권한의 원칙을 따르는 것이다. 예를 들어, 특정 애플리케이션 역할이 특정 EFS에 대해 읽기 전용 접근만 필요하다면, ClientWrite나 ClientRootAccess 권한은 부여하지 않아야 한다. IAM 정책은 AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 생성, 연결 및 관리할 수 있다.
EFS 파일 시스템에 대한 네트워크 수준의 접근은 보안 그룹과 VPC 엔드포인트를 통해 제어된다. 각 EFS 파일 시스템은 특정 VPC 내에 생성되며, 파일 시스템에 접근하려는 EC2 인스턴스나 다른 클라이언트는 동일한 VPC에 위치하거나 VPC 피어링, AWS Direct Connect, VPN 연결 등을 통해 연결되어야 한다. 클라이언트의 실제 접근 허용 여부는 파일 시스템에 연결된 보안 그룹의 인바운드 규칙에 의해 결정된다. 이 보안 그룹 규칙은 특정 IP 주소 범위(CIDR 블록)나 다른 보안 그룹을 소스로 지정하여, 특정 네트워크 트래픽만 NFS 프로토콜(기본 포트 2049)을 통해 파일 시스템에 도달할 수 있도록 한다.
VPC 외부의 온프레미스 서버나 다른 AWS 리전의 서비스에서 EFS에 접근해야 하는 경우, AWS PrivateLink 기술을 기반으로 하는 VPC 엔드포인트를 생성하여 사용할 수 있다. 이 엔드포인트는 퍼블릭 인터넷을 경유하지 않고 프라이빗 IP 주소를 통해 VPC 내부의 EFS 서비스에 안전하게 연결하는 게이트웨이 역할을 한다. 이를 구성하면 온프레미스 네트워크와 VPC 사이에 구축된 연결(VPN 또는 Direct Connect)을 통해 마치 로컬 네트워크에 있는 것처럼 EFS 파일 시스템을 마운트할 수 있다.
네트워크 접근 제어 설정은 일반적으로 다음 단계를 따른다.
구성 요소 | 설명 |
|---|---|
보안 그룹 | 파일 시스템을 생성하거나 수정할 때 하나 이상의 보안 그룹을 연결한다. 이 보안 그룹의 인바운드 규칙에서 NFS 트래픽(포트 2049)을 허용할 소스(예: 특정 서브넷의 CIDR 또는 애플리케이션 서버의 보안 그룹)를 지정한다. |
VPC 엔드포인트 | 프라이빗 연결이 필요한 경우, 'com.amazonaws.[리전].elasticfilesystem' 서비스에 대한 인터페이스 타입의 VPC 엔드포인트를 생성한다. 이 엔드포인트는 선택한 서브넷에 ENI(Elastic Network Interface)로 배치된다. |
라우팅 테이블 | 온프레미스에서의 접근을 위해, 해당 VPC 엔드포인트를 목적지로 하는 경로를 VPN 또는 Direct Connect 연결과 연관된 라우팅 테이블에 추가해야 할 수 있다. |
이러한 메커니즘을 통해 관리자는 네트워크 경로와 트래픽 소스를 세밀하게 제한함으로써, 허가된 리소스만 EFS 스토리지에 접근할 수 있도록 강력한 네트워크 보안 경계를 구축할 수 있다.
EFS는 저장 및 전송 중 데이터를 암호화하는 기능을 제공하여 민감한 정보를 보호한다. 암호화는 파일 시스템 생성 시 활성화할 수 있으며, 이후에는 변경이 불가능하다. 이 기능을 사용하면 AWS Key Management Service에서 관리하는 고객 마스터 키를 통해 데이터를 암호화한다.
전송 중 암호화는 TLS를 사용하여 구현된다. EC2 인스턴스나 온프레미스 서버가 EFS 파일 시스템에 연결할 때, 암호화된 전송 옵션을 활성화하면 모든 네트워크 트래픽이 보호된다. 이는 NFS 프로토콜을 통한 데이터 이동 시 도청이나 변조를 방지한다.
저장 데이터(데이터 액세스) 암호화는 AES-256 암호화 알고리즘을 사용한다. 암호화 키는 사용자가 선택한 CMK로 관리되며, 키 순환 정책을 설정할 수 있다. 암호화된 파일 시스템의 성능은 암호화되지 않은 파일 시스템과 동일한 수준을 유지한다[6].
파일 시스템의 루트 디렉토리 메타데이터와 모든 파일 및 디렉토리 내용은 암호화 대상에 포함된다. 이는 EFS가 PCI-DSS, HIPAA, FedRAMP와 같은 다양한 규정 준수 요구사항을 충족하는 데 기여한다.

EFS의 비용을 효과적으로 관리하기 위해서는 스토리지 클래스를 전략적으로 활용하고 라이프사이클 관리 정책을 설정하는 것이 중요하다. 기본적으로 EFS는 사용한 만큼만 비용을 지불하는 종량제 모델을 제공하지만, 데이터 접근 패턴에 맞춰 적절한 스토리지 티어를 선택하면 비용을 절감할 수 있다.
EFS는 스탠더드 스토리지 클래스와 EFS Infrequent Access(IA) 스토리지 클래스로 구성된다. 자주 접근하는 핫 데이터는 스탠더드 클래스에, 덜 자주 접근하는 웜 데이터는 EFS IA 클래스에 저장하는 것이 경제적이다. EFS IA는 스토리지 비용이 낮은 대신 데이터를 읽거나 쓸 때 요청 비용이 발생한다. 따라서 접근 빈도가 낮은 백업 데이터, 아카이브 데이터, 오래된 로그 파일 등을 EFS IA로 이동시키면 전체 스토리지 비용을 크게 줄일 수 있다.
비용 최적화의 핵심 도구는 라이프사이클 관리 정책이다. 이 정책을 사용하면 사용자가 수동으로 개입하지 않고도, 지정된 기간 동안 접근되지 않은 파일을 자동으로 EFS IA 스토리지 클래스로 이동시킬 수 있다. 예를 들어, 30일 또는 60일 동안 접근되지 않은 파일을 EFS IA로 전환하는 정책을 설정할 수 있다. 이 정책은 EFS 파일 시스템 전체 또는 특정 경로(디렉토리)에 적용할 수 있어 세밀한 관리가 가능하다.
최적화 전략 | 설명 | 적합한 사용 사례 |
|---|---|---|
라이프사이클 정책 적용 | 미접근 파일을 EFS IA로 자동 이동 | 개발 환경 로그, 월간 리포트, 오래된 미디어 자산 |
스토리지 클래스 수동 관리 | 접근 패턴이 예측 가능한 데이터의 클래스 직접 지정 | 법적 보관용 문서, 역사적 데이터 아카이브 |
액세스 패턴 모니터링 | Amazon CloudWatch 지표를 통한 파일 접근 빈도 분석 | 비용 절감 효과 측정 및 정책 조정 근거 마련 |
효과적인 비용 관리를 위해서는 Amazon CloudWatch의 TotalIOBytes나 ClientConnections 같은 지표를 모니터링하여 실제 데이터 접근 패턴을 분석하는 것이 좋다. 이를 바탕으로 라이프사이클 정책의 전환 기간을 조정하면 불필요한 요청 비용을 발생시키지 않으면서 스토리지 비용을 최적화할 수 있다.
Amazon EFS는 사용 사례와 비용 요구 사항에 맞게 선택할 수 있는 여러 스토리지 클래스를 제공한다. 각 클래스는 성능, 가용성, 비용 측면에서 다른 특성을 가지며, 데이터의 접근 패턴에 따라 적절한 클래스를 선택하면 비용을 효율적으로 관리할 수 있다.
주요 스토리지 클래스는 다음과 같다.
스토리지 클래스 | 설명 | 주요 사용 사례 | 비용 특성 |
|---|---|---|---|
표준 스토리지 클래스 | 자주 액세스하는 데이터를 위한 기본 클래스이다. 높은 내구성과 가용성을 제공한다. | 활성 작업 세트, 실시간 처리, 공유 홈 디렉터리 | 상대적으로 높은 GB당 스토리지 비용 |
EFS Infrequent Access (EFS IA) | 덜 자주 액세스하지만 필요할 때 빠르게 사용해야 하는 데이터를 위해 설계되었다. 표준 클래스보다 GB당 스토리지 비용이 낮다. | 장기 보관된 프로젝트 파일, 주기적 백업, 오래된 로그 파일 | 낮은 GB당 스토리지 비용, 데이터를 읽거나 쓸 때 요금 발생[7] |
EFS Archive | 거의 액세스하지 않고 장기간 보관하는 데이터에 최적화된 클래스이다. 가장 낮은 GB당 스토리지 비용을 제공하지만, 데이터를 검색할 때는 가장 높은 검색 비용이 발생한다. | 규정 준수를 위한 아카이브, 감사 로그, 역사적 데이터 보관 | 매우 낮은 GB당 스토리지 비용, 데이터 검색 시 상대적으로 높은 요금 |
비용 최적화를 위해서는 라이프사이클 관리 기능을 활성화하는 것이 효과적이다. 이 기능을 설정하면, 사용자가 지정한 기간 동안 액세스되지 않은 파일을 자동으로 더 저렴한 스토리지 클래스(EFS IA 또는 EFS Archive)로 이동시킨다. 예를 들어, 30일 동안 액세스되지 않은 파일은 EFS IA로, 90일 동안 액세스되지 않은 파일은 EFS Archive로 이동하는 정책을 구성할 수 있다. 이는 수동으로 데이터를 관리할 필요 없이 스토리지 비용을 자동으로 절감해 준다.
사용자는 애플리케이션의 데이터 접근 패턴을 분석하여 라이프사이클 정책을 세밀하게 조정해야 한다. 너무 공격적인 정책(예: 7일 후 IA로 이동)은 자주 재액세스되는 데이터가 저비용 티어로 이동되어 오히려 더 높은 액세스 비용을 초래할 수 있다. 반면, 너무 보수적인 정책은 비용 절감 효과를 제한한다. 따라서 모니터링 도구를 활용해 파일 시스템의 액세스 패턴을 지속적으로 관찰하고 정책을 조정하는 것이 좋다.
라이프사이클 정책 설정은 Amazon EFS의 비용을 자동으로 최적화하기 위한 핵심 기능이다. 이 정책을 사용하면 사용 빈도가 낮은 파일을 더 저렴한 스토리지 클래스로 자동 이동시켜 전체 스토리지 비용을 절감할 수 있다.
정책은 파일이 마지막으로 액세스된 날짜를 기준으로 작동한다. 관리자는 파일이 액세스되지 않은 상태로 유지되는 기간(예: 7일, 14일, 30일, 60일, 90일)을 설정하여 파일을 EFS Infrequent Access 스토리지 클래스로 전환하도록 라이프사이클 정책을 구성한다. 예를 들어, 30일 정책을 설정하면, 마지막 액세스 후 30일이 지난 파일은 자동으로 표준 스토리지에서 IA 스토리지로 이동한다. 이 전환은 파일 시스템 수준에서 투명하게 이루어지며, 애플리케이션은 파일의 물리적 위치 변경 없이 동일한 경로를 통해 계속 액세스할 수 있다.
라이프사이클 관리는 AWS Management Console, AWS CLI, 또는 AWS SDK를 통해 설정할 수 있다. 정책을 적용할 때는 워크로드의 데이터 액세스 패턴을 신중하게 고려해야 한다. 빈번히 재액세스되는 파일이 IA 티어로 전환되면, 해당 파일을 읽거나 쓸 때 추가적인 요금이 발생할 수 있기 때문이다[8]. 따라서 로그 아카이빙, 미디어 자산 보관, 장기 백업 저장과 같이 액세스 빈도가 시간이 지남에 따라 급격히 떨어지는 사용 사례에 가장 효과적이다.

Amazon EFS는 AWS의 완전관리형 NFS 파일 시스템 서비스이지만, 특정 사용 사례에 따라 다른 스토리지 서비스와 비교하여 선택해야 한다. 주요 관련 서비스로는 Amazon FSx, Amazon S3, Amazon EBS가 있다.
서비스 | 주요 프로토콜/유형 | 주요 사용 사례 | 접근 방식 |
|---|---|---|---|
Amazon EFS | NFS (Network File System) | 리눅스 기반 애플리케이션의 공유 파일 스토리지, 컨테이너 스토리지, 분석 워크로드 | |
Amazon FSx | Windows File Server, Lustre, NetApp ONTAP, OpenZFS | Windows 애플리케이션, 고성능 컴퓨팅(HPC), 기존 엔터프라이즈 파일 시스템 마이그레이션 | 프로토콜별 클라이언트(예: SMB, Lustre 클라이언트)를 통해 네트워크 마운트 |
Amazon S3 | 객체 스토리지 API (RESTful) | 데이터 레이크, 백업/아카이브, 정적 웹 호스팅, 빅 데이터 분석 | HTTP/HTTPS를 통한 프로그램적 접근, 객체 단위 작업 |
Amazon EBS | 블록 스토리지 볼륨 | 단일 EC2 인스턴스를 위한 부트 볼륨 또는 저지연 데이터 스토리지 | 단일 EC2 인스턴스에 직접 연결(attach)하여 블록 디바이스로 사용 |
Amazon FSx는 EFS보다 더 넓은 프로토콜 지원을 제공한다. FSx for Windows File Server는 완전관리형 SMB 파일 공유로, Active Directory 통합이 필요한 Windows 기반 애플리케이션에 적합하다. FSx for Lustre는 초고속, 저지연 처리 성능이 필요한 HPC 및 머신러닝 워크로드를 위해 설계되었다. 반면 EFS는 표준 NFSv4 프로토콜을 사용하는 리눅스 환경의 범용 공유 스토리지에 최적화되어 있다.
Amazon S3는 무제한의 객체를 저장할 수 있는 확장성 높은 객체 스토리지이다. 파일 시스템과 같은 계층 구조가 아닌, 평면한 네임스페이스와 메타데이터를 사용한다. 따라서 기존 애플리케이션을 수정 없이 파일 시스템 인터페이스가 필요한 경우에는 EFS가 더 적합하다. Amazon EBS는 단일 가용 영역에 종속된 고성능 블록 스토리지로, 단일 EC2 인스턴스에 전용으로 연결된다. 여러 인스턴스에서 공유 접근이 필요한 경우에는 EFS를 선택해야 한다.
Amazon FSx는 AWS에서 제공하는 완전관리형 파일 스토리지 서비스군이다. EFS가 NFS 프로토콜을 기반으로 한 범용 파일 시스템이라면, FSx는 특정 워크로드와 프로토콜에 최적화된 여러 종류의 파일 시스템을 제공한다는 점에서 차별점을 가진다.
주요 FSx 제품군은 다음과 같다.
제품 | 주요 프로토콜 | 최적화 대상 | 내구성 구조 |
|---|---|---|---|
Windows 기반 애플리케이션, Active Directory 통합 | 단일 AZ 또는 다중 AZ | ||
고성능 컴퓨팅(HPC), 머신러닝, 미디어 처리 | 단일 AZ | ||
엔터프라이즈 NAS 기능, 스토리지 효율성 | 다중 AZ 고가용성 | ||
OpenZFS 기능 호환성, 낮은 지연 시간 | 단일 AZ |
사용자는 애플리케이션 요구사항에 따라 적절한 FSx 파일 시스템을 선택한다. 예를 들어, Windows 서버나 Microsoft SQL Server를 위한 공유 스토리지가 필요하면 FSx for Windows File Server를, 대규모 병렬 처리 작업이 필요한 HPC 워크로드에는 FSx for Lustre를 사용한다. FSx for ONTAP과 FSx for OpenZFS는 각각 NetApp ONTAP과 OpenZFS의 고급 데이터 관리 기능을 완전관리형 서비스로 제공한다.
EFS와의 핵심적인 비교는 프로토콜 지원과 확장 모델에 있다. EFS는 리눅스 중심의 NFSv4 프로토콜만 지원하며, 사용량에 따라 자동으로 확장되는 탄력적인 용량 모델을 가진다. 반면, FSx 서비스들은 특정 프로토콜(SMB, Lustre 등)에 최적화되어 있으며, 용량을 프로비저닝하거나 사용량 기반으로 설정할 수 있다. 또한, EFS는 기본적으로 다중 가용 영역(AZ)에 데이터를 분산 저장하지만, FSx 제품별로 단일 AZ 또는 다중 AZ 배포 옵션이 상이하다.
Amazon S3(Simple Storage Service)는 AWS가 제공하는 객체 스토리지 서비스이다. EFS가 파일 시스템 인터페이스를 제공하는 네트워크 파일 스토리지인 반면, S3는 RESTful API를 통해 접근하는 객체 기반의 무제한 스토리지 서비스이다. 데이터는 버킷(Bucket)이라는 컨테이너에 객체(Object) 형태로 저장되며, 각 객체는 고유한 키와 메타데이터를 가진다.
두 서비스의 주요 차이점은 데이터 접근 방식과 사용 사례에 있다. EFS는 표준 파일 시스템 프로토콜(NFS)을 사용하여 여러 EC2 인스턴스나 온프레미스 서버에서 동시에 공유 접근이 필요한 워크로드에 적합하다. 반면 S3는 웹 규모의 데이터 레이크, 정적 웹사이트 호스팅, 백업 및 아카이브, 데이터 분석과 같이 대규모 비정형 데이터를 저장하고 애플리케이션 수준에서 접근하는 데 최적화되어 있다.
다음은 EFS와 S3의 핵심 특성을 비교한 표이다.
특성 | Amazon EFS | Amazon S3 |
|---|---|---|
스토리지 모델 | 파일 시스템 (파일 및 디렉터리) | 객체 스토리지 (객체 및 버킷) |
접근 프로토콜 | NFSv4 (파일 시스템 마운트) | REST API, SDK, 콘솔 |
데이터 일관성 모델 | 강력한 일관성[9] | 새 객체에 대한 쓰기 후 읽기 일관성, 덮어쓰기 삭제에 대한 최종 일관성 |
주요 사용 사례 | 공유 코드 저장소, 컨테이너 영구 스토리지, CMS | 데이터 레이크, 백업/아카이브, 정적 웹 호스팅, 대용량 로그 저장 |
성능 | 낮은 지연 시간의 파일 액세스 | 높은 처리량, 객체 수준의 병렬 처리 |
따라서, 애플리케이션이 파일 시스템 의미 체계(예: 파일 잠금, 디렉터리 계층 구조)를 필요로 하거나 여러 컴퓨팅 노드에서 동일한 데이터 세트에 동시에 액세스해야 하는 경우에는 EFS를 선택한다. 반면, 거의 무제한의 확장성과 내구성이 필요하며 애플리케이션이 객체 기반 API를 통해 데이터를 관리할 수 있는 경우에는 S3가 더 적합한 선택이 된다.
EBS 볼륨은 단일 가용 영역에 연결된 블록 스토리지 서비스이다. 주로 단일 EC2 인스턴스에 영구적인 디스크 볼륨을 제공하기 위해 설계되었다. EBS 볼륨은 인스턴스에 물리적으로 연결된 하드 드라이브처럼 작동하며, 파일 시스템을 포맷하고 운영 체제 및 애플리케이션 데이터를 저장하는 데 사용된다.
EFS와의 주요 차이점은 액세스 방식과 확장성에 있다. EBS 볼륨은 일반적으로 연결된 단일 EC2 인스턴스에서만 액세스할 수 있다. 반면 EFS는 NFS 프로토콜을 통해 다수의 인스턴스, 컨테이너, 서버리스 함수 등에서 동시에 공유 액세스가 가능한 네트워크 파일 시스템이다. 또한 EBS 볼륨의 용량은 프로비저닝 시 미리 결정되며, 필요 시 수동으로 확장해야 하지만, EFS는 사용량에 따라 자동으로 탄력적으로 확장된다.
다음 표는 EFS와 EBS 볼륨의 핵심 특성을 비교한다.
특성 | Amazon EFS | Amazon EBS 볼륨 |
|---|---|---|
액세스 모델 | 다중 인스턴스 공유 (네트워크 파일 시스템) | 단일 인스턴스 전용 (블록 스토리지) |
확장성 | 사용량에 따른 자동 탄력적 확장 | 프로비저닝된 용량 한도 내에서 사용, 수동 확장 필요 |
내구성 및 가용성 | 다중 가용 영역에 자동 복제 | 단일 가용 영역 내에서 복제, 스냅샷을 통한 다른 영역 복구 가능 |
주요 사용 사례 | 웹 서버 팜, 콘텐츠 관리, 컨테이너 공유 스토리지 | 데이터베이스, 부트 볼륨, 단일 인스턴스 애플리케이션 |
따라서, 단일 인스턴스에 고성능의 낮은 지연 시간 블록 스토리지가 필요하거나 데이터베이스 워크로드를 운영할 경우 EBS 볼륨이 적합하다. 반면, 여러 컴퓨팅 리소스가 공통 데이터 세트에 동시에 액세스해야 하는 분산 애플리케이션에는 EFS가 더 적절한 선택이다.

EFS는 AWS의 완전관리형 NFS 서비스로, 주로 엔터프라이즈급 애플리케이션과 데이터 공유에 사용된다. 그러나 서비스 이름의 유래나 운영 중 발생한 흥미로운 사건들은 공식 문서에서 다루지 않는 경우가 많다.
EFS라는 이름은 "Elastic File System"의 약자이다. "Elastic(탄력적)"이라는 수식어는 서비스의 핵심 특징인 사용량에 따라 자동으로 확장되는 스토리지 용량을 반영한다. 이는 전통적인 파일 서버나 NAS 장비에서 필요했던 용량 계획과 수동 프로비저닝 과정을 제거한 설계 철학을 보여준다. 초기 개발 코드네임은 공개되지 않았으나, AWS 내부에서 스토리지 서비스군의 일관된 네이밍 컨벤션을 따라 명명된 것으로 알려져 있다.
기술적 특성과 관련된 재미있는 점 중 하나는 EFS가 표준 NFSv4.1 프로토콜을 사용한다는 것이다. 이는 수많은 리눅스 배포판과 macOS에 기본적으로 포함된 NFS 클라이언트를 통해 즉시 마운트하여 사용할 수 있음을 의미한다. 결과적으로, 클라우드 서비스임에도 불구하고 온프레미스에서 익숙한 mount -t nfs 명령어를 그대로 사용할 수 있어 사용자에게 친숙함을 제공한다. 또한, EFS의 메타데이터 성능 모드(기본값)는 파일 시스템의 inode 수와 같은 메타데이터 작업에 최적화되어 있어, 수백만 개의 작은 파일을 빠르게 생성해야 하는 워크로드에서 두각을 나타낸다.