#author("2020-08-11T09:53:28+00:00","default:wikiadmin","wikiadmin") -AWSのコンテナオーケストレーション *用語集 [#wa2e3062] -タスク定義はいくら作っても無料(生成されないので!) -Fargateにおけるクラスターは単なるサービスと結びつける枠なのでこれまた無料(実際にはサービスと同じ生存期間なので無料ではないが) -ServiceでタスクをいくつとかALBと組み合わせたりすると課金発生 |Fargate|EC2の管理不要| |タスク|コンテナ1つに対応する。タスク定義とタスクはクラスとインスタンスの関係。タスク定義を更新すると別のタスクが立ち上がり入れ替わる| |サービス|タスクが幾つ必要かとかALBと紐づけるとか。| |クラスタ|EC2の塊、Fargateだと意識することはない。| |CMD|Docker起動時に実施するCMD。起動時に指定するものと同じものが定義できると考えるべし。docker exec -it xxx /bin/bashの/bin/bashの部分だ| |ENTRYPOINT|Docker起動時に実施するコマンドではCMDと一緒だが、上書き不可能だったりもできる。ENTRYPOINTを指定したときは、runの後の記述は起動するプロセスを特定する指示としては機能しない| *aws-cli ecs編 [#k173107f] |aws ecs list-task-definitions|タスク定義の一覧| |aws ecs describe-task-definition --task-definition test-mysql:2|タスク定義の詳細。このままではRegisterできない。| **Blue/Greenの時のために整形 [#t051a8f8] aws ecs describe-task-definition --task-definition test-mysql:2 | jq '.taskDefinition | del(.status, .compatibilities, .taskDefinitionArn, .requiresAttributes, .revision) ' https://dev.classmethod.jp/articles/describe-task-definition-to-register-task-definition/ *firelens [#aa006800] -ログドライバをCloudWatch Logs以外に選択できるようになった。 -ログドライバはECS固有ではなくて、Dockerにある概念。 **参考 Docker標準のログドライバ [#cc65c477] |json-file|標準 Docker logsで見れる| |syslog|Syslogに転送| |journald|| |fluentd|| *CMDとENTRYPOINT [#n847003c] **ENTRYPOINT [#c5e6089f] 固定で与えるものなので、docker run -it xxx 'コマンド'が実行時にentrypointに加わる |/bin/bash -c|docker run it xxx 'ls'|ls | |/usr/bin/git |docker run it xxx 'log'|git log| **CMD [#l4b913ea] Docker runで何も指定しなかったときの実行コマンド。またはentrypointでのデフォルト引数。 |EntryPoint設定値|CMD設定値|docker runコマンド|実際のコマンド| |なし|ls |docker run -it xxx |ls | |/bin/bash -c|ls |docker run -it xxx |ls | *Sidecar [#x1eac69d] https://y-ohgi.com/2019-aws-handson/datadog/ecs/ https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ecs_task_definition *Tips [#ad365403] 起動したPublic IPの確認。タスクから詳細(タスク定義ではない!) *ローカルでECSタスク定義実行 [#e9968eff] -タスク定義はdocker-compose.ymlに相当するが、独自仕様のため、以下のページ通りにするとdocker-composeに変換してくれる https://dev.classmethod.jp/articles/ecs-local/ -デプロイ https://dev.classmethod.jp/articles/aws-devday-2019-fargate-deploy/ *Secret Managerとの連携 [#z47d52ef] https://dev.classmethod.jp/articles/try-to-protect-aws-fargate-container-environment-variable-with-aws-secrets-manager/