본문 바로가기

Amazon Web Services

[AWS] EFS <-> EC2 마운트 문제 해결 feat. VPC

❗️ 문제 상황

EC2를 생성할 때 생성해 둔 EFS를 다음과 같이 간편하게 연결할 수 있다.

아래의 "필요한 사용자 데이터 스크립트를 연결하여 공유 파일 시스템을 자동으로 탑재" 항목을 체크하면 우리가 EC2에서 수동으로 마운트 할 필요 없이 자동으로 스크립트가 돌아가 EC2 생성 시 마운트 작업을 진행해 준다.

근데 여기서 문제가 기존에는 잘 마운트가 되었는데 이번에는 EC2 여러 대를 띄우면서 사용을 하다 보니 /mnt/efs/fs1 영역에 파일 작업을 하는데 이상하게 파일 공유가 안되고 있었다.

 

그래서 혹시나 해서 df -hT로 파일시스템을 확인해 보니 애초에 EFS와의 연결이 되어있지 않았다.

대체 무엇이 문제일까?


❓ 문제 원인

이전의 작업과 달라진 환경이 무엇이 있을까 곰곰이 생각해 봤다.

 

Default VPC를 쓰다가 전에는 이번에는 VPC를 내가 직접 구성하여서 작업하였는데 그게 아무래도 원인인 거 같았다.

 

비교를 하다 보니 하나 다른 점이 있었는데, DNS 호스트 이름이 Default VPC는 활성화가 되어 있었는데, 내가 만든 VPC는 비활성화되어 있었다.

 

그리고 AWS 공식 문서를 찾다 보니 다음과 같은 내용을 찾을 수 있었다.

 

EFS 자동 탑재 명령어에서는 DNS를 이용하여서 연결을 해주는데, 이를 정상적으로 사용하기 위해서는 VPC의 DNS확인 및 DNS 호스트 이름이 활성화되어 있어야 한다는 소리다. 근데 내 VPC는 DNS 호스트 이름이 비활성화되어 있었기 때문에 이게 원인인 거 같다.


👌 문제 해결

서비스들이 존재하는 VPC로 가서 정보를 확인해 보자.

 

다음과 같이 DNS 호스트 이름이 비활성화되어 있다.

 

이를 활성화시키기 위해 우측 상단의 작업 -> VPC 설정 편집을 들어가자.

 

DNS 설정에서 "DNS 호스트 이름 활성화"를 체크하고 저장을 누르자.

이후에 EC2를 처음과 같이 생성하면 자동으로 마운트가 진행되는 것을 확인할 수 있다. 기존 EC2들은 수동으로 마운트를 해야 된다.