S3からローカルにデータを引っ張ってくる
1.準備
AWS CLIをインストール。
参考- AWS CLI 公式ドキュメント
インストール後、aws configure
を打ち、設定を行う。
aws configure
AWS Access Key ID [None]: AMIアクセスキーを入力
AWS Secret Access Key [None]: AMIシークレットキーを入力
Default region name [None]: S3バケットの利用しているリージョンを記入(ap-northeast-1など)
Default output format [None]: 利用するフォーマットを入力(適当でいい?text jsonなど)
2. 作業
AWS S3バケットからデータをダウンロードする。
aws s3 cp s3://バケット名/... /ローカルで保存したい場所
`aws s3 cp s3://bucket-name/log/access.log /local/directory/access.log
ダウンロードが開始され、保存が完了する。
トラブルなど
EC2からS3(S3からEC2)へ上記を行う際、"An error occurred (AccessDenied) when calling the GetObject operation: Access Denied"と表示され、ダウンロードできない。
EC2に割り当てられているIAMロールのポリシー設定にて、ファイルの操作(GetObject, PutObjectなど)が許可されていない可能性が高いです。
手順:
AWSマネジメントコンソールからEC2に入り、該当するEC2インスタンスを選択。
画面下に表示されている「説明」タブの中に「IAM ロール」に割り当てられているロール名をクリック。
「アクセス権限」タブ→「Permissions policies 」→ポリシー名(前ページのロール名}をクリックし、「サービス」の中から「S3」をクリック。
こちらを参考に、実行したいアクションを許可する。
最後に
今回の作業に関して、こちらの記事を参考にさせていただきました。
Amazon S3にGUI・CLIでファイルをアップロード・ダウンロードする方法