본문 바로가기
Amazon AWS/EC2

EC2에서 다른 리전의 EFS(Elastic File System)에 마운트하기

by 홍띠 2022. 7. 17.
!! 이글은 아래와 같은 환경이 갖춰진 상태에서 진행되는 방법이다.
1. 각 리전의 vpc 간의 피어링 연결이 되어 있어야 한다. (AWS에서 VPC Peering 연결을 통해 다른 리전에 접근하기 참고)
2. EC2에 탑재할 EFS가 ec2와 다른 리전에 존재해야 한다.

 

일반적으로는 동일한 리전에서 작업을 하기 때문에 이런경우가 많이 발생하지 않겠지만, 불가피하게 다른 리전의 EFS를 마운트 시켜야하는 상황이 있었다. 

EFS를 탑재해 본적없는 오하이오 리전의 EC2에 서울리전의 EFS를 연동하려고 한다.


 

1. 보안그룹을 설정한다. EFS의 보안그룹의 인바운드 규칙을 추가해주면 된다.

  • EFS에 접근하고자 하는 EC2의 VPC의 CIDR블록을 추가한다.
    -> 이때, 아래 사진과 같이 유형에서 NFS를 선택하고 소스에서 VPC CIDR을 입력한다.

  • EC2의 보안그룹은 인바운드 규칙을 편집할 필요는 없으나, 아웃바운드 규칙은 열려있어야 한다.
    이 부분은 디폴트 값이므로 대부분 열려 있을 것이다.

 

2. EFS를 탑재하려는 EC2에 EFS 클라이언트를 설치한다.

# 설치 전 업데이트
$ sudo apt-get update
# 필요 패키지 설치 (git, binutils: DEB 패키지 빌드에 필요)
$ sudo apt-get -y install git binutils
# git clone을 사용하여 파일을 받아온다.
$ git clone https://github.com/aws/efs-utils
# 패키지 설치를 위해 디렉토리 이동
$ cd efs-utils/
#셸 스크립트를 이용하여 빌드
$ ./build-deb.sh
#패키지 설치
$ sudo apt-get -y install ./build/amazon-efs-utils*deb

 

3. EFS 파일 시스템 탑재 전 리전을 설정해준다. 기본적으로 동일한 리전으로 되므로 설정해주는 부분은 주석처리 되어있을 것이다.

# 설정 파일이 있는 디렉토리로 이동
$ cd /etc/amazon/efs/
#파일 편집기 실행
$ sudo vim efs-utils.conf
#아래 열을 찾아 주석을 해제 하고, EFS가 위치한 리전(서울)으로 수정한다.
#region = us-east-1
region = ap-northeast-2

4. 파일시스템을 탑재한다.

  • AWS 콘솔에서 탑재하고자 하는 파일 시스템의 정보를 확인한다.
    원래는 파일시스템의 ID값만으로도 마운트가 가능하다. 하지만, 리전이 달라서인지 EC2에서 ID값을 찾지 못한다...
    (error: Failed to resolve "fs-xxxx.efs.ap-northeast-2.amazonaws.com" - check that your file system ID is correct, and ensure that the VPC has an EFS mount target for this file system ID.)
    따라서, EFS의 IP주소를 이용해야 한다!

    IP 주소는 해당 파일 시스템의 ID를 클릭해 상세정보에서 확인이 가능하다.
    네트워크 항목의 IP주소를 확인하면 된다.

  • EC2 인스턴스에서 EFS를 탑재한다.
# 원하는 위치에 EFS에 마운트할 디렉토리를 생성한다.
$ sudo mkdir efs
# 파일시스템 id만으로 접속
#$ sudo mount -t efs <file-system-id> <efs-mount-point>/
# 파일시스템의 IP 주소를 사용하여 접속
$ sudo mount -t efs -o tls,mounttargetip=<mount-target-ip> file-system-id <efs-mount-point>/

5. EC2에서 마운트가 정삭정으로 되었는지 확인한다.

$ df -h

아래 사진과 같이 127.0.0.1:/ 으로 표기된 파일시스템이 EFS이다.

(마운트 초기에는 파일시스템 아이디로 표기되는데, 곧 127.0.0.1로 변경된다.)

 

 

참고:

https://docs.aws.amazon.com/ko_kr/efs/latest/ug/mounting-fs-mount-helper-ec2-linux.html

https://docs.aws.amazon.com/ko_kr/efs/latest/ug/installing-amazon-efs-utils.html

https://docs.aws.amazon.com/ko_kr/efs/latest/ug/mount-different-region.html