NFS(Network File System)
: 네트워크를 통해 여러 서버와 클라이언트가 파일을 공유할 수 있도록 해주는 분산 파일 시스템. 주로 리눅스/유닉스 환경에서 사용되며, 원격 서버의 파일을 로컬 파일처럼 접근할 수 있도록 해준다.
KMS : Key Management System
General Purpose (기본값) : 지연 시간에 민감한 웹서버나 CMS등에서 사용
CMS (Content Management System, 콘텐츠 관리 시스템)란?
CMS는 웹사이트의 콘텐츠(텍스트, 이미지, 동영상 등)를 쉽게 생성, 수정, 관리할 수 있도록 도와주는 소프트웨어. 프로그래밍을 몰라도 웹사이트를 운영할 수 있도록 도와주는 도구. ex WordPress
Max I/O : 처리량을 최대화. 지연시간이 더 긴 네트워크 파일 시스템이지만 처리량, 병렬성이 높음. 빅데이터 애플리케이션이나 미디어 처리가 필요한 경우 유용함.
스토리지 계층을 설정할 수 있고 며칠 후 파일을 다른 계층으로 옮길 수 있는 기능
—-
여기서 마운트 위치 확인하고 나중에 연결된 ec2 인스턴스의 해당 지점으로 가면 파일 시스템 사용 가능

파일시스템 유형을 Regional( 여러 AZ에 걸쳐 한 지역 내에 파일 시스템을 제공. 데이터의 가용성과 내구성을 매우 높게 유지. 프로덕션 환경에서 선택), One Zone(특정 AZ 하나만 선택. 비용절감) 중에 선택한다.
자동백업은 활성화된 상태로 유지하는 것이 좋다.

수명주기 관리는 여러 스토리지 계층으로 데이터를 이동하여 비용을 절감할 수 있다.
예를 들어 30일 동안 접근하지 않은 파일은 IA로 이동시킬 수 있다.
암호화는 활성화 상태로 둔다.

처리량 모드에서 선택하기

EFS를 위한 특정 보안 그룹을 생성하여 적용한다.
이때 인스턴스들이 EFS로 접근할 수 있도록 설정한다.
타입: NFS, 소스: EC2 인스턴스가 속한 보안 그룹 ID
나머지 설정은 건너뛰고 생성한다.
EC2 인스턴스 생성 시
네트워크 설정에서 서브넷(AZ)을 선택한다.
스토리지 설정 > File system > EFS > add shared file system를 선택하면 바로 연결된다.
연결된 내역은 EFS콘솔에서 확인 가능하다.
AWS 콘솔에서 EC2를 만들 때, "스토리지 > EFS 파일 시스템 추가" 옵션을 설정했다면:
인스턴스가 부팅될 때 자동으로 EFS가 지정된 디렉터리에 마운트되도록 /etc/fstab 설정도 같이 잡아줌.(부팅 시 자동 마운트)
이 경우에는 efs-utils가 AMI에 이미 설치돼 있다면 추가 설정 없이 잘 작동함.
예: Amazon Linux 2, Ubuntu 20.04 (최신) 등에서는 이미 설치되어 있음.
단, 다음에 해당되면 수동 설치 필요:
EFS 마운트 지점 연결 실패 에러 발생 시
직접 만든 커스텀 AMI거나, efs-utils 미설치된 베이스 이미지인 경우
수동으로 마운트 지점(디렉터리) 변경이 필요한 경우
이미 생성된 인스턴스에 EFS에 연결하려한다면: EC2에 접속해서 직접 마운트 설정하기
- efs-utils 깃허브: Amazon EFS Utils 도구의 소스 코드와 빌드 방법 안내
- EFS 클라이언트 수동 설치
- EFS 탑재 도우미를 사용하여 EC2 Linux 인스턴스에 탑재
sudo -s
# 마운트 확인
df -h
# 파일 시스템 탑재 지점으로 사용할 디렉터리 efs를 생성
mkdir efs
sudo apt install git
# amazon-efs-utils 패키지를 설치
sudo apt-get update
sudo apt-get -y install git binutils rustc cargo pkg-config libssl-dev gettext
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
sudo apt-get -y install ./build/amazon-efs-utils*deb
# 전송 중 데이터 암호화를 사용하려면 다음 명령을 사용하여 파일 시스템을 탑재
# fs-~~값은 EFS 파일 시스템 ID값으로 변경 필요함.(콘솔에서 확인)
sudo mount -t efs -o tls fs-032wfd723xf523421:/ efs
| 항목 | 설명 |
|---|---|
| ✅ 보안 그룹 | 모든 인스턴스가 EFS의 보안 그룹 설정에서 접근을 허용한 인스턴스들의 보안그룹을 사용해야 함 (NFS TCP 2049 포트) |
| ✅ 마운트 대상 | 마운트 명령에서 fs-XXXX:/ 부분이 같다면 동일한 EFS |
| ✅ 경로 충돌 | 로컬 경로는 인스턴스마다 다르게 해도 무관하지만, 없거나 쓰면 안 되는 디렉토리에 마운트하면 에러 발생 |
| ✅ 영속 마운트 | 부팅 시 자동 마운트를 원하면 /etc/fstab 설정 필요 (위에서 인스턴스 생성시 EFS연결했다면 AMI 조건에 따라 이미 되어있음) |