AWS CLIシェルプログラムをCRON実行する場合
このようなS3へファイルをコピーする
シェルプログラムを作ってコマンド実行で動作したので
#!/bin/bash
aws s3 cp ファイル名 s3://backet_name/
そのままCRONへ登録し失敗する理由は大体環境変数まわりかと思います。
- AWS IAMのクレデンシャル情報(アクセスキー、シークレットキー、リージョン情報など)を環境変数に指定する
- aws cliのコマンド引数で直接クレデンシャル情報を指定する
- S3へのアクセス権限を付与したIAMロールをEC2インスタンスに紐づける(未確認)
上記のいづれかの方法を取ればCRONで動作します。
ここでは、環境変数でクレデンシャル情報を指定する方法を記述します。
環境変数でクレデンシャルファイルを指定する例)
#!/bin/bash
export AWS_SHARED_CREDENTIALS_FILE=クレデンシャル情報を保存したファイル
aws s3 cp ファイル名 s3://backet_name/
クレデンシャル情報やIAMに関する詳しい内容につきましては参考情報を
参考情報:
http://dev.classmethod.jp/cloud/aws/how-to-configure-aws-cli/
http://dev.classmethod.jp/cloud/aws/awscli-configure-credential-file-via-envvar/