ECS
Stands for Elastic Container Service
ネットワーク周りの設定がめんどいんだよ、Cloud Run みたいにならんかね、とうい気持ちに答えてくれそうなのが、App Runner Create new task revision
code:shell
ECS deploy
ECS 環境の作成、管理、デプロイを簡単にできる
同じアプリを複数環境にデプロイするなど
こちらはアプリケーション、copilot はインフラという感じなのだろうか?
でも copilot でもコンテナのデプロイもできるんだよね?
amazon-ecs-cli
ローカルで簡単に環境をつくれるらしい?
インスタンス管理の方法=Capacity Providor がある
例えば Fargate
Auto-scalling-group というのもあるらしい
Task
task に複数コンテナ含めるか問題
つねに一つだけ task を実行する
task を停止するには、desired count も 0 にする必要があるみたい
Secret
SM と PS どっち使うか問題
Network
subnet を private にすべきか、public でよいか
private にすると外部アクセスに NAT が必要で、これの料金が高い?
public でも security group を設定すればよさそう
これ読むと良さそう
service ごとに subnet を設定できるもよう
IAM
Healthcheck
alpine だと curl 入っていなくて healthcheck 通らない
container image
docker hub のものも使える
デバッグ用には busybox とかが使える?
実行が終わると終了してしまうので、sleep とか使う
code:task-definition.json
{
"family": "busybox-task",
"containerDefinitions": [
{
"name": "busybox-container",
"image": "busybox",
"memory": 128,
"cpu": 128,
}
]
}
private subnet の場合は image pull するために、vpc endpoint を追加するなどしてネットワークへアクセスする必要がある