AWS ECSにおける重要用語
ECSにおける単語の説明
クラスター
複数のEC2インスタンスで構成されている。ECSはクラスター全体でのCPUやメモリの使用量を把握するようにしている。
コンテナインスタンス
ECSでは、クラスター管理下にあるEC2インスタンスをコンテナインスタンスと呼ぶ。
タスク定義(タスクとは別)
アプリケーションがどのようなDockerコンテナで構成されるかをタスク定義に記述する。タスク定義された1つ1つがアプリケーションである。docker-compose.ymlに似ている。
アプリケーション全体の構成などを1つのタスク定義にまとめることもできるが、合理的ではない。タスク定義はそれ単位で、EC2インスタンス上で起動するからである。タスクには、Elastic searchのインデックス更新や支払い期限通知のメール送信などがあるが、それらも1つずつが別のEC2インスタンス上のコンテナで起動している。アプリケーションサーバーを起動する「bundle exec rails s」も1つのタスクとして扱われる。
タスク定義には、以下のような項目がある。
これらを更新すると、履歴が残る。
タスクとサービス
タスク定義に書いたアプリケーションを起動させる手段として、タスクとサービスの2つがある。
- タスク・・・バッチ処理や一時的な処理のために使う。大量のデータ更新のタスクとか。タスクの終了後、それが動いていたコンテナはkillされる。
- サービス・・・長期的に動作する必要がある処理のために使う。サーバーを起動させるタスクとか。