0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS S3コマンドの基本から応用までの使い方を全5回で整理してみる - 第1回:S3コマンドの基本と環境構築

Posted at

第1回:S3コマンドの基本と環境構築

はじめに

S3は、AWSが提供するオブジェクトストレージサービスで、高い耐久性と可用性を誇ります。単にファイルを保存するだけでなく、ウェブサイトのホスティング、バックアップ、ビッグデータ分析など、多岐にわたる用途で利用されています。

S3を操作する方法はいくつかありますが、AWS CLI(Command Line Interface) を使ったコマンド操作は、自動化やスクリプトによる一括処理に非常に適しています。このシリーズでは、S3を自在に操るためのコマンドを、初心者の方でも理解しやすいように段階的に解説していきます。第1回では、S3コマンドの利用を始めるための準備として、AWS CLIの環境構築から、バケットとオブジェクトの基本的な操作方法を学びましょう。


AWS CLIのセットアップ

S3コマンドを使うには、まずローカル環境に AWS CLI をインストールする必要があります。

1. AWS CLIのインストール方法

お使いのOSに合わせて、以下の手順でインストールを進めてください。

  • macOS / Linux
    以下のコマンドをターミナルで実行します。

    curl "https://awscli.amazonaws.com/awscli-bundle.zip" -o "awscli-bundle.zip"
    unzip awscli-bundle.zip
    sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    
  • Windows
    AWSの公式サイトからインストーラー(.msiファイル)をダウンロードし、ウィザードに従ってインストールします。

インストールが完了したら、以下のコマンドでバージョンを確認し、正常にインストールされているかチェックしましょう。

aws --version

2. 認証情報のセットアップ(aws configure

AWS CLIをインストールしたら、次にAWSアカウントの認証情報を設定します。これにより、コマンドを実行した際にAWS CLIがどのユーザーとしてS3にアクセスすればよいかを認識できるようになります。

以下のコマンドを実行すると、対話形式で設定が進みます。

aws configure
  • AWS Access Key ID: IAMユーザーのアクセスキーを入力します。
  • AWS Secret Access Key: IAMユーザーのシークレットアクセスキーを入力します。
  • Default region name: S3バケットを作成するデフォルトのリージョンを指定します。例えば、東京リージョンなら ap-northeast-1 と入力します。
  • Default output format: コマンド実行結果の出力形式を指定します。特に指定がなければ json で問題ありません。

これらの設定は、~/.aws/credentials~/.aws/config に保存されます。

3. IAMユーザーの作成と権限設定

aws configure で設定するアクセスキーは、IAMユーザー のものです。AWSのベストプラクティスとして、ルートユーザーの認証情報ではなく、S3にアクセスするための専用のIAMユーザーを作成することを強く推奨します。

IAMユーザーを作成したら、S3へのアクセス権限を付与するポリシーを設定します。ここでは、S3の操作をフルに行うためのポリシーの例を示します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}

このポリシーは、すべてのS3アクション(s3:*)を、すべてのリソース(Resource: "*")に対して許可するものです。
本番環境では、必要最小限の権限のみを付与するよう、ポリシーをより細かく設定しましょう。


S3バケット操作の基本

環境設定が完了したら、いよいよS3コマンドを使ってみましょう。まずは、S3の基本単位である「バケット」を操作するコマンドです。

1. バケットの作成(aws s3 mb

S3にファイルを保存するには、まずバケットを作成する必要があります。バケット名は、AWS全体で一意である必要があります。

aws s3 mb s3://my-first-bucket-2023-01-01
  • s3:// は、S3リソースを指定するためのプレフィックスです。
  • my-first-bucket-2023-01-01 の部分は、作成したいバケット名に置き換えてください。

2. バケットの一覧表示(aws s3 ls

現在のアカウントに存在するバケットの一覧を表示するには、以下のコマンドを実行します。

aws s3 ls

実行結果は、バケットの作成日時とバケット名が一覧で表示されます。

3. バケットの削除(aws s3 rb

バケットを削除する際は、まずバケットの中身を空にする必要があります。中身が空でないバケットを削除しようとするとエラーになります。

バケットを削除するには、--force オプションを付けて実行するのが便利です。これにより、バケット内のオブジェクトを強制的に削除し、その後にバケット自体を削除します。

aws s3 rb s3://my-first-bucket-2023-01-01 --force

オブジェクト操作の基本

次に、バケット内に保存する「オブジェクト」(ファイル)を操作するコマンドです。

1. バケット内のオブジェクト一覧表示(aws s3 ls

特定のバケット内に保存されているオブジェクトの一覧を表示するには、バケット名を指定して ls コマンドを実行します。

aws s3 ls s3://my-first-bucket-2023-01-01

2. ローカルとS3間のコピー(aws s3 cp

cp コマンドは、ローカルとS3間でファイルをコピーする際に使用します。

  • ローカルからS3へファイルをアップロード

    aws s3 cp local_file.txt s3://my-first-bucket-2023-01-01/
    
  • S3からローカルへファイルをダウンロード

    aws s3 cp s3://my-first-bucket-2023-01-01/local_file.txt ./
    
  • S3からS3へファイルをコピー

    aws s3 cp s3://source-bucket/file.txt s3://destination-bucket/
    

ディレクトリごとコピーしたい場合は、--recursive オプションを付けます。

aws s3 cp ./local_folder s3://my-first-bucket-2023-01-01/remote_folder --recursive

3. ローカルとS3間の移動(aws s3 mv

mv コマンドは、cp と同様にファイルを移動します。移動元からファイルが削除される点が cp と異なります。使い方は cp と同じです。

  • ローカルからS3へファイルを移動

    aws s3 mv local_file.txt s3://my-first-bucket-2023-01-01/
    
  • S3からローカルへファイルを移動

    aws s3 mv s3://my-first-bucket-2023-01-01/local_file.txt ./
    

まとめ

第1回では、S3コマンドを使い始めるための準備と、基本的なバケット・オブジェクト操作について学びました。

本記事のポイント

  • AWS CLIのインストールaws configure による認証情報のセットアップが、S3コマンド利用の第一歩です。
  • IAMユーザー を作成し、最小限の権限を付与することがセキュリティの観点から重要です。
  • aws s3 mb, ls, rb コマンドでバケットを操作できます。
  • aws s3 cp, mv コマンドでローカル環境とS3間でファイルをやり取りできます。

次回の記事では、これらの基本コマンドをさらに応用し、sync コマンドを使った大規模なデータ同期や、効率的なデータ管理方法について解説します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?