AWS Batchのコンピューティング環境を削除できなかったのを対応したので作業内容をメモしておく。
発生現象
AWS Batchのコンピューティング環境を削除しようとするとステータスがDeleteingになってからInvalidになって削除できない。
原因
自分の環境の場合は以下の手順で現象が発生していた。
- CloudFormationでAWS Batch環境を作成
- デバッグ用にコンピューティング環境を手動で作成
- CloudFormationのテンプレートを削除
3.の手順においてBatch管理用のServiceRoleが削除されて手動環境が管理(削除)できなくなる。
対応方法
参照:AWS Developer Forums: Delete Compute Environment failed - ...
- コンピューティング環境のサービスロールを確認する。
- 調べたロール名でサービスロールを作成する。
- コンピューティング環境を削除する。
- 作成したサービスロールを削除する。
ちなみに、CloudFormationで作成していたサービスロール名のパスがルート(/)以外であったのでマネージメントコンソールから作成する必要があった。
(この作業以外はすべてマネージメントコンソールで実行可能)
参照:【AWS】IAM ロールのパスをルート(/)以外にする - Qiita
$ cat batch.json
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": "batch.amazonaws.com"},
"Action": "sts:AssumeRole"
}]
}
$ aws iam create-role --role-name [サービスロール名] --path /service-role/ --assume-role-policy-document file://batch.json
# この後AWSBatchServiceRoleポリシーをアタッチ