땡글이LAB

[Devops] EFS (Elastic File System) 본문

Devops

[Devops] EFS (Elastic File System)

땡글이B 2022. 7. 4. 14:05

AWS EFS 란?

 우선, EFS 에 대해 알아보자. EFS의 명칭은 Elastic File System을 의미한다. EFS는 서버리스, set-and-forget 사용할 탄력적 파일 시스템AWS 클라우드서비스 및 온프레미스 리소스. 애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 확장되도록 구축되어, 사용자가 파일을 추가하고 제거할 때 자동으로 확장/축소되므로 데이터 증가에 맞춰 용량을 프로비저닝 및 관리할 필요가 없습니다. Amazon EFS에는 파일 시스템을 빠르고 쉽게 만들고 구성할 수 있는 간단한 웹 서비스 인터페이스가 있습니다. 이 서비스에서 모든 파일 스토리지 인프라를 관리해 주므로 사용자는 복잡한 파일 시스템 구성을 배포, 패치 및 유지 보수하는데 따르는 복잡성에서 벗어날 수 있습니다.

 

 아래의 그림은 AWS에서 제공하는 Amazon Elastic File System (EFS)의 특징을 간략하게 그림으로 표현해놓은 것이다. 

 

AWS EC2와 EFS 를 연동해서 네트워크 파일 시스템 구축하기

 우선 EFS 와 EC2와 통신하기 위해선 보안 그룹(Security Group)을 생성한다.  인바운드 규칙에서 Source를 EC2 의 주소를 선택해준다. 즉, EC2 의 트래픽만을 받겠다는 것을 의미한다. (아웃바운드 규칙은 그대로 둔다)

 

 이렇게 보안 그룹(Security Group) 준비를 마친 뒤, EFS를 생성해보도록 한다. EFS 생성 버튼을 누르면 다음과 같은 간단한 창이 나오지만 "사용자 지정 (Customize)" 버튼을 눌러서 상황에 맞게 설정을 바꿔보도록 한다.

 

 

 해당 내용에서 "가용성 및 내구성" 에서 "리전(Regional)"이 의미하는 바는 '여러 availbilty zone에서 사용할 것인지'를 의미하고, "One zone"이 의미하는 바는 '단일 availabilty zone을 사용할지'를 의미한다. 여기선 "리전(Region)"을 선택하도록 한다. 

 

 그리고 아래의 "IA로 전환" 은 Standard 클래스에서 IA (Infrequent Access) 클래스로 언제 이동할지를 의미하고, "IA 외부로 전환"은 언제 IA 클래스에서 Standard 클래스로 전환하는지를 의미한다. 그리고 추후에 "네트워크 액세스" 단에서 VPC와 EFS를 위해 만든 보안 그룹(Security Group)을 설정해준다.

 이후 별다른 설정을 바꾸지 않고, EFS를 생성한다. (1~2분 소요)

 

위의 사진은 인스턴스에 접속 후 "df -h" 명령어를 통해, 파일 시스템의 공간을 조회해본다. 확인결과 마운트된 EFS는 아직 없는 것으로 나온다. 여기서 EFS를 해당 인스턴스로 마운트하려면, 여기서는 EFS 탑재 헬퍼(EFS mount helper)를 통해 마운트하도록 한다.

 

 해당 명령어를 통해 EFS 탑재 헬퍼(EFS mount helper) 를 다운받는다.

yum install amazon-efs-utils -y

 

그리고나서, 마운트포인트를 만들어보자. 그러려면 AWS에서 만든 EFS를 클릭해서 우측 상단에 있는 "연결(Attach)" 버튼을 누른다. 연결 버튼을 누르면 창이 하나 뜨는데, 그 창에서 EFS 탑재 헬퍼(EFS mount helper)를 사용해서 연결하는 명령어를 복붙해와서 인스턴스에서 실행 후, "df -h" 명령어를 통해 파일 시스템 공간을 조회해보면, EFS 가 마운트 된 것을 확인할 수 있다.

 

 이제 efs로 마운트한 폴더에서 efs를 사용할 수 있다. A 인스턴스에서 efs에 파일들을 다운받아도 B 인스턴스에서도 efs가 마운트되어 있으면 굳이 다운받지 않아도 파일에 접근할 수 있다. 그리고 하나의 인스턴스에서 파일을 수정해도 같은 EFS를 사용하면 파일이 공유되는 것을 확인할 수 있다.

 

 

References

Comments