IT/Public Cloud

AWS EFS 비용과 처리량 알아보기 (feat. iops, 크레딧)

엘티엘 2022. 4. 25. 19:00

EFS 비용에 대해서 살펴보자.

AWS Pricing Calculator 에서 EFS 비용을 확인하기 위해서는 아래 항목을 선택해야 한다.

  1. Storage Class
  2. 스토리지 설정
    • 원하는 스토리지 용량
    • 자주 액세스하는 데이터의 비율
    • Infrequent Access 요청
  3. 프로비저닝된 처리량
    • 프로비저닝된 처리량

1. Storage Class

Multi AZ 또는 단일 AZ 에 데이터를 저장할지 여부를 결정한다. 단일 AZ(One Zone)가 저렴하지만 AZ 단위의 장애에는 취약한 단점이 있다. Multi AZ(Standard, 0.33$/GB-월)가 단일 AZ(One Zone, 0.176$/GB-월)대비 약 2배 정도의 비용이다.

참고로 Provisioned IOPS SSD (EBS)도 하나의 AZ내에서 다수의 EC2에 multi attach가 가능하니 One Zone EFS를 고려한다면 비교해볼만 한것 같다

2. 스토리지 설정

2-1) 원하는 스토리지 용량

필요한 스토리지 용량이다. 다만, EFS는 스토리지 사용량을 미리 정하지 않고 파일이 저장된 만큼을 사용량으로 잡기 때문에 실제 EFS 생성시에는 필요하지 않다. Application 의 특성에 따라서 추정한 값을 입력한다. (GB당 비용은 위에 Storage Class를 참고한다.)

2-2) 자주 액세스하는 데이터의 비율

저장된 전체 데이터중 frequent(자주 사용하는 데이터)의 비율이다. EFS는 수명주기 정책을 통해 자주 사용하지 않는 데이터를 Infrequent Access 영역으로 이동시킬수 있다. 데이터의 마지막 엑세스 시점을 기준으로 이동시키며, Infrequent로 이동된 데이터는 데이터 저장비용이 약 1/10으로 저렴하지만(0.33 $/GB vs 0.027 $/GB) 데이터에 엑세스 할때마다 비용이 발생한다 (0.011$/GB)

수명주기 정책은 AWS 콘솔에서 아래와 같이 설정할 수 있다

2-3) Infrequent Access 요청

Infrequent Access 데이터에 대해서 얼마나 자주 요청을 할 것인가를 의미하며, 데이터 엑세스마다 비용이 발생한다. 단순히 계산했을때 27번 이상 접근하는 Infrequent 데이터는 Frequent 영역에 있는것보다 손해이다. (0.33=0.027+0.011*27)

3. 프로비저닝된 처리량

EFS는 용량에 비례하여 기본 처리량을 제공한다. 1TB당 50MiB/s 을 기준으로 용량에 비례한 처리량을 제공한다. 그 이상 처리를 하고자 한다면 1 MiB/s 마다 월 6.60 $ 비용이 필요하다. 여기서 말하는 EFS용량은 Infrequent Access는 제외된 값이다.

한가지 특이한 점은 50MiB/s는 약 330$ 정도인데, 이는 1TB의 스토리지 용량과 금액이 거의 비슷하다. 위에서 설명한 것처럼 1TB를 사용하면 기본 처리량이 50MiB/s를 제공하므로 '어차피 같은 금액이라면 처리량을 추가하기 보다는 EFS 용량을 추가하는것이 낫지 않나?' 라고 생각할 수 있다. 하지만 EFS는 용량을 사전에 결정하는 것이 아니라 저장된 데이터 만큼이 사용 용량이 되므로 결국 처리량을 위해 불필요한 데이터를 남겨둬야 하는 꼴이므로 맞는 방식은 아니다. 다만, 만일 처리량이 부족한 상황인데, Infrequent Access가 발생한다면, 기본 처리량 확보를 위해서 Infrequent 를 최소한으로 사용하는것도 고려해볼만 하다.

50MiB/s 을 1일로 계산하면 약 4TiB 이다. 이는 EFS의 용량(1TB)의 4배이다. 즉 간단하게 생각한다면 기본제공량으로 하루에 EFS전체 파일을 4번 정도 Write 하거나 12번 정도의 Read를 할수 있다고 생각할 수 있다. (참고로 Read는 Write의 1/3으로 계산된다)

모든 크레딧을 소진하였더라도 기본적으로 MAX(1MiB/s, 용량에 비례한 기본 처리량) 의 처리속도는 보장한다.

스토리지의 중요한 성능지표인 IOPS가 보이지 않아서 이상하다고 생각할 수 있다 (EBS와의 차이점). EFS는 처리량에 비례해서 적절한 IOPS를 제공한다고 한다. 따라서 IOPS는 신경쓰지 않아도 된다.

[참고] 버스트 크레딧

AWS에서 EFS의 용량을 기준으로 한시간마다 일종의 크레딧(버스트 크레딧)을 계산하여 제공한다. 이렇게 누적된 크레딧 만큼 EFS의 데이터에 접속할 수 있다. 매시간 기본 처리량만큼 크레딧이 쌓이기 때문에 기본 처리량만큼의 처리는 보장되며, 만일 그만큼 사용하지 않는다면 누적된다. 이럴 경우 크레딧이 소진될때까지는 MAX(100MiB/s, 기본제공량의 2배) 속도로 처리한다.

버스트 크레딧은 최대 2.1TiB * (EFS용량의 TB + 1) 만큼 누적된다.

반응형