

# Amazon EC2 インスタンスでの Amazon S3 の使用
<a name="AmazonS3"></a>

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

オブジェクトとは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 の仕組み](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html#CoreConcepts)」を参照してください。

## 使用例
<a name="S3UsageScenarios"></a>

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

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

------
#### [ wget ]

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

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

```
[ec2-user ~]$ wget https://amzn-s3-demo-bucket.s3.amazonaws.com/path-to-file
```

------
#### [ PowerShell ]

[AWS Tools for Windows PowerShell](https://aws.amazon.com/powershell/) を使用して、Amazon S3 との間でオブジェクトを移動できます。

次のように、[Copy-S3Object](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-S3Object.html) コマンドレットを使用して、Amazon S3 オブジェクトを Windows インスタンスにコピーします。

```
Copy-S3Object `
    -BucketName amzn-s3-demo-bucket `
    -Key path-to-file `
    -LocalFile my_copied_file.ext
```

あるいは、Windows インスタンスでウェブブラウザを使用して Amazon S3 コンソールを開くこともできます。

------
#### [ AWS CLI ]

AWS Command Line Interface (AWS CLI) を使用して Amazon S3 から制限された項目をダウンロードし、項目をアップロードすることもできます。ツールのインストールおよび設定方法などの詳細については[AWS Command Line Interface の詳細ページ](https://aws.amazon.com/cli/)を参照してください。

[aws s3 cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) コマンドは Unix **cp** コマンドと似ています。ファイルを Amazon S3 からインスタンスにコピーしたり、ファイルをインスタンスから Amazon S3 にコピーしたりできるほか、ファイルを Amazon S3 の 1 つの場所から別の場所にコピーすることもできます。

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

```
aws s3 cp s3://amzn-s3-demo-bucket/my_folder/my_file.ext my_copied_file.ext
```

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

```
aws s3 cp my_copied_file.ext s3://amzn-s3-demo-bucket/my_folder/my_file.ext
```

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

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

```
aws s3 sync s3://amzn-s3-demo-source-bucket local_directory
```

------
#### [ Amazon S3 API ]

デベロッパーは API を使用して、Amazon S3 のデータにアクセスできます。この API はアプリケーションの開発および、他の API および SDK との統合に役立てることができます。詳細については[「Amazon Simple Storage Service API リファレンス」の「 SDK を使用した Amazon S3 のコード例AWSSDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/service_code_examples.html)」を参照してください。 **

------