📝
AWS Batch で AWS CLI を実行してみた
前提
- AWSServiceRoleForBatch ロールが存在している
- ecsInstanceRole ロールが存在している
- AdministratorAccess 権限が付与されている
1. AWS Batch コンピューティング環境の作成
以下の設定で作成しました。
- コンピューティング環境設定: Amazon Elastic Compute Cloud (Amazon EC2)
- オーケストレーションタイプ: マネージド型
- 名前: my-batch-compute-env
- サービスロール: AWSServiceRoleForBatch
- インスタンスロール: ecsInstanceRole
上記以外はデフォルト設定です。
2. ジョブキューの作成
以下の設定で作成しました。
- オーケストレーションタイプ: Amazon Elastic Compute Cloud (Amazon EC2)
- 名前: my-aws-cli-job-definition
- 接続されたコンピューティング環境: 手順 1 で作成した環境
上記以外はデフォルト設定です。
3. ジョブ定義の作成
以下の設定で作成しました。
- オーケストレーションタイプ: Amazon Elastic Compute Cloud (Amazon EC2)
- 名前: my-batch-job-queue
- イメージ: amazon/aws-cli:latest
- コマンド:
["s3","ls"]
- 実行ロール: ecsTaskExecutionRole
上記以外はデフォルト設定です。
4. ジョブの実行
以下の設定で実行しました。
- オーケストレーションタイプ: Amazon Elastic Compute Cloud (Amazon EC2)
- 名前: my-first-aws-cli-job
- ジョブ定義: 手順 3 で作成した定義
- ジョブキュー: 手順 2 で作成した定義
上記以外はデフォルト設定です。
5. 動作確認
ジョブのステータスが SUCCEEDED になり、CloudWatch Logs のロググループ /aws/batch/job に S3 バケット一覧のログが出力されていれば成功です。
まとめ
今回は AWS Batch で AWS CLI を実行してみました。
どなたかの参考になれば幸いです。
Discussion