AWS EFS(Amazon Elastic File System)는 AWS에서 제공하는 완전 관리형 파일 스토리지 서비스로, 클라우드 환경에서 탄력적으로 확장 가능한 파일 시스템을 제공한다. EFS는 POSIX 호환 파일 시스템으로 설계되어, Amazon EC2 인스턴스나 여러 AWS 서비스와 공유할 수 있으며, 특히 여러 인스턴스에서 동시에 접근해야 하는 워크로드에 적합하다. 또한, AWS Direct Connect를 통해서 연결된 온프레미스 서버와도 파일을 공유 할 수 있다.

EFS는 공유 파일 시스템을 필요로 하는 다중 인스턴스 환경에 적합하며, AWS 클라우드에서 데이터 관리 및 공유를 손쉽게 할 수 있도록 해주는 서비스이다. 한번 실습을 해보도록 하겠다.
EFS 구성 전 환경 설정
VPC 내 가용 영역 별 Subnet을 설정하고 서버를 생성한 후, EFS 테스트를 진행할 예정이다. 이 과정에서 반드시 VPC의 DNS 확인 기능을 활성화해야 한다.

VPC DNS 확인 활성화 이유
VPC에서 DNS 확인(DNS Resolution) 기능을 활성화하면, EFS와 같은 AWS 리소스를 도메인 이름으로 접근할 수 있게 된다.
EFS는 파일 시스템을 내부적으로 fs-xxxx.efs.[region].amazonaws.com 형식의 도메인 이름으로 제공하므로, DNS 확인이 비활성화되어 있으면 EC2 인스턴스가 이 도메인을 IP로 해석하지 못해 연결에 실패할 수 있다.
먼저 EFS를 생성한 후 EC2 인스턴스를 만들 때 연결하는 방법과, EC2 인스턴스를 먼저 생성한 후 EFS를 연결하는 방법 두 가지를 테스트 해보도록 하겠다.
EFS 전용 보안그룹 생성

전체 IP에 할당하는 것이 아니라, EFS를 연결할 EC2 인스턴스의 보안 그룹만을 대상으로 NFS 보안 그룹을 생성해준다.
EFS 생성 및 설정

기존에 만들어 둔 VPC를 선택한 후, “사용자 지정”을 클릭한다.

파일 시스템 설정은 기본값을 그대로 사용하겠다.

네트워크 액세스는 기존에 만들어 둔 서브넷의 가용 영역만 사용하고, 나머지 설정은 기본값으로 두고 EFS를 생성하면 됩니다.
EC2 생성시 EFS 자동 연결

기존에 설정해 둔 EFS 보안 그룹을 선택하면 된다.

파일 시스템을 추가하여 기존에 생성해 둔 EFS를 연결한 후, 생성하면 된다. EFS 전용 보안 그룹은 이미 따로 설정했으므로 체크를 해제해주면 된다.

서버에 접속하여 df -h 명령어를 실행한 결과, 정상적으로 EFS가 마운트된 것을 확인할 수 있다. 다음으로, EFS가 다른 서버와 데이터를 공유할 수 있는지 테스트 과정을 진행해 보겠다.
[ec2-user@ip-10-30-14-99 ~]$ sudo chmod -R 777 /mnt/efs/fs1
[ec2-user@ip-10-30-14-99 ~]$ echo '<h1>Hello, World!</h1>' | sudo tee /mnt/efs/fs1/index.html
<h1>Hello, World!</h1>
[ec2-user@ip-10-30-14-99 ~]$ cd /mnt/efs/fs1/
[ec2-user@ip-10-30-14-99 fs1]$ ls
index.html
EC2 생성시 EFS 연결
따로 EFS 연결 없이 EC2 인스턴스를 생성하면 된다.

EFS를 연결하는 방법에는 EFS 탐재 헬퍼(EFS Mount Helper)와 NFS 클라이언트를 사용하는 방법이 있다. 이번에는 EFS 탐재 헬퍼를 사용하여 연결해보겠다. EFS를 마운트하려면 amazon-efs-utils 패키지가 필요하므로, 이를 별도로 설치해야 한다.
$ yum install -y amazon-efs-utils # 패키지 설치
$ sudo mount -t efs -o tls fs-008ead77ff58efe51:/ /mnt/efs/fs1 # EFS 탑재 helper
출처: https://inpa.tistory.com/entry/AWS-📚-EFS-개념-원리-사용-세팅-💯-정리 [Inpa Dev 👨💻:티스토리]

정상적으로 EFS가 마운트되었고, 다른 서버에서 만들어 두었던 index.html 파일을 확인할 수 있다.
'AWS' 카테고리의 다른 글
| [AWS] DynamoDB (0) | 2024.12.31 |
|---|---|
| [AWS] Site to Site VPN vs Client VPN (0) | 2024.12.31 |
| [AWS] EBS 용량 축소하기 (0) | 2024.12.31 |
| [AWS] MediaConvert + lambda를 이용한 Vod 스트리밍 파일 업로드 (0) | 2024.12.31 |
| [AWS] Image Resizing 파이프라인 구축 (0) | 2024.12.31 |