Help us understand the problem. What is going on with this article?

新しいマネージドコンテナサービスAWS Fargateの価格は高いか安いか?ECS/Fargateのコスト最適化を考えてみよう

More than 3 years have passed since last update.

AWS Fargate Advent Calendar 2017 の10日目の記事です。昨日は 俺はSSHをしたくない ~ Fargate vs ECS+SpotFleet のPrice比較 ~ でした。 ネタ被ったァ!

Fargate の価格

1vCPU 1時間あたり\$0.0506、1GBメモリ 1時間あたり\$0.0127

From https://aws.amazon.com/jp/blogs/news/aws-fargate/

これだけです。高いか安いか考察してみましょう。

EC2 インスタンスのオンデマンド価格との比較

us-east-1(N.Virginia)の価格 を見てみましょう。 Fargate価格 欄は上記のFargateの価格で同じvCPUとメモリを確保した場合の価格です。

インスタンスタイプ vCPU メモリ(GB) EC2価格 Fargate価格 倍率
m5.large 2 8 $0.096/h $0.2028/h x2.11
m4.large 2 8 $0.100/h $0.2028/h x2.03
m3.large 2 7.5 $0.133/h $0.1965/h x1.48
c5.large 2 4 $0.085/h $0.152/h x1.79
c4.large 2 3.75 $0.100/h $0.1488/h x1.49
c3.large 2 3.75 $0.105/h $0.1488/h x1.42
r4.large 2 15.25 $0.133/h $0.2949/h x2.22
r3.large 2 15 $0.166/h $0.2917/h x1.76
x1e.xlarge 4 122 $0.834/h $1.7518/h x2.10

m5シリーズであれば価格は性能と線形なので、たとえばm5.24xlargeでも倍率は同じx2.11になるためとりあえず比較しやすい上記に絞りました。

最新世代のm5やr4と比べて、おおむね2倍強の価格です。

Fargate高くない!? と思ったアナタ。ちょっと待ってください。

ECS Cluster AutoScaling構成との比較

多くの場合、ECSではそのメリットを享受するためにAutoScaling構成を取ります。たとえば、

  • MemoryReservation >= 60% で Scale-out
  • MemoryReservation < 30% で Scale-in

と設定するとしましょう1。この場合、実際に確保されるメモリ容量の割合は6割を超えません。
簡単のため、ECSでのリソース利用率はvCPU・メモリともに上記の中央値である45%程度であると仮定しましょう。
Fargateは 割り当てたvCPU・メモリに対する課金 ですので、それに対応するための計算です。

インスタンスタイプ vCPU45% メモリ45% EC2価格 Fargate価格 倍率
m5.large 0.9 3.6 $0.096/h $0.0913/h x0.95
m4.large 0.9 3.6 $0.100/h $0.0913/h x0.91
m3.large 0.9 3.375 $0.133/h $0.0884/h x0.66
c5.large 0.9 1.8 $0.085/h $0.0684/h x0.80
c4.large 0.9 1.6875 $0.100/h $0.0670/h x0.67
c3.large 0.9 1.6875 $0.105/h $0.0670/h x0.64
r4.large 0.9 6.8625 $0.133/h $0.1327/h x1.00
r3.large 0.9 6.75 $0.166/h $0.1313/h x0.79
x1e.xlarge 1.8 54.9 $0.834/h $0.7883/h x0.95

こうして見ると、 Fargateは非常に妥当な値付け であり、少なくとも高くないか やや安い 、と言えそうです。

さいごに

m5/r4シリーズのインスタンスが元々コスパ高いからSpotFleetで使おう

ECS/Fargateを使うときのコスト最適化については、こんな感じになりそうです。

  • SpotFleetを使っている場合にはそのままSpotFleetを使うのが良い
  • オンデマンドインスタンスでAutoScaling Groupを作っているなら、Fargateに乗り換えると良い

オンデマンド価格でECSを使っているならFargateに乗り換えない理由はありませんね!また、エンジニアの稼働を減らすことでコストメリットが出るなら、SpotFleetからFargateに乗り換えるのも十分アリなのでは、と思います2

ECS/Fargateを利用する場合には、他に ALBの利用料金 も発生します。コストを計算する場合にはそちらの考慮もお忘れなく!ALBの数が増えるとその分コストも増えますので、パスベースルーティングやホストベースルーティングを活用してALBの数を抑えるのも効果がありますよ。


  1. なぜこの数値を採用したかというと、実際使っているからです。Scale-outの閾値をあまりに高くしてしまうと、追加のTaskが起動することができずMemoryReservationが上昇できなくてScale-outして欲しいときに正しくScale-outしない、ということが起こりえます。 

  2. SpotFleetを使う場合、SpotFleetリクエストの期限などいくつか気にしないといけないことが増えます。 

sudoyu
記事はすべて個人の見解であり、所属する企業を代表するものではありません。
recruitlifestyle
飲食・美容・旅行領域の情報サイトや『Airレジ』などの業務支援サービスなど、日常消費領域に関わるサービスの提供するリクルートグループの中核企業
http://www.recruit-lifestyle.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away