[アップデート]Amazon ECSのCapacity Providerの設定が削除できるようになりました

2020.06.18

おはようございます。コンサル部の島川です。

ECSでCapacity Providerの設定ができるようになりました!マネジメントコンソールまたはAPI経由で削除することができます。地味ですがとても嬉しいアップデートです。

何が嬉しいのか

シンプルに削除できるようになったのが嬉しいことなんですが、今までは作り直そう!として設定を解除しても裏で残り続けたままで同名のものが使えませんでした。それが解消されました。

そもそもCapacity Providerとは?

去年のre:Invent2019で発表された機能で、一言でいうとECSのタスク管理をコントロールしてくれるものです。ECSはEC2またはFargateの起動タイプが選べますがそれぞれで動きが少し違いますので、それぞれ分けて説明します。

FargateにおけるCapacity Providerの動き

FargateタイプではデフォルトでCapacity Providerが設定されています。マネジメントコンソールから見ると「FARGATE」と「FARGATE_SPOT」が存在しているのが分かります。 設定するには「クラスターの設定」または「サービスの設定」から「片方だけ使う」か「両方とも使うか」を選びます。 それでこれを設定するとどうなるのかというとFargate(オンデマンド)とFargate Spotを組み合わせたタスクの起動ができるようになります。

Fargate spotはAWSのリソース状況によって中断されるというデメリットはありますが、採用することで費用の大幅な効率化が見込まれます。ちなみにFargate spotも去年のre:Invent2019で発表(AWS Fargate Spotの発表)されてます。このFargate spotを効率良く使うためにCapacity Providerを使いましょう。ということです。

東京リージョンでのコストを並べてもかなりお得になるのが分かります。

  • Fargate
    • 1 時間あたりの vCPU 単位 0.05056USD
    • 1 時間あたりの GB 単位 0.00553USD
  • Fargate spot
    • 1 時間あたりの vCPU 単位 0.0186919USD
    • 1 時間あたりの GB 単位 0.00204443USD

参考:AWS Fargate の料金

ちなみにこちらが実際どのような動きをするのかに関しては弊社のハマコーさんのブログがとても参考になるので合わせてご参考ください。

EC2におけるCapacity Providerの動き

EC2タイプではデフォルトだと何も設定されていません。自分で設定を作成して、Fargateと同じようにクラスターに設定する必要があります。

使うとどうなるのか。EC2タイプでCapacity Providerを使うことの最大のメリットは「AutoScalingGroup」の管理をしなくてよくなることだと思っております。タスクの増減に合わせて「AutoScalingGroup」の設定が書き換えられるようになります。管理がかなりシンプルになるので非常に嬉しいと思います。

実際の動きについてもこちらブログにまとまってありますので、合わせてご参考ください。

削除をやってみた

前置きが長くなりましたがマネジメントコンソールから削除をやってみます!

何も言うことはありません。便利。

さいごに

Capacity Providerは実際に触ってみて初めてイメージが沸いてそして良さを実感できると思っております。ぜひ一度触ってみてください。

あとがき

過去に設定を解除してマネジメントコンソールから参照できないものについてはAPIで削除するしかなさそうです。

参考ページ