ECSのFargateとEC2の違いをざっくりまとめる(EC2編)

どっちがどうなんだっけ?ってなったのでちょっとまとめようと思います。

EC2

利点

料金が安い

以前のデータを見てみると、リージョンごとに多少異なってきますが10~20%程度料金が安いようです。

コンテナに入りやすい

ECS on EC2はEC2内にSSMで接続し、docker exec等でコンテナのログを調べることもできるので便利です。

運用コストが実はそんなに高くない

ECS on EC2だとOS周りとかが管理対象になって大変という印象があったのですが、そこまで大変ではないようです。
まずOSに関しては、ECS最適化AMIがあるので、OS・コンテナランタイム層の設計運用はやる必要はなく、CSKを利用すればL2Constructのユーティリティにより最新のAMIが自動で適用されます。
スケーリング運用も、ECSのタスク数を1:Nではなく1:1にすることでECSスケーリングだけを考えればよくなるため運用は楽になります。
セキュリティ等に関しても、IAMロールを最小限にしているとか普通の対策をすれば問題はなさそうです。
意外と運用のハードルは低く見えます。

ElasticIPをつけることができる

EC2なのでElasticIPを紐づけることでパブリックIPを固定化することができます。
Fargate等だとどうしてもNatGatewayとかNatInstanceを経由しなければIPを固定出来なかったので使い方次第では便利になるかもしれないです。

まとめ

一旦EC2の利点はまとめました。
主に予算的な部分で利点があって、管理は複雑な印象があったのですが意外と管理コストも高くないように感じます。
後日Fargateの利点もまとめ、EC2とFargateをどのようなシーンで使い分けたらよいのかみたいな考察もしていこうと思います。