Amazon ECS タスク定義でコンテナ再起動ポリシーを指定する
タスク定義でコンテナの再起動ポリシーを指定するには、コンテナ定義内で restartPolicy
オブジェクトを指定します。restartPolicy
オブジェクトの詳細については、「再起動ポリシー」を参照してください。
以下は、Web サーバーをセットアップするために、Fargate 起動タイプで Linux コンテナを使用するタスク定義です。コンテナ定義には、コンテナの再起動ポリシーを有効にするために enabled
が true に設定された restartPolicy
オブジェクトが含まれています。コンテナは再起動する前に 180 秒間実行する必要があります。成功を示す終了コード 0
で終了した場合、コンテナは再起動しません。
{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": ["sh", "-c"], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "restartPolicy": { "enabled": true, "ignoredExitCodes":
[0]
, "restartAttemptPeriod":180
} } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::012345678910
:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "requiresCompatibilities": ["FARGATE"] }
コンテナ定義で restartPolicy
オブジェクトを含むタスク定義を登録した後、そのタスク定義でタスクを実行するか、サービスを作成することができます。詳細については、Amazon ECS タスクとしてのアプリケーションの実行およびコンソールを使用した Amazon ECS サービスの作成を参照してください。