티스토리 뷰
Amazon EFS 란?
Amazon EFS는 AWS의 완전 관리형 파일 스토리지 서비스로, 대규모 데이터 공유가 필요한 환경에서 높은 성능을 제공하는 서비스입니다. 기본적으로 POSIX 호환을 지원하며, 리눅스 기반의 애플리케이션에서 기존 네트워크 파일 시스템(NFS)처럼 사용할 수 있습니다.
주요 특징
- 자동 확장(Auto Scaling)
- Amazon EFS는 저장 용량을 미리 설정할 필요 없이, 저장된 데이터의 양에 따라 자동으로 확장
- 사용자가 직접 용량을 조절하지 않아도 필요에 따라 파일 시스템 크기가 동적으로 증가하거나 감소함
- 다중 가용 영역(AZ) 지원
- EFS는 여러 개의 가용 영역에서 동일한 데이터를 공유할 수 있는 기능 제공
- 고가용성이 보장되며, 장애 발생 시에도 데이터 손실 없이 원활한 운영이 가능
- 고성능 및 확장성
표준 성능 모드(Standard Mode)와 프로비저닝된 성능 모드(Provisioned Mode)를 지원하여, 애플리케이션의 요구 사항에 맞는 성능 선택 가능- 표준 성능 모드: 자동으로 확장되며, 대부분의 애플리케이션에 적합
- 프로비저닝 성능 모드: 높은 성능이 필요한 워크로드(예: 머신러닝, 빅데이터 분석 등)에 적합
- 보안 및 데이터 관리
- Amazon VPC 내에서 동작하며, 보안 그룹과 IAM 정책을 활용하여 접근을 제어 수행
- 라이프사이클 관리(Lifecycle Management) 기능을 통해, 일정 기간 사용되지 않은 데이터를 자동으로 저비용의 Infrequent Access(IA) 스토리지 클래스로 이동하여 비용 절감 가능
- 다양한 AWS 서비스와 연동 가능
- Amazon EC2, ECS, EKS 등의 서비스와 손쉽게 연동 가능
- AWS Lambda에서도 사용 가능하여, 서버리스 애플리케이션 개발 시 활용 가능
- 온프레미스 환경에서도 AWS Direct Connect 또는 VPN을 통해 EFS에 접근 가능
동작 방식
Amazon EFS의 동작 방식은 크게 파일 시스템 생성 → 네트워크 구성 → 마운트 및 사용 → 성능 최적화의 과정으로 이루어집니다.
1. 파일 시스템 생성
AWS 관리 콘솔, CLI, SDK 등을 통해 손쉽게 파일 시스템을 생성할 수 있으며, 주요 설정 항목은 다음과 같습니다.
- VPC 및 서브넷 선택: Amazon EFS는 특정 VPC 내에서 동작하므로, 적절한 서브넷과 함께 설정
- 가용 영역(AZ) 선택: EFS는 다중 AZ를 지원하며, 이 기능을 통해 여러 지역에서 동일한 데이터 공유 가능
- 성능 모드 선택: 기본적으로 표준 성능 모드가 적용되며, 높은 성능이 필요한 경우 프로비저닝된 성능 모드 선택
- 라이프사이클 관리 설정: 일정 기간 사용하지 않은 데이터를 저비용 스토리지 클래스로 이동하는 기능을 활성화
2. 네트워크 구성 및 보안 설정
Amazon EFS는 NFS(Network File System) 프로토콜을 기반으로 동작하므로, 네트워크 구성이 중요합니다.
- 보안 그룹(Security Group) 설정: NFS 포트(2049번)를 허용해야 함
- IAM 정책 및 액세스 포인트 설정: 특정 사용자가 특정 폴더에만 접근할 수 있도록 제한함
3. EC2 및 온프레미스 서버에서 마운트
EC2 인스턴스나 온프레미스 서버에서 Amazon EFS를 마운트하는 방법은 다음과 같습니다.
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 fs-xxxxxxxx.efs.region.amazonaws.com:/ efs
4. 데이터 저장 및 성능 최적화
EFS에 데이터를 저장하면 여러 개의 EC2 인스턴스 또는 서버에서 동일한 데이터를 동시에 접근할 수 있습니다.
- 쓰기 및 읽기 최적화: 병렬 액세스를 활용하여 다수의 서버에서 빠르게 데이터 처리가 가능
- 캐싱 활용: EC2 인스턴스 로컬 캐싱을 활용하여 성능 향상 가능
유사서비스 비교 (EFS, EBS, S3)
AWS에는 EFS외에 EBS, S3와 같은 스토리지 서비스를 제공하고 있습니다. 클라우드 상에서 스토리지 선택을 위해서 각 서비스의 특징을 비교합니다.
EFS, EBS, S3 특징 비교
AWS의 주요 스토리지 서비스인 EFS, EBS, S3는 각각 파일, 블록, 객체 스토리지로 분류됩니다.
서비스 | 스토리지 유형 | 특징 |
EFS | 파일 스토리지 | 다수의 EC2 인스턴스에서 공유 가능, NFS 기반 |
EBS | 블록 스토리지 | EC2에 직접 연결, 높은 IOPS 및 지연 시간 최소화 |
S3 | 객체 스토리지 | 글로벌 확장성, 무제한 저장 공간, 정적 콘텐츠 저장에 최적화 |
EFS, EBS, S3 성능 비교 (속도, 확장성)
AWS 스토리지 서비스는 성능과 확장성 측면에서 차이가 큽니다.
항목 | EFS | EBS | S3 |
IOPS (초당 입출력 작업 수) | 중간 | 높음 | 낮음 |
처리량 | 자동 조정 | 프로비저닝 필요 | 무제한 |
지연 시간 | 밀리초(ms) 단위 | 마이크로초(μs) 단위 | 높은 지연 시간 |
확장성 | 자동 확장 | 볼륨 크기 제한 | 무제한 |
- EBS는 높은 IOPS와 낮은 지연 시간을 제공하여, 데이터베이스 및 고성능 애플리케이션에 적합
- EFS는 여러 인스턴스에서 공유할 수 있지만, EBS보다 지연 시간이 높음
- S3는 높은 내구성과 무제한 저장 용량을 제공하지만, 지연 시간이 가장 큼
EFS, EBS, S3 비용 모델 비교
각 스토리지 서비스의 비용 모델을 비교하면 다음과 같습니다.
서비스 | 요금 방식 | 비용 |
EFS | 사용량 기반 | GB당 $0.30 (표준) / $0.025 (IA) |
EBS | 프로비저닝된 용량 기준 | GB당 $0.08~$0.12 |
S3 | 저장 및 요청 수 기준 | GB당 $0.023 (표준), $0.0125 (IA) |
- EFS는 표준 스토리지가 비싸지만, 자주 접근하지 않는 데이터를 IA로 자동 이동 가능
- EBS는 미리 용량을 설정해야 하므로, 사용하지 않는 공간도 비용이 발생할 수 있음
- S3는 가장 저렴한 옵션이지만, 데이터 검색과 요청에도 추가 비용이 발생
어떤 스토리지를 써야 할까?
사용목적 | 추천 스토리지 |
다수의 서버에서 파일 공유 | EFS |
데이터베이스 및 고성능 애플리케이션 | EBS |
장기 데이터 저장 및 정적 파일 | S3 |
- Amazon EFS는 다중 EC2 인스턴스에서 공유할 파일 스토리지가 필요할 때 적합
- Amazon EBS는 데이터베이스와 같이 높은 성능과 일관된 지연 시간이 필요한 경우에 이상적
- Amazon S3는 비용 효율적인 대용량 데이터 저장 및 백업에 가장 적합
각 스토리지 서비스의 특성을 고려하여, 워크로드에 맞는 최적의 AWS 스토리지 솔루션을 선택하는 것이 중요합니다.