AWS BatchでS3にファイルをputするジョブを作成する
前提
IAMの「ecsInstanceRole」に「AmazonS3FullAccess」をアタッチしておく必要があると思いましたが、このポリシーは不要です。
$ cd / $ touch aiueo.txt
このコマンドでaiueo.txtを用意しておくこと。
コンテナ内で作業
aws-cliがインストールされているイメージを作成します。
ホスト側
$ docker pull amazonlinux $ docker run -d -it --name awslinux amazonlinux $ docker exec -it awslinux bash
コンテナ側
ログインします。
$ yum -y install aws-cli $ aws configure ### アクセスキー、シークレットキーなど入力 $touch aiueo.txt ### コンテナにS3にアップロードするファイルを作成しておく $ ls -la /root/.aws/ drwxr-xr-x 2 root root 4096 Mar 1 11:46 . dr-xr-x--- 1 root root 4096 Mar 1 12:14 .. -rw------- 1 root root 34 Mar 1 11:46 config -rw------- 1 root root 116 Mar 1 11:46 credentials
awsコマンドが実行できることを確認します。
$ aws --version aws-cli/1.18.147 Python/2.7.18 Linux/4.19.121-linuxkit botocore/1.18.6
これでOKです。
コンテナからイメージ化する
docker commit awslinux awslinux
これでawslinuxというイメージが作成されます。
これをECRにpushします。「Amazon ECRにDockerイメージをpushする方法」参照ください。
ECRにawslinuxが作成されていることが確認できます。
AWS Batchでジョブの定義
AWS Batchでジョブ定義を作成します。
赤枠で囲んだ箇所がECRのプライベートリポジトリのイメージのURIです。
「作成」をクリックします。これでジョブ定義作成できました。
ジョブ送信
ではジョブ送信します。
「新しいジョブを送信」をクリックします。
「送信」をクリックします。
S3確認
バケットにaiueo.txtがcpされていることが確認できました。
これで、AWS BatchからS3へのアクセスが確認できました。
CloudWatch確認
uploadされたことがログに出ています。

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント