AWS

[AWS] EFS 개념 및 생성/마운트

비번변경 2023. 3. 15. 23:21

Amazon Elastic File System

AWS에서 제공하는 서버리스 파일 시스템이다.

EC2 하나에만 마운트 할 수 있는 EBS와 달리, NFS(Network File System)을 지원하여 여러 서버에서 동시에 접근하여 사용할 수 있다. AWS가 제공하는 NAS라고 생각할 수 있다.

또한 파일 시스템에 저장된 파일의 용량에 따라 자동으로 확장되며, 처리량과 IOPS 또한 자동으로 조절된다. 다만 사용한 용량만큼의 비용이 발생하므로 주의해야 한다.

 

이 글에서는 EFS를 생성하고 EC2에 마운트해보려고 한다.

 

 

EFS 생성

1. AWS Console EFS 서비스 이동

파일 시스템 생성 버튼을 클릭한다.

 

2. 파일 시스템 생성 > 사용자 지정 클릭

서비스 권장 설정으로 EFS를 간단히 생성할 수도 있지만, 이 글에서는 EFS를 생성할 때 어떤 설정이 필요한지 직접 확인하기 위해 사용자 지정 설정으로 진행해보려고 한다.

서비스 권장 설정으로 생성하는 경우 아래와 같은 설정으로 생성된다.

  • 자동 백업 활성화 : AWS Backup 서비스 사용
  • VPC 기본 보안 그룹 사용
  • 범용 성능 모드 사용 : 최대 35,000 IOPS 지원
  • 버스트 처리량 모드 사용 : 
  • AWS EFS 기본 키를 사용한 유휴 데이터 암호화
  • 수명 주기 관리 활성화

 

 

3. 파일 시스템 설정

먼저 파일 시스템에 대한 설정을 진행한다.

이 글에서는 Standard 클래스를 이용해 여러 AZ에 데이터를 저장하고, 자동 백업은 비활성화한다. 그리고 수명 주기 및 암호화도 필요하지 않아 비활성화한다.

성능은 권장 설정인 버스트 처리량 및 범용 성능 모드를 유지한다. AWS는 대부분의 애플리케이션에 대해서는 범용 성능 모드를 권장하고 있다.

 

4. 네트워크 설정

EFS가 사용할 VPC와 보안 그룹을 설정한다. 즉, EFS를 마운트 하기 위해서는 사전에 VPC 구성이 완료되어 있어야 한다. 이 글에서 VPC 구성은 생략한다. 필요시 2022.02.10 - [Redmine on AWS] VPC/Subnet 생성과 같은 글을 참고한다.

또한 EFS에 설정된 보안 그룹에는 마운트할 서버를 대상으로 NFS(2049) 포트의 인바운드 규칙이 허용되어 있어야 한다.

 

5. 파일 시스템 정책 설정

루트 접근 허용, 읽기 전용 접근 등의 정책을 설정한다. 이 글에서는 설정하지 않는다.

 

6. 파일 시스템 검토

마지막으로 설정한 값을 확인하고, 이상이 없으면 오른쪽 아래의 생성 버튼을 클릭해 생성한다. 잠시 기다리면 사용 가능한 상태의 EFS를 확인할 수 있다.

 

 

EFS 마운트

EFS는 AWS가 제공하는 efs-utils 또는 nfs-utils/nfs-common를 이용해 마운트 할 수 있는데, 이 글에서는 온프레미스 NAS와 동일하게 nfs-common를 이용해 마운트 해보려고 한다.

마운트 명령어는 EFS 상세 정보에서 연결 버튼을 클릭해 확인 할 수 있다. DNS 또는 IP를 이용해 마운트 할 수 있으므로 적절히 선택한다.

 

실제로 마운트를 해보자.

1. EC2 보안 그룹 확인

NFS/EFS는 네트워크를 통해 통신하므로 EC2 -> EFS 통신이 허용되어 있어야 한다.

마운트 할 EC2에 EFS를 대상으로 NFS(2049) 포트 아웃바운드 규칙이 설정되어 있는지 확인한다. 이 글에서 사용한 EC2는 모든 트래픽에 대한 아웃바운드를 허용하고 있어 별도로 설정하지 않았다.

 

2. NFS 패키지 설치

nfs 프로토콜을 사용할 수 있도록 패키지를 설치한다. 이 글의 서버는 Ubuntu 20.04 LTS를 사용하고 있다.

apt install nfs-common

 

3. 마운트 포인트 생성

이 글에서는 /data001이라는 경로에 마운트 할 것이다.

mkdir <path>

 

4. EFS 마운트

EFS 정보에서 확인한 마운트 명령어로 EFS를 마운트 한다.

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-083049fa2f7f89ae4.efs.ap-northeast-2.amazonaws.com:/ <mount_point>

이상이 없다면 df 명령어로 마운트 된 EFS를 확인할 수 있다.

df -h

 

 

 

참고 문서

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AmazonEFS.html

AWS EFS 개념 및 구성 방법

https://library.gabia.com/contents/8928/