この記事を書くまでの経緯
herokuにコンテナデプロイしてみたぞ!
次はEC2にデプロイしようかな?
でもAWS Fargateなんてのもあってコンテナデプロイできるみたい。ほー、しかもオートスケーリング機能なんてのもあるのか。
ちょっと採用するメリットデメリットを調べてみようかな?というただのまとめメモ。
この記事は
主にEC2とFargateを比較した時に生じる差異に関してまとめています。ECSとは?Fargateとは?という点にはあまり触れていません。
(ちなみに筆者は現在進行形でECSの勉強中ですので間違いがあっても悪しからず)
メリット
- EC2の場合、OSやDocker、ミドルウェアの構築や設定が必要だが、Fargateではその必要がない。開発環境で使用しているコンテナをそのまま本番環境で運用できる。
- EC2インスタンスやクラスターの管理をしなくてもよい。
- オートスケーリング機能があり、コンテナ数をオートスケールしてくれる。
デメリット
- シェルに入れない。私は開発環境でシェルにいつも入るので不便だと感じます。EC2を意識しないで扱える、ということの裏返しみたいです。
- 学習コストが低くない。師匠曰く、深いところまで設定が必要になってくる為結構大変だよ〜とのこと。あれ?インフラエンジニアがいない環境でも楽に構築できる!みたいな記事をよく見るけど学習コスト高いのか。というのが正直な感想。
結論(Fargateのユースケース)
管理工数削減が求められる場合、検討の予知がある。
EC2と比べた際、OSやミドルウェアを意識せずに運用できる為、工数削減が期待できます。
意識するのはCPUやメモリのみ。
新規構築は少しコストがかかりそうですが、その後の運用や開発がかなり楽になるのではないかなという印象を受けました。
以上になります。