メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

Amazon Simple Storage Service (Amazon S3)

Amazon S3 はインターネットデータ用のリポジトリです。Amazon S3 により、信頼性に優れ、高速で、低コストのデータストレージインフラストラクチャが実現します。ウェブスケールのコンピューティングを簡単に行えるように設計されており、Amazon EC2 の内部やウェブ上のどこからでも、いつでも必要な量だけデータを格納および取得できます。Amazon S3 では、複数の施設にまたがる複数のデバイスにデータオブジェクトが冗長的に格納されるので、多数のさまざまなクライアントやアプリケーションスレッドからデータオブジェクトに対する読み込み/書き込みの同時アクセスが可能になります。Amazon S3 に格納された冗長データを使用すれば、インスタンスまたはアプリケーションの障害から迅速かつ確実に復旧できます。

Amazon EC2 は Amazon マシンイメージ (AMI) を格納するために Amazon S3 を使用します。AMI は EC2 インスタンスを起動するために使用します。インスタンスに障害が発生した場合は、格納済みの AMI を使用して別のインスタンスを即座に起動できるので、高速復旧と事業継続が可能になります。

Amazon EC2 はデータボリュームのスナップショット (バックアップコピー) の格納にも Amazon S3 を使用します。アプリケーションまたはシステムで障害が発生した場合、スナップショットを使用すれば、データをすばやく確実に回復できます。またスナップショットは、複数の新しいデータボリュームの作成、既存のデータボリュームのサイズ拡張、アベイラビリティーゾーン間でのデータボリュームの移動を行うためのベースラインとして使用することもできます。このような機能により、データの使い方を大幅に拡張できます。データボリュームとスナップショットの使用については、「Amazon Elastic Block Store」を参照してください。

オブジェクトは、Amazon S3 に格納される基本エンティティです。Amazon S3 に格納されるすべてのオブジェクトは、バケットに保管されます。バケットは Amazon S3 ネームスペースの最上位レベルを構成し、個々のストレージを所有するアカウントを識別します。Amazon S3 のバケットはインターネットのドメイン名に似ています。バケットに格納されたオブジェクトは一意のキー値を持ち、HTTP URL アドレスを使用して取得されます。たとえば、キー値 /photos/mygarden.jpg を持つオブジェクトが myawsbucket バケットに格納されている場合、このオブジェクトは URL http://myawsbucket.s3.amazonaws.com/photos/mygarden.jpg.

Amazon S3 の機能について詳しくは、Amazon S3 の製品ページを参照してください。

Amazon S3 と Amazon EC2

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

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

GET または wget

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

Copy
wget http://s3.amazonaws.com/my_bucket/my_folder/my_file.ext

この方法では、要求するオブジェクトがパブリックである必要があります。オブジェクトがパブリックではない場合、[ERROR 403: Forbidden] メッセージを受け取ります。このエラーを受け取った場合は、Amazon S3 コンソールを開き、オブジェクトのアクセス許可をパブリックに変更します。詳細については、Amazon Simple Storage Service 開発者ガイド を参照してください。

AWS コマンドラインインターフェイス

AWS コマンドラインインターフェイス (AWS CLI) は、AWS サービスを管理するための統合ツールです。ダウンロードおよび設定用の単一のツールのみを使用して、コマンドラインから複数の AWS サービスを制御し、スクリプトを使用してこれらを自動化することができます。AWS CLI を使用すると、ユーザーは自分自身を認証し、限定された項目を Amazon S3 からダウンロードしたり、項目をアップロードしたりできます。ツールのインストールおよび設定方法などの詳細については、AWS コマンドラインインターフェイスの詳細ページを参照してください。

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

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

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

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

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

オブジェクトを Amazon S3 の 1 つの場所から別の場所にコピーするには、次のコマンドを使用します。

Copy
$ aws s3 cp s3://my_bucket/my_folder/my_file.ext s3://my_bucket/my_folder/my_file2.ext

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

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

Copy
$ aws s3 sync s3://remote_S3_bucket local_directory

AWS Tools for Windows PowerShell

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

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

Copy
PS C:\> Copy-S3Object -BucketName my_bucket -Key my_folder/my_file.ext -LocalFile my_copied_file.ext

Amazon S3 API

開発者は API を使用して、Amazon S3 のデータにアクセスできます。詳細については、Amazon Simple Storage Service 開発者ガイド を参照してください。この API およびその例を使用すると、アプリケーションを開発し、boto Python インターフェイスなどのその他の API および SDK と統合するのに役立ちます。

このページの内容: