Fargateとは?
2018年6月に正式サービスの提供が開始されたサービス。ECSほどは歴史は古くない。
サーバーレスでコンテナを動かすことに特化したもので、ECSの中の仕組みでフルマネージドサービスになります。
ECSには二つのコンテナを動かす仕組みがある。
ECSでコンテナを動かす方法には以下二つの方法があります。Fargateはそのうちの一つの仕組みの事です。
- EC2 on ECS
- FARGATE
EC2 on ECS
メリット
何かが起きた時にサーバーの中に入ってトラブルシューティングができます。コンテナ内の調査が可能です。
また、購入済みのリザーブドインスタンスを使いたい場合なども選択の余地が入ります。
デメリット
EC2でコンテナを動かすのでサーバーレスではありません。
Fargate
イメージ
1.開発者がECRに登録(プッシュ)します。
2.開発者はプッシュしたコンテナイメージをデプロイしてもらえるようECS上のコンテナ定義をアップデートします。
3.指示を受けたECSはFargateに対してコンテナのデプロイを支持します。
メリット
サーバーレス
サーバーを持たないのでサーバーレスになります。最近はコンテナを動かすためにコンテナさえ動けば良くてサーバー自体を持ちたくないという需要が増えておりこちらが多く採用されるようになってきています。
スケーリングもしてくれる。
負荷が増えた際にコンテナの数を自動で増やしてくれます。勝手にやってくれるのでアプリの開発に専念できます。
デメリット
サーバーを持たないので何かが起きた時にサーバーの中に入ってトラブルシューティングが基本的にできません。(無理やりSSHデーモンを動かして接続する方法はあるみたいですが。)
また、dockerコマンドも使えないのでログを追いづらい。
Fargateの他サービスとの連携
ECSがFargateに対してクラスタの作成指示を出します。
Fargateの用語
クラスター
単なる箱、この中でコンテナを動かす。この中にサービスを定義します。
サービス
クラスターの中に入ります。必要なコンテナを集めたものが起動している状態です。自分たちが管理したい単位でサービスを作ります。
タスク
サービスの中に入ります。一つ以上の任意のコンテナの集まりです。
タスク定義
コンテナを起動するタスクを定義するもの。どのようなタスクが動いているかを定義します。要はDockerでいうところのdocker-compose.ymlの事です。下記のような項目を定義します。
- 何のコンテナを使うか?
- どんなスペックで動かすか?
- ログはどうするか?
- マウントはどうするか?
この記事へのコメントはありません。