Amazon EC2 インスタンスでの Amazon S3 の使用 - Amazon Elastic Compute Cloud

Amazon EC2 インスタンスでの Amazon S3 の使用

Amazon Simple Storage Service (Amazon S3) は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。Amazon S3 を使用して、データレイク、ウェブサイト、バックアップ、ビッグデータ分析など、さまざまなユースケースの任意の量のデータを Amazon EC2 インスタンスから、またはインターネット経由でどこからでも保存および取得できます。詳細については、「Amazon S3 とは」を参照してください。

オブジェクトとは、Amazon S3 に格納される基本エンティティです。Amazon S3 に格納されるすべてのオブジェクトは、バケットに保管されます。バケットは Amazon S3 名前空間の最上位レベルを構成し、個々のストレージを所有するアカウントを識別します。Amazon S3 のバケットはインターネットのドメイン名に似ています。バケットに格納されたオブジェクトは一意のキー値を持ち、URL を使用して取得されます。例えば、キー値 (/photos/mygarden.jpg) を持つオブジェクトが amzn-s3-demo-bucket1 バケットに格納されている場合、このオブジェクトは URL (https://amzn-s3-demo-bucket1.s3.amazonaws.com/photos/mygarden.jpg) を使用してアドレス解決できます。詳細については、「Amazon S3 の仕組み」を参照してください。

使用例

Amazon S3 にはストレージとしての利点があるため、場合によっては、このサービスを使用して、EC2 インスタンス用にファイルとデータセットを保存してもかまいません。Amazon S3 とインスタンスとの間でデータを移動するには、いくつかの方法があります。以下に説明する例以外にも、コンピュータやインスタンスから Amazon S3 のデータにアクセスできるさまざまなツールが、他のユーザーによって作成されています。一般的な一部のツールについては、AWS フォーラムで取り上げられています。

アクセス許可がある場合は、以下の方法を使用して、Amazon S3 とインスタンスとの間でファイルをコピーできます。

GET or wget (Linux)
注記

この手法は、パブリックなオブジェクトに対してのみ有効です。オブジェクトがパブリックでない場合は、ERROR 403: Forbidden メッセージが出力されます。このエラーを受け取った場合は、Amazon S3 コンソール、AWS CLI、AWS API、AWS SDK、または AWS Tools for Windows PowerShell を使用する必要があります。この際は、適切なアクセス許可が必要です。詳細については、Amazon S3 ユーザーガイドAmazon S3 での Identity and Access Managementおよびオブジェクトのダウンロードを参照してください。

wget ユーティリティは、Amazon S3 からパブリックオブジェクトをダウンロードできる HTTP および FTP のクライアントです。これは、Amazon Linux やその他のほとんどのディストリビューションにデフォルトでインストールされ、Windows ではダウンロード可能です。Amazon S3 オブジェクトをダウンロードするには、次のコマンドを入力し、ダウンロードするオブジェクトの URL に置き換えます。

[ec2-user ~]$ wget https://my_bucket.s3.amazonaws.com/path-to-file
AWS Tools for Windows PowerShell (Windows)

Windows インスタンスには、Amazon S3 コンソールに直接アクセスするために使用できるグラフィカルブラウザであるという利点があります。ただし、Windows ユーザーは、スクリプティング目的で AWS Tools for Windows PowerShell を使用して、Amazon S3 との間でオブジェクトを移動することもできます。

Amazon S3 オブジェクトを Windows インスタンスにコピーするには、次のコマンドを使用します。

PS C:\> Copy-S3Object -BucketName my_bucket -Key path-to-file -LocalFile my_copied_file.ext
AWS CLI (Linux and Windows)

AWS Command Line Interface (AWS CLI) は、AWS サービスを管理するための統合ツールです。AWS CLI を使用すると、ユーザーは自分自身を認証し、限定された項目を Simple Storage Service (Amazon S3) からダウンロードしたり、項目をアップロードしたりできます。ツールのインストールおよび設定方法などの詳細については、AWS Command Line Interface の詳細ページを参照してください。

aws s3 cp コマンドは、Unix cp コマンドと似ています。ファイルを Amazon S3 からインスタンスにコピーしたり、ファイルをインスタンスから Amazon S3 にコピーしたりできるほか、ファイルを Amazon S3 の 1 つの場所から別の場所にコピーすることもできます。

オブジェクトを Amazon S3 からインスタンスにコピーするには、次のコマンドを使用します。

aws s3 cp s3://my_bucket/my_folder/my_file.ext my_copied_file.ext

オブジェクトをインスタンスから Amazon S3 にコピーして戻すには、次のコマンドを使用します。

aws s3 cp my_copied_file.ext s3://my_bucket/my_folder/my_file.ext

aws s3 sync コマンドは、Amazon S3 バケット全体をローカルディレクトリの場所に同期できます。この機能は、データセットをダウンロードし、リモートセットでローカルコピーを最新の状態に保つ際に役立ちます。Amazon S3 バケットに対して適切なアクセス許可がある場合は、コマンドで送信元と送信先の場所を入れ替えることで、終了時にローカルディレクトリバックアップをクラウドにプッシュできます。

Amazon S3 バケット全体をインスタンスのローカルディレクトリにダウンロードするには、次のコマンドを使用します。

aws s3 sync s3://remote_S3_bucket local_directory
Amazon S3 API

デベロッパーは API を使用して、Amazon S3 のデータにアクセスできます。この API は、アプリケーションの開発および、他の API および SDK との統合に役立てることができます。詳細については、「Amazon S3 ユーザーガイド」の「AWS SDK を使用した Amazon S3 用コード例」を参照してください。