EFS 처리량 모드에는 프로비저닝 모드와 버스팅 모드가 있다. 기본적으로 버스팅 모드를 사용할 수 있고, 이는 자기가 쓰는 데이터 용량에 따라서 비용을 내기만 하면 되어, 꽤나 저렴하다. 하지만 알아둬야할 점은 버스팅 모드를 사용 시, 버스팅 잔고를 다 사용한 후에는 느려질 수 있다는 점이다. 그와 반대로 프로비저닝 모드는 지정된 처리량을 보장하기 때문에 지속적인 처리량이 있을 경우에는 프로비저닝 모드가 적합하다.
버스팅 잔고란 버스팅 모드에서만 사용하는 개념으로 네트워크 처리량 비용을 저장할 수 있는 일종의 저축계좌라고 생각하면 된다. EFS의 1TB 저장공간당 2.1TB의 처리량 저장을 지원한다. 1TB 이하의 저장공간 사용에 대해서는 모두 2.1TB의 처리량을 저장할 수 있게 해준다. 여기서 버스팅 잔고가 쌓이는 기준은 실시간이며, 이에 대한 계산식은 AWS 공식문서에서 제공하고 있다.
저장공간 1GB당 50KiB/s 를 할당해주며, 최소 처리량은 1MiB/s를 보장한다. 예를 들어, 200GB의 저장공간을 이용하고 있다면, 10MiB/s 의 처리량을 얻는다. 현재 사용하지 않는다면 초당 10MB 씩 처리량이 저장되게 된다.
여러 가지 케이스를 통해 이해해보자.
⚠️ 알아둘 점
- 처리량은 쓰기 기준으로 한다. 읽기는 쓰기 * 3의 처리량을 가진다고 생각하면 된다.
- 버스팅 잔고는 Cloud Watch에서 볼 수 있다.
- 1TB 이하로 EFS를 저장공간으로 사용하고, 이미 버스팅 잔고가 최대로 되어 있다면 2.31 T Bytes라고 되어있는 버스팅 잔고 그래프를 볼 수 있는데, 이는 Bytes 단위를 뜻하는 것으로 1,024로 나눠보면 2.1TB가 맞다.
- 1 TB = 2,310,000,000,000 / (1,024 * 4) TB
- 버스팅 잔고를 계산할 때는 IA(Infrequent Access) 로 넘어간 데이터는 계산식에 포함하지 않는다. (즉, Standard 저장소만 계산식에 포함)
일반적으로 버스팅모드가 저렴하다. 이는 저장공간을 활용한 만큼만 내기 때문이고 처리량을 따질 경우에는 비용이 같다고 확인할 수 있다. 프로비저닝 모드의 경우 1MiB/s 처리량 설정당 6.6USD를 내게 된다. 즉, 10MiB/s 를 위해서는 66 USD를 내게 된다. 버스팅 모드에서 10 MiB/s 를 위해서는 200GB를 써야하는데, 1GB 0.33USD 라서 똑같이 66 USD를 낸다.
처리량에 대한 비용이 같다면 버스팅모드를 사용하면서 버스팅 잔고를 사용하는게 좋지 않을까? 라는 생각을 할 수 있다. 하지만 프로비저닝 모드가 나온 이유는 처리량만 높고 저장공간을 별로 사용하지 않을 경우 저장공간이 필요없기 때문에 더미 파일을 관리하지 않고, 똑같은 비용으로 EFS를 사용할 수 있기 때문에 파일관리 측면에서 좋은 효과를 볼 수 있다. 그렇기 때문에 각 모드의 장단점을 잘 파악하고 사용해야 한다.
⚠️ 알아둘 점
- 프로비저닝 처리량모드에서 사용하고 있는 저장공간에 대한 비용은 프로비저닝 처리량의 비용과 저장공간의 비용 둘 중 큰 걸로 비용을 내게 된다.