AWS BatchでS3にファイルをputするジョブを作成する

AWS BatchでS3にファイルをputするジョブを作成する

前提

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する方法」参照ください。

AWS BatchでS3にファイルをputするジョブを作成する

ECRにawslinuxが作成されていることが確認できます。

AWS Batchでジョブの定義

AWS Batchでジョブ定義を作成します。

AWS BatchでS3にファイルをputするジョブを作成する

AWS BatchでS3にファイルをputするジョブを作成する

赤枠で囲んだ箇所がECRのプライベートリポジトリのイメージのURIです。

AWS BatchでS3にファイルをputするジョブを作成する

「作成」をクリックします。これでジョブ定義作成できました。

ジョブ送信

ではジョブ送信します。

AWS BatchでS3にファイルをputするジョブを作成する

「新しいジョブを送信」をクリックします。

AWS BatchでS3にファイルをputするジョブを作成する

AWS BatchでS3にファイルをputするジョブを作成する

AWS BatchでS3にファイルをputするジョブを作成する

「送信」をクリックします。

S3確認

AWS BatchでS3にファイルをputするジョブを作成する

バケットにaiueo.txtがcpされていることが確認できました。

これで、AWS BatchからS3へのアクセスが確認できました。

CloudWatch確認

AWS BatchでS3にファイルをputするジョブを作成する

uploadされたことがログに出ています。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました