アマゾン EC2 インスタンスでの アマゾン S3 の使用
アマゾン Simple Storage Service (アマゾン S3) は業界をリードするスケーラビリティ、データ可用性、セキュリティ、およびパフォーマンスを提供するオブジェクトストレージサービスです。アマゾン S3 を使用して、データレイク、ウェブサイト、バックアップ、ビッグデータ分析など、さまざまなユースケースの任意の量のデータを アマゾン EC2 インスタンスから、またはインターネット経由でどこからでも保存および取得できます。詳細については「アマゾン S3 とは」を参照してください。
オブジェクトとはアマゾン S3 に格納される基本エンティティです。アマゾン S3 に格納されるすべてのオブジェクトはバケットに保管されます。バケットは アマゾン S3 名前空間の最上位レベルを構成し、個々のストレージを所有するアカウントを識別します。アマゾン S3 のバケットはインターネットのドメイン名に似ています。バケットに格納されたオブジェクトは一意のキー値を持ち、URL を使用して取得されます。例えば、キー値 (/photos/mygarden.jpg
) を持つオブジェクトが amzn-s3-demo-bucket1
バケットに格納されている場合、このオブジェクトは URL (https://amzn-s3-demo-bucket1.s3.amazonaws.com/photos/mygarden.jpg
) を使用してアドレス解決できます。詳細については「アマゾン S3 の仕組み」を参照してください。
使用例
アマゾン S3 にはストレージとしての利点があるため、場合によってはこのサービスを使用して、EC2 インスタンス用にファイルとデータセットを保存してもかまいません。アマゾン S3 とインスタンスとの間でデータを移動するにはいくつかの方法があります。以下に説明する例以外にも、コンピュータやインスタンスから アマゾン S3 のデータにアクセスできるさまざまなツールが、他のユーザーによって作成されています。一般的な一部のツールについてはAWS フォーラムで取り上げられています。
アクセス許可がある場合は以下の方法を使用して、アマゾン S3 とインスタンスとの間でファイルをコピーできます。
- GET or wget (Linux)
-
この手法はパブリックなオブジェクトに対してのみ有効です。オブジェクトがパブリックでない場合はERROR 403: Forbidden
メッセージが出力されます。このエラーを受け取った場合はアマゾン S3 コンソール、AWS CLI、AWS API、AWS SDK、または AWS Tools for Windows PowerShell を使用する必要があります。この際は適切なアクセス許可が必要です。詳細についてはアマゾン S3 ユーザーガイドのアマゾン S3 での Identity and Access Managementおよびオブジェクトのダウンロードを参照してください。
wget ユーティリティはアマゾン S3 からパブリックオブジェクトをダウンロードできる HTTP および FTP のクライアントです。これはアマゾン Linux やその他のほとんどのディストリビューションにデフォルトでインストールされ、Windows ではダウンロード可能です。アマゾン S3 オブジェクトをダウンロードするには次のコマンドを入力し、ダウンロードするオブジェクトの URL に置き換えます。
[ec2-user ~]$
wget https://my_bucket
.s3.amazonaws.com/path-to-file
- AWS Tools for Windows PowerShell (Windows)
-
Windows インスタンスにはアマゾン S3 コンソールに直接アクセスするために使用できるグラフィカルブラウザであるという利点があります。ただし、Windows ユーザーはスクリプティング目的で AWS Tools for Windows PowerShell を使用して、アマゾン S3 との間でオブジェクトを移動することもできます。
アマゾン 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 (アマゾン S3) からダウンロードしたり、項目をアップロードしたりできます。ツールのインストールおよび設定方法などの詳細についてはAWS Command Line Interface の詳細ページを参照してください。
aws s3 cp コマンドはUnix cp コマンドと似ています。ファイルを アマゾン S3 からインスタンスにコピーしたり、ファイルをインスタンスから アマゾン S3 にコピーしたりできるほか、ファイルを アマゾン S3 の 1 つの場所から別の場所にコピーすることもできます。
オブジェクトを アマゾン S3 からインスタンスにコピーするには次のコマンドを使用します。
aws s3 cp s3://my_bucket
/my_folder
/my_file.ext
my_copied_file.ext
オブジェクトをインスタンスから アマゾン S3 にコピーして戻すには次のコマンドを使用します。
aws s3 cp my_copied_file.ext
s3://my_bucket
/my_folder
/my_file.ext
aws s3 sync コマンドはアマゾン S3 バケット全体をローカルディレクトリの場所に同期できます。この機能はデータセットをダウンロードし、リモートセットでローカルコピーを最新の状態に保つ際に役立ちます。アマゾン S3 バケットに対して適切なアクセス許可がある場合はコマンドで送信元と送信先の場所を入れ替えることで、終了時にローカルディレクトリバックアップをクラウドにプッシュできます。
アマゾン S3 バケット全体をインスタンスのローカルディレクトリにダウンロードするには次のコマンドを使用します。
aws s3 sync s3://remote_S3_bucket
local_directory
- Amazon S3 API
-
デベロッパーは API を使用して、アマゾン S3 のデータにアクセスできます。この API はアプリケーションの開発および、他の API および SDK との統合に役立てることができます。詳細については「アマゾン Simple Storage Service API リファレンス」の「 SDK を使用した アマゾン S3 のコード例AWSSDKs」を参照してください。