❗️ 문제 상황
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들은 수동으로 마운트를 해야 된다.