이전 내용: [AWS] EFS에 대하여
EFS 콘솔 > [파일 시스템]
> [파일 시스템 생성]
파일 시스템 이름과 VPC를 선택합니다. 가용성 및 내구성
은 표준 클래스이냐 원 존 클래스이냐를 선택하는 부분입니다. 원 존 클래스를 선택했다면 파일 시스템이 생성될 가용 영역을 선택해주어야 합니다.
생성
버튼 옆에 사용자 지정
버튼을 누르면 좀 더 세부 사항을 설정할 수 있는 페이지가 나타납니다.
자동 백업
의 활성화 여부를 선택합니다. 수명 주기 관리
를 통해 자주 액세스 하지 않는 데이터에 대해 IA 스토리지로 전송할 수 있습니다. 성능 모드
에서 범용 모드 또는 최대 I/O 모드 중 하나를 선택합니다.
탑재 대상(NFSv4 엔드포인트)이 생성될 서브넷
을 선택하고 보안 그룹
을 선택합니다.
보안 그룹의 경우 인바운드 규칙에 이후에 생성할 EC2 인스턴스에 적용될 보안 그룹 ID에 대해서 NFS 프로토콜(2049번 포트)
을 허용하거나 아니면 모든 IP, 트래픽에 대해 허용해줘도 됩니다.
파일 시스템 정책을 작성합니다. 정책 옵션을 선택하면 정책 편집기에 해당 정책에 대한 JSON이 자동으로 작성됩니다. 여기서 기본적으로 루트 액세스 금지
를 선택해서 정책을 적용하게 되면 EC2 인스턴스에서 파일 시스템에 루트 권한(sudo)으로 파일을 쓸 수 없게 됩니다. 익명 액세스 금지
를 선택하면 이후에 EC2 인스턴스에서 탑재 대상에 마운트할 때 액세스 거부
가 발생할 수 있습니다. 저는 아무 정책도 생성하지 않았습니다.
EFS 파일 시스템을 생성할 때 탑재 대상이 생성되는 곳으로 지정했던 VPC와 서브넷에 EC2 인스턴스를 생성합니다.
NFS 클라이언트
를 설치합니다.
(인스턴스가 아마존 리눅스인 경우는 NFS 클라이언트가 설치되어 있으므로 생략해도 됩니다.)
% sudo yum -y install nfs-utils
마운트할 폴더를 생성
합니다.
% mkdir ~/efs
이제 폴더에 EFS를 마운트
합니다.
# DNS로 마운트 하는 방법
% sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <탑재 대상 DNS>:/ ~/efs
# 탑재 대상(mount target)의 IP 주소로 마운트 하는 방법
% sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <탑재 대상 ip>:/ ~/efs
꿀팁!
콘솔에서 생성한 파일 시스템을 선택하고연결
을 누르면 자동 완성된 명령어가 나타납니다.
efs
폴더에 마운트되었는지 확인합니다.
% df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 474M 0 474M 0% /dev
tmpfs 483M 0 483M 0% /dev/shm
tmpfs 483M 408K 483M 1% /run
tmpfs 483M 0 483M 0% /sys/fs/cgroup
/dev/xvda1 8.0G 1.6G 6.5G 20% /
tmpfs 97M 0 97M 0% /run/user/1000
x.x.x.x:/ 8.0E 0 8.0E 0% /home/ec2-user/efs
파일 시스템으로 들어갑니다.
% cd efs
기본적으로 파일 시스템의 루트 디렉토리는 루트 사용자가 소유하고 쓰기가 가능합니다. 따라서 파일을 추가하려면 권한을 변경해주어야 합니다.
% sudo chmod go+rw .
이후에 파일을 생성하면 생성 되어집니다.
% touch test.txt
파일 시스템을 삭제하기 전에 마운트된 EC2 인스턴스에서 EFS를 언마운트합니다.
% sudo umount <마운트한 폴더 경로>
그리고 EFS 콘솔 > [파일 시스템]
에서 삭제할 파일 시스템을 선택하고 삭제
버튼을 누릅니다.