[AWS] EFS 기초 실습: 서버 2대 파일 공유하기

Yuchan Han·2026년 4월 4일

AWS

목록 보기
5/7

EFS 기초 실습: 서버 2대 파일 공유하기

AWS에서 서버를 여러 대 운영하다 보면 공통 파일을 어디에 둘지 바로 막히는 경우가 많습니다. 단일 서버 로컬 디스크로는 장애 대응이 어렵습니다. 이럴 때 EFS 공유 스토리지를 사용합니다. 이번 글에서는 콘솔 설정부터 마운트, fstab, 검증까지 실습 순서대로 정리합니다.


왜 EFS를 써야 하는가

서버 두 대가 같은 파일을 동시에 읽고 써야 하는 순간이 옵니다.
이때 EFS를 사용하면 파일을 중앙에서 공유할 수 있습니다.

무엇을 만들 것인가

EC2 두 대가 같은 EFS를 Access Point 경유로 마운트합니다.
TLS를 적용하고 재부팅 후 자동 마운트까지 확인합니다.

구성 요소는 다음과 같습니다.

구성 요소개수상세 정보
EC22대Amazon Linux 2023
EFS1개-
Access Point1개/shared, UID/GID 1000
보안 그룹2개wsi-ec2, wsi-efs

1) EFS와 보안 그룹 설정

EFS 마운트 실패 대부분은 보안 그룹 설정에서 발생합니다.
EFS SG 인바운드 2049를 EC2 SG에서만 허용해야 합니다.

먼저 EFS를 생성한 뒤 mount target을 확인합니다.
그리고 아래 규칙을 정확히 적용합니다.

SG 이름방향프로토콜포트소스설명
wsi-efsInboundTCP2049sg-wsi-ec2EFS 마운트 허용
wsi-ec2Outbound--0.0.0.0/0기본 all 허용 (추가 불필요)

주의
mount target SG를 일부 AZ만 교체하고 하나는 default로 남겨두면 특정 서버만 마운트 실패합니다. 모든 mount target에 동일한 SG를 적용합니다.


2) Access Point 생성

Access Point를 사용하면 루트 디렉터리와 POSIX 사용자 정보를 고정할 수 있습니다.
이렇게 하면 두 서버에서 소유권이 일관되게 유지됩니다.

아래 값을 정확히 입력합니다.

항목설명
Root directory path/shared마운트될 실제 경로
POSIX User UID1000파일 소유자 UID
POSIX User GID1000파일 소유자 GID
Creation permissions755새 파일/폴더 생성 권한

⚠️ CreationInfo 누락 시
access denied 오류가 발생합니다. 반드시 UID/GID와 권한을 입력해야 합니다.


3) EC2에서 마운트

각 EC2 인스턴스에서 아래 명령을 순서대로 실행합니다.

# EFS 유틸 설치
sudo dnf -y install amazon-efs-utils

# 마운트 경로 생성
sudo mkdir -p /mnt/shared

# TLS + Access Point 마운트
sudo mount -t efs -o tls,accesspoint=<AP_ID> <EFS_ID>:/ /mnt/shared

마운트 후 확인 명령입니다.

df -h | grep efs
mount | grep /mnt/shared

핵심
accesspoint=<AP_ID> 옵션을 반드시 붙여야 AP 경유 마운트가 강제됩니다.


4) 재부팅 후 자동 마운트 (fstab)

수동 마운트가 성공하면 fstab을 등록합니다.

# fstab 백업 (안전하게)
sudo cp /etc/fstab /etc/fstab.bak

# fstab 추가 (실제 ID로 교체)
echo '<EFS_ID>:/ /mnt/shared efs _netdev,tls,accesspoint=<AP_ID> 0 0' | sudo tee -a /etc/fstab

# 검증
sudo umount /mnt/shared 2>/dev/null || true
sudo mount -a
mount | grep /mnt/shared

⚠️ 자주 하는 실수
placeholder(<EFS_ID>)를 그대로 넣으면 mount -a에서 오류가 발생합니다. 실제 fs-xxxxxxxx 값으로 바꿔야 합니다.


5) 공유 검증

서버 A에서 파일을 생성하고 서버 C(또는 B)에서 확인합니다.

# 서버 A
echo 'hello from A' | sudo tee /mnt/shared/hello.txt
ls -ln /mnt/shared/hello.txt

# 서버 C
cat /mnt/shared/hello.txt
ls -ln /mnt/shared/hello.txt

두 서버에서 같은 파일이 보이고, ls -ln 결과의 UID/GID가 1000 1000이면 실습 성공입니다.


실습 중 자주 막히는 포인트

실수증상해결 방법
AP CreationInfo 누락mount access deniedAP 재생성 시 /shared + UID/GID 1000 + 755 입력
mount target SG 일부 AZ만 변경일부 서버만 마운트 실패모든 mount target에 동일 SG 적용
fstab에 placeholder/중복 오타mount -a 실패, 재부팅 후 미마운트/etc/fstab에서 오타 줄 삭제 후 1줄만 유지

EFS는 SG 2049 관계 + AP 권한 + fstab 정확도 이 3가지만 잡으면 거의 끝납니다.

profile
맛있는거먹고싶어요

0개의 댓글