본문 바로가기
AWS

[AWS] EC2 인스턴스 스토리지 - Amazon EFS ; Elastic File System

by 가영리 2024. 5. 24.
728x90

Amazon EFS (Elastic File System)

  • EC2 인스턴스에 마운트할 수 있는 관리형 NFS(Network File System)이다.
  • 여러 가용 여역의 EC2 인스턴스와 함께 작동한다.
  • Linux 기반 AMI와 호환된다. (Windows는 지원하지 않음)
  • KMS를 사용하여 암호화된 상태로 저장된다.
  • 파일 시스템은 자동으로 확장되며, 사용량에 따라 비용이 청구되어 프로비저닝이 필요없다.

성능

EFS 규모

  • 동시 NFS 클라이언트 수 1000개, 10GB+/s 처리량
  • 자동으로 페타바이트 규모의 네트워크 파일 시스넴으로 확장 가능

범용 모드 (EFS 생성 시 설정)

  • 일반용(기본) : 지연 시간이 중요한 사례에 적합 (웹 서버, CMS 등)
  • 최대 I/O : 높은 지연 시간, 처리량, 고도로 병렬 처리 사례에 적합 (빅 데이터, 미디어 처리 등)

처리량 모드

  • Busrting : 1TB = 50MiB/s + 최대 100MiB/s의 버스트 처리량
  • Provisioned : 저장용량과 관계없이 처리량을 설정함
  • Elastic : 작업 부하에 기반하여 처리량을 자동으로 확장 또는 축소, 예측할 수 없는 작업 부하에 사용함.

스토리지 클래스

출처 : https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/learn/lecture/29388820#overview

저장 계층 (수명 주기 관리 기능 - n일 후 파일 이동)

  • 표준(standard) 클래스 : 자주 액세스되는 파일에 사용
  • 적은 액세스 (EFS-IA) : 파일을 검색하는 데 드는 비용이 발생하나 저장 비용이 낮음

가용성과 내구성

  • 표준(standart) 클래스 : 다중 가용 영역, 프로덕션에 용이
  • 하나의 영역(One Zone) : 하나의 가용 영역, 개발 및 백업에 적합, IA와 호환됨(EFS One Zone-IA)

실습

파일 시스템 생성을 클릭한다.

커스터마이징하기 위해 사용자 지정을 클릭한다.

파일 시스템 설정

IA로의 전환 : 마지막 액세스 이후 30일 경과

Archive로 전환 : 마지막 액세스 이후 90일 경과

Standard로 전환 : 처음 액세스 할 

성능 설정

처리량 모드는 개선됨, 탄력적 요금제를 선택한다.

작업 부하에 기반하여 처리량을 자동으로 확장 하기 때문에 사용한 만큼 비용이 요구된다.

성능 모드는 범용(권장)을 선택한다.

최대 I/O는 빅데이터 같이 처리량이 많거나 지연 시간이 높은 경우에 적합하다.

 

네트워크 액세스 설정

보안 그룹 생성

EFS를 사용하기 위해선 액세스를 제어해야 하기 때문에 보안 그룹을 사용한다.

간단한 실습이기 때문에 보안 그룹 이름과 설명만 작성하고 다른 것은 건들지 않고 생성한다.

방금 생성한 보안그룹으로 설정한다.

이후 다음으로 계속 넘어가고 생성을 클릭하면 파일 시스템이 생성된다.

 

EC2 인스턴스에 마운트하기

마운트하기 위한 인스턴스를 생성한다.

A-AZ 인스턴스 생성

A-AZ 서브넷에서 실행할 것이기 때문에 나는 Instance A라 이름을 정했다.

스토리지 구성의 파일 시스템 편을 클릭한다.

클릭하니 아래와 같은 알림이 뜬다.

다시 위로 올라가 서브넷을 설정해준다.

이제 파일 시스템을 추가할 수 있다.

다른 설정은 건드리지 않고 인스턴스를 생성한다.

 

B-AZ 인스턴스 생성

위와 같은 과정을 똑같이 해준다.

이름을 작성해준다.

네트워크 설정에서 서브넷 b를 선택하고, Instance A가 생성됐을 때 자동으로 생성된 보안 그룹을 추가한다.

B-AZ에서 t2.micro 가 지원되지 않는단다.

그래서 C-AZ로 바꿨다.

 

결과

생성한 파일시스템의 네트워크를 보면 efs-sg-1, efs-sg-2 등 연결된 EC2 인스턴스의 보안그룹이 추가되어있는 것을 확인할 수 있다.

또한 인스턴스의 인바운드 규칙을 보면 NSF 룰이 추가된 것을 확인할 수 있다.

실제로 EC2 인스턴스에 파일 시스템이 잘 마운트되었는지 확인해보자.

Instance A에 접속해서 아래의 명령어를 입력한다.

ls /mnt/efs/fs1/ #파일이 생성되었는지 확인
sudo su #루트 계정으로 전환
echo "hello world" > /mnt/efs/fs1/hello.txt #파일 생성
cat /mnt/efs/fs1/hello.txt #생성된 파일 확인

명령어 실행이 잘 되는 것으로 보아 파일 시스템이 잘 마운트된 것을 알 수 있다.

이제 Instance C에 접속해서 방금 만든 파일이 있는지 확인해보자.

Instace C에서도 잘 마운트된 것을 확인할 수 있다.