▽概要
・S3バケット内のデータを一括ダウンロードしたい
・とりあえず簡単にサクッとダウンロードしたい
ってことでAWS CLIを使って、S3バケットの中身を一括ダウンロードしてみる
AWS CLIからWebサイトのコンテンツを一括でローカルにダウンロードや他のS3への転送ができるので、
S3静的ウェブサイトホスティングで、Webサイトを公開している時とかに、
テスト用に同じサイトを構成したい時とかに、コンテンツをサクッと取得できるので結構便利かも…
▽内容
①AWSコマンドラインインターフェース をダウンロードして、PCにインストールする
https://aws.amazon.com/jp/cli/
自分のPCはWindowsなので「64 ビットの Windows インストーラをダウンロードし、実行します。」のリンクからインストーラーをダウンロードしました。
インストーラーをダブルクリックで実行するとウィザードは開くので「Next」と「Install」をクリックしてインストールを実施する
②対象のIAMアカウントに対して、AWS CLIが実行できるようアクセスキーを発行する
IAMユーザーを一から作成する場合
IAM>ユーザー>ユーザーの追加
・ユーザ名:○○○○
・AWSアクセスの種類を選択:アクセスキー
・アクセス許可の設定:グループの作成>任意のグループ名(Adminとか)で作成し、ポリシーに「AdministratorAccess」を追加する
既存のIAMアカウントにアクセスキーを付与する場合
許可されているポリシーに「AdministratorAccess」が含まれているか確認し、
不足しているようであれば、「AdministratorAccess」を付与(「AdministratorAccess」のけん
「セキュリティ認証情報」のタブから「アクセスキーを作成」をクリックする
ユースケースに「コマンドラインインターフェース(CLI)」を指定して、
「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックを入れ、「次へ」をクリックする
タグ入力画面が表示されるので、何か必要だったら入力し「アクセスキーを作成」をクリックする
アクセスキーIDとシークレットアクセスキーが表示されるのでメモ
もしくはCSVをダウンロードする
③AWS CLIに、アクセスキーを使ってログインしてみる
自分のPCはWindowsなので、スタートから「コマンドプロンプト」を起動して下記のコマンドを入力する
C:\Users\○○>aws configure
AWS Access Key ID: ②で取得したIDを入力
AWS Secret Access Key: ②で取得したシークレットアクセスキーを入力
Default region name: 指定があればリージョンコードを指定するが空白でもOK
Default output format:結果の出力形式 指定が無ければそのままEnterを押す
リージョンコード参考:
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
④対象のS3バケットからコンテンツを一括ダウンロードする
hoge.com というS3バケットから、自分のPCのC:\temp\hogeに一括ダウンロードする
例:aws s3 cp s3://S3バケット名 ダウンロード先のパス --recursive
aws s3 cp s3://hoge.com C:\temp\hoge --recursive
参考
kopi-moto というS3バケットからkopi-sakiというS3バケットにコンテンツををコピーしたい場合
aws s3 cp s3://kopi-moto s3://kopi-saki
cpの部分をsyncに変えると、宛先バケットにまだ無いコンテンツのみをコピーできます
▽最後に…
今回サクッとコンテンツのダウンロードを実施したくAWS CLIを初めて使ってみました。
IAMアカウントへの権限付与などできれば、サクッとCLI使えて便利と思いました。
AMIからのEC2インスタンス作成とか、AMI作成とかCLIでやってみたいです。
今回この対応でIAMについても勉強できました。よかったです。(小学生並みの感想)