AWS(Amazon Web Service)

[AWS] EFS (EC2 Instance Store 中)

yunseohhe 2024. 9. 25. 22:05

EFS(Elastic File System)

  • 관리형 NFS(Network File System)이다.
    : 네트워크 파일 시스템이므로 많은 EC2 인스턴스에 마운트될 수 있다.
  • EFS 덕분에 EC2 인스턴스는 서로 다른 가용성 영역에 있을 수 있다.
    그래서 가용성이 높고, 확장성이 뛰어나며 비싸다.
  • 사용량에 따라 비용을 지불하므로 미리 용량을 프로비저닝할 필요가 없다. (GP2 EBS 볼륨의 약 3배정도)
      : 파일 시스템은 자동으로 확장되며 EFS에서 사용하는 데이터 GB 사용량에 따라 비용을 지불한다.
  • 사용사례
     : 콘텐츠 관리, 웹 서빙, 데이터 공유, Wordpress
  • 내부적으로 NFS 프로토콜을 사용하며, EFS에 대한 액세스를 제어하려면 보안 그룹을 설정해야 한다.
      = 중요한 점은 윈도우가 아닌 "Linux 기반" AMI와만 호환이 된다는 점이다.
  • KMS를 사용해서 EFS 드라이브에서 미사용 암호화를 활성화 할 수 있다.
    (Linux 표준 파일 시스템이다.)
  • 표준 파일 API가 있고, Posix 시스템을 사용한다.

(출처 : 구글이미지)

  • 위에 이미지를 보시면 EFS 파일 시스템이 있고, 보안 그룹으로 둘러싸인 모습을 볼 수 있다.
    EC2 인스턴스가 많이 있고, 위에 이미지처럼 us-east-1a 가용성 영역이나 us-east-1b 가용성 영역 또는 us-east-1c 가용성 영역에 EC2 인스턴스가 있다.
    이것들은 모두 EFS를 통해 동일한 네트워크 파일 시스템에 동시에 연결이 가능해진다.

 

 

EFS의 다양한 성능(Performance)

EFS Scale(스케일)

  • 동시 NFS 클라이언트 수천개와 10GB 이상의 처리량을 확보할 수 있다.
  • PB(페타바이트) 규모의 네트워크 파일 시스템으로 자동 확장할 수 있다.

NFS 생성 시 성능 모드 설정 옵션

General Purpose(범용) 모드

  • 기본값이다.
  • 이 모드는 지연 시간에 민감한 사용 사례에 사용된다.
     예시 : 웹 서버나 CMS 등

Max I/O 모드

  • 처리량을 최대화하려면 이 모드를 선택하는 것이 좋다.
  • 지연 시간이 더 긴 네트워크 파일 시스템이지만 처리량이 더 높고 병렬성이 높다.
     예시 : 빅 데이터 애플리케이션이나 미디어 처리가 필요한 경우

처리량 모드

Bursting 모드

  • 1TB이다.
  • 초당 50MiB에 초당 100MiB 버스트까지 더한 것이다.

Provisioned 모드

  • 스토리지 크기에 관계없이 처리량을 설정하고 싶은 경우에 선택한다.
  • 프로비저닝을 사용하기 전이면 스토리지가 늘어날수록 처리량이 증가하겠지만, 
     프로비저닝을 사용하면 1TB의 스토리지에서 초당 1GiB를 처리할 수 있다.
    (스토리지와 처리량을 분리하였기 때문이다.)

Elastic 모드

  • 워크로드에 따라 처리량을 자동으로 조절할 수 있다.
  • 예를 들어, 읽기는 초당 3GiB, 쓰기는 초당 1GiB까지 가능하다.(워크로드에 따라서)

 

 

EFS의 Storage Classes(스토리지 클래스)

Storage Tiers(스토리지 계층) 설정 가능

  • 스토리지 계층을 설정할 수 있는데,
    며칠 후 파일을 다른 계층으로 옮길 수 있는 기능이다.
  • Standard(스탠다드) 계층
      : 자주 액세스하는 파일을 위한 계층이다.
  • Infrequent access(EFS-IA) 계층
      : 자주 액세스하지 않는 용도로는 이 계층을 사용한다.
      : 파일을 검색할 경우 비용이 발생하지만 저장하면 비용이 감소된다.
  • Archive(아카이브) 계층
      : 거의 액세스하지 않는 데이터용이다.
      : 예를 들어, 1년에 몇 번만 데이터에 액세스하는 경우 해당 계층에 데이터를 저장하는 것이 훨씬 저렴하다.
  • lifecycle policies(수명 주기 정책)
      : 스토리지 계층 간에 파일을 자동으로 이동하기 위해 구현한다.
      : 며칠 후에 파일을 어느 계층으로 이동해야 하는지 정의할 수 있다.

(출처 : 구글이미지)

  • 위에 이미지는 EFS 스탠다드에 파일이 있는 예제이다.
      : 이 파일 중 하나는 60일 동안 액세스 하지 않았고, 올바른 수명 주기 정책을 설정하면 EFS IA와 같은 새로운 스토리지 계층으로 옮길 수 있다.

 

 

 

가용성과 내구성 측면에서 볼 때

  • 다중AZ 설정이 있는 경우, Standard(스탠다드)를 사용하는 것이 좋다.
  • 여러 가용성 영역에 걸친 EFS는 프로덕션 워크로드에 적합하므로 재해에 대비할 수 있다.
  • 하지만 개발만 하고 싶고 더 저렴한 옵션을 원한다면 One Zone을 사용하면 된다.
      : 하나의 AZ에만 있고 백업은 기본적으로 활성화되도록 설정되어 있다.
      : 액세스 빈도가 낮은 스토리지 계층과 호환된다.
      : "EFS One Zone IA"라고 불린다.
  • 올바른 EFS 스토리지 클래스를 사용하게된다면, 최대 90%의 비용을 절감할 수 있다.

'AWS(Amazon Web Service)' 카테고리의 다른 글

[AWS] ELB(Elastic Load Balancing)  (1) 2024.09.27
[AWS] EBS vs EFS  (6) 2024.09.26
[AWS] EBS Encryption(암호화)  (0) 2024.09.24
[AWS] EBS Multi-Attach (IO1, IO2 中)  (0) 2024.09.23
[AWS] EBS Volume (EC2 Instance Store 中)  (1) 2024.09.22