個人的リマインド用
Fargateをざっくり理解
何をするものなのか
AWSにてサーバーレスでコンテナを動かすもの。コンテナを動かすところに特化している。
ECS
Fargateを知る前に、まずはECSについて理解する必要がある。FargateはECSの中の仕組みの1つ。他の仕組みにEC2onECSがあり、そちらはサーバーレスではない。
最近はFargateが主流で、なぜならアプリ制作者の視点としてはコンテナがとにかく動けばいいから。(例えばMacでdockerを使い、コンテナ内でつくったものをAWSに乗せるとなった時、そのコンテナさえ動けばいい)
EC2と比べた際のFargateのデメリットは、コンテナ内で問題があった時、その中に入れないこと。
もう1つFargateのいいところとしては、スケーリングしてくれるところ。スケーリングとは、負荷が増えた時に勝手にコンテナを増やしてくれて、負荷を分散できる。
よく使う単語
・クラスター
・サービス
・タスク
・タスク定義
クラスター
最も大きい箱。単なる枠組み。この中で色々なコンテナを動かしていく。複数作れる。
サービス
クラスターの中にいくつか用意できる。タスクを管理していて、必要なコンテナを集めたものが起動している状態。サービス同士で依存関係はなくていい。(例えばクラスター1のサービス1はZOZOTOWNに関連するもので、サービス2にはWEARに関連するものをいれる。またクラスター2には楽天に関するものみたいな感じで、管理したい単位でサービスを用意すればいい)
タスク
サービスの中にいくつか用意できる。1つ以上の任意のコンテナの集まり。スケーリングする時は、このタスクを増やす。同じサービス内にあるタスクは、同じタスク定義からできている。
タスク定義
コンテナを起動するタスクを定義するもの。タスクは動いているもの自体のことを指すが、タスク定義はどういうものが動いているかを定義する。dockerでいうとほぼdocker-compose.yml。
やりたいこととしては、何のコンテナなのか、どんなスペックなのか、ログは、マウントはということを定義する。