タスク定義は、ECSクラスター内で実行されるコンテナ化されたアプリケーションの設定を定義するものです。以下に、タスク定義の主要な要素とその機能について説明します。
- コンテナ定義: タスク定義は、実行するコンテナの詳細な設定を含みます。コンテナイメージ、CPUおよびメモリのリソース要件、ネットワーキング設定、環境変数などが含まれます。
例:
"containerDefinitions": [
{
"name": "my-container",
"image": "my-container-image",
"cpu": 256,
"memory": 512,
"environment": [
{
"name": "ENV_VAR_NAME",
"value": "ENV_VAR_VALUE"
}
],
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080
}
]
}
]
-
ネットワーキング: タスク定義では、コンテナ間やクラスター内のネットワーク接続を設定することができます。例えば、ロードバランサーとの連携や、プライベートネットワーク内でのコンテナ間通信などが可能です。
-
デプロイメント構成: タスク定義は、デプロイメントの設定も提供します。デプロイメントロールバック、デプロイメントタイプ(Blue/Greenデプロイメントなど)、デプロイメントの最小/最大数の設定などが含まれます。
-
スケーリング: ECSは、タスク定義に基づいて自動的にスケーリングを行うことができます。タスク数の自動スケーリング、サービスごとのスケーリングポリシーの設定などが可能です。
以上が、Amazon ECSのタスク定義の概要です。この投稿では、タスク定義の作成と設定方法、コード例を提供します。ECSの詳細な機能やベストプラクティスについても触れていきます。