✅ STUDY/AWS

[aws] EFS 파일 시스템 - 생성 / 마운트

minjii_ya 2021. 2. 21. 20:02

안녕하세요!

오늘은 실제로 EFS 파일시스템 생성, Linux2 가상머신에 EFS를 마운트해보겠습니다.

 

🙋‍♀️먼저, EFS가 무엇일까요?

EFS(Elastic File System) ❓

Amazon Elastic File System

정의

  • AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장가능하며 탄력적인 완전 관리형 탄력적 NFS 파일 시스템을 제공함

특징

  • EBS와 달리 multi AZ를 지원하고 network를 타기 때문에 security group으로 제어합니다.
  • 애플리케이션을 중단하지 않고 온디맨드 방식으로 페타바이트 규모까지 확장하도록 구축되어, 파일을 추가하고 제거할 때 자동으로 확장하고 축소해서 용량을 프로비저닝 및 관리할 필요가 없습니다.
  • Standard 스토리지 클래스 및 Infrequent Access 스토리지 클래스(EFS IA)의 두 가지 스토리지 클래스를 제공합니다. lifecycle을 통해 잘 접근하지 않는 파일은 자동으로 EFS IA(Infrequently accessed)로 옮겨 저렴하게 이용할 수 있습니다.
  • EFS dns 이름으로 mount 해서 여러 인스턴스에서 동시에 사용할 수 있다.
  • 애플리케이션은 일관되게 낮은 지연 시간을 유지하면서 높은 수준의 집계 처리량과 IOPS를 달성할 수 있습니다.
  • Amazon EFS는 Windows 인스턴스에서 지원되지 않는다.
  • Block storage와 마찬가지로 File storage도 mount 하면 내 로컬의 파일 시스템처럼 사용할 수 있습니다.
  • 공통 파일 시스템 네임스페이스에서 스토리지 클래스 모두의 파일을 투명하게 지원합니다.
  • Amazon EFS를 사용하여 기존 파일 시스템에서 AWS DataSync로 파일을 전송할 수 있습니다.

EFS 파일 시스템 - 사전 준비


EFS 파일 시스템 생성을 하기 전, VPC 설정을 편집하고 EFS 전용 보안 그룹을 생성해야합니다.

EFS 파일 시스템과 연결할 VPC는 DNS 활성화가 되어있어야합니다. 아래 사진을 따라 진행해주세요.

 

EFS 파일시스템 전용 보안그룹이 필요합니다. 아래 사진을 따라 진행해 보안그룹을 만들어주세요.


EFS 파일 시스템 - 생성

[AWS  콘솔] - [EFS] - 파일 시스템 탭으로 들어갑니다.
아래 사진을 따라 진행해주세요 :)

Amazon EFS 수명 주기 관리는 파일 시스템에 대한 비용 효율적인 파일 스토리지를 자동으로 관리합니다. 
이 기능이 활성화되면 수명 주기 관리가 설정된 기간 동안 액세스하지 않은 파일을 Infrequent Access(IA) 스토리지 클래스로 마이그레이션합니다. 수명 주기 관리가 파일을 IA 스토리지 클래스로 이동하면 해당 파일은 무기한 보존됩니다.

 

성능 모드 광범위한 클라우드 스토리지 워크로드를 지원하기 위해 Amazon EFS는 두 가지 성능 모드를 제공합니다. 파일 시스템의 성능 모드는 파일 시스템을 만들 때만 선택할 수 있습니다. 이들 두 가지 성능 모드에는 추가 비용이 청구되지 않으므로 Amazon EFS 파일 시스템은 성능 모드와 관계없이 동일하게 청구 및 측정됩니다.

* 범용 성능 모드
대부분의 Amazon EFS 파일 시스템에는 범용 성능 모드를 사용하는 것이 좋습니다. 범용은 웹 서비스 환경, 콘 텐츠 관리 시스템, 홈 디렉터리 및 일반 파일 서비스 등과 같이 지연 시간에 민감한 사용 사례에 이상적입니다. 파일 시스템을 만들 때 성능 모드를 선택하지 않으면 Amazon EFS에서는 기본적으로 범용 모드가 자동으로 선택됩니다.


* 최대 I/O 성능 모드
최대 I/O 모드의 파일 시스템은 더 높은 수준의 집계 처리량 및 초당 작업으로 확장할 수 있습니다. 이 확장으 로 인해 파일 메타데이터 작업에 대한 지연 시간이 약간 더 높아집니다. 이 모드는 빅 데이터 분석, 미디어 처 리 및 게놈 분석 등과 같은 고도의 병렬 처리가 필요한 애플리케이션 및 워크로드에 유용할 수 있습니다.

 

처리량 모드 파일 시스템에 대해 버스팅 처리량과 프로비저닝 처리량의 두 가지 처리 모드 중에서 선택할 수 있습니다. 버스팅처리량모드에서는 표준 스토리지 클래스의 파일 시스템 크기가 커짐에 따라 Amazon EFS의 처리량이 조정됩니다. 프로비저닝처리량모드를 사용하면, 저장된 데이터의 양과 상관없이 파일 시스템의 처리량(MiB/s)을 즉시 프로비저닝 할 수 있습니다.

* 버스팅 모드를 사용하여 처리량 조정
버스팅 처리량 모드에서는 표준 스토리지 클래스에 저장된 파일 시스템이 커짐에 따라 Amazon EFS의 처리량이 조정됩니 다. 파일 기반 워크로드는 일반적으로 급증하기 때문에 즉, 단기간에 처리량을 크게 끌어 올리고 나머지 기간에는 처리량 이 낮게 유지됩니다. 이를 위해 Amazon EFS는 일시적으로 높은 처리량 수준으로 버스트하도록 설계되었습니다. 크기에 관계없이 모든 파일 시스템은 100MiB/s의 처리량으로 버스트할 수 있습니다.

* 프로비저닝 모드를 사용하여 처리량 지정 
프로비저닝 처리량 모드는 처리량 대 스토리지(TiB당 MiB/s) 비율이 높은 애플리케이션 또는 버스팅 처리량 모드에서 허용하는 것보다 더 많은 요구 사항이 필요한 애플리케이션에 사용할 수 있습니다. Amazon EFS를 파일 시스템의 데이터 크기가 처리량 요구 사항에 비해 작은 것에 사용할 경우, 파일 시스템을 패딩하지 않고도 파일 시스템에서 애플리케이션 에서 필요로 하는 처리량을 높일 수 있습니다. 프로비저닝 처리량 모드 사용 시 추가 요금이 발생합니다. 프로비저닝 처리량 모드를 사용하면 사용하는 스토리지에 대한 요금과 제공되는 것보다 많은 프로비저닝 처리량에 대한 요금이 청구됩니다.

 

마운트할 EC2 인스턴스가 위치하는 VPC, 가용 영역, 서브넷을 선택해야합니다!

 

 

✨EFS 파일 시스템 생성 완료✨


EFS 파일 시스템 - 마운트 방법(재부팅 하면 마운트 해제됨)

생성한 파일시스템을 선택한 후에, 세부 정보 보기를 눌러주세요.

 

연결 버튼을 누르게되면, Linux 인스턴스에 탑재하는 명령어가 나옵니다.
인스턴스에 파일 시스템 탑재 방볍으로는, DNS를 통해 탑재하거나 IP를 통해 탑재할 수 있습니다.

그 중, DNS를 통해 탑재하는 방법에도 2가지 방법이 있습니다.

  • EFS 탑재 헬퍼 사용
  • NFS 클라이언트 사용

위 두가지 명령어를 통해 마운트할 수 있습니다. 2개 중 아무거나 사용해도 마운트는 쉽게 됩니다.
저는 그중에서도, EFS 탑재 헬퍼를 사용해 마운트해보겠습니다.

Amazon EFS 탑재 헬퍼는 파일 시스템 탑재를 간소화시킵니다. 탑재 헬퍼는 Linux의 표준 efs 명령과 완전히 호환되는 mount이라는 새로운 네트워크 파일 시스템 유형을 정의합니다. 또한 탑재 헬퍼는 /etc/fstab 구성 파일의 항목을 사용해 자동으로 부팅 시 인스턴스에 Amazon EFS 파일 시스템을 탑재하는 것을 지원합니다.

탑재 헬퍼를 사용하려면 amazon-efs-utils 패키지를 설치해야합니다.

 

mkdir /data 명령어를 이용해 data폴더를 마운트 지점으로 하겠습니다. 
복사한 탑재 헬퍼를 이용한 마운트 명령어를 붙여넣기 합니다.

* TLS 옵션은 전송 중 데이터의 암호화를 활성화하는 옵션입니다. 이 명령어로 mount하면 127.0.0.1로 표시가 되고, 암호화를 설정하지 않으려면 default 옵션을 이용하시면 됩니다.

✨EFS 파일 시스템 마운트 완료✨

주의) 이 명령어를 사용해서 탑재하면, EC2를 재부팅하면 마운트가 다시 해제됩니다. 
그렇기 때문에, 자동으로 /etc/fstab을 이용해 자동 마운트 설정 해야합니다. 방법은 바로 밑 섹션에 나와있습니다!


EFS 파일 시스템 - 자동 마운트 방법(재부팅해도 마운트 유지)

* _netdev 옵션은 네트워크에 연결 후 마운트하라는 옵션입니다. 이렇게 해야 시스템 시작 시 문제 없이 해당 네트워크 경로로 자동 마운트 됩니다. _netdev이 빠진 경우 EC2 인스턴스가 응답을 중지합니다.


이렇게 해서, EFS 파일시스템 생성 및 마운트를 해봤습니다.

다음 편에서는 private 서브넷 구축을 해보겠습니다!

다음에 만나요 〰
안녕 😜