

# オブジェクトのストレージクラスを設定
<a name="sc-howtoset"></a>

オブジェクトをアップロードするときに、そのオブジェクトのストレージクラスを指定できます。そうでない場合は、Amazon S3 は汎用バケットのオブジェクトにデフォルトの Amazon S3 Standard ストレージクラスを使用します。Amazon S3 汎用バケットに既に保存されているオブジェクトのストレージクラスを、Amazon S3 コンソール、AWS SDK、AWS Command Line Interface (AWS CLI) を使用して他のストレージクラスに変更することもできます。これらのアプローチはすべて、Amazon S3 API オペレーションを使用して Amazon S3 にリクエストを送信します。

**注記**  
ディレクトリバケットに保存されているオブジェクトのストレージクラスを変更することはできません。

バケットに S3 ライフサイクル設定を追加すると、Amazon S3 がオブジェクトのストレージクラスを自動的に変更します。詳細については、「[オブジェクトのライフサイクルの管理](object-lifecycle-mgmt.md)」を参照してください。

S3 レプリケーションを設定する場合、レプリケートされたオブジェクトのストレージクラスを別のストレージクラスに設定できます。ただし、S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive ストレージクラスに保存されているオブジェクトをレプリケートすることはできません。詳細については、「[レプリケーション設定ファイル要素](replication-add-config.md)」を参照してください。

ストレージクラスをプログラムで設定する場合、ストレージクラスの値を指定します。以下は、ストレージクラスのコンソール名と対応する API 値のリストです。
+ **低冗長ストレージ** – `REDUCED_REDUNDANCY`
+ **S3 Express One Zone** – `EXPRESS_ONEZONE`
+ **S3 Glacier Deep Archive** – `DEEP_ARCHIVE`
+ **S3 Glacier Flexible Retrieval** – `GLACIER`
+ **S3 Glacier Instant Retrieval** – `GLACIER_IR`
+ **S3 Intelligent-Tiering** – `INTELLIGENT_TIERING`
+ **S3 One Zone-IA** – `ONEZONE_IA`
+ **S3 Standard** – `STANDARD`
+ **S3 Standard-IA** – `STANDARD_IA`

## 新しいオブジェクトのストレージクラスを設定
<a name="setting-storage-class"></a>

オブジェクトをアップロードするときにストレージクラスを設定するには、次の方法を使用できます。

### S3 コンソールの使用
<a name="setting-storage-class-console"></a>

コンソールで新しいオブジェクトをアップロードするときにストレージクラスを設定するには

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com//s3)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1. バケットリストで、フォルダやファイルのアップロード先のバケットの名前を選択します。

1. [**Upload (アップロード)**] を選択します。

1. **[アップロード]** ウィンドウで、**[プロパティ]** を選択します。

1. [ストレージクラス] で、アップロードするファイルのストレージクラスを選択します。

1. (オプション) アップロードするファイルの追加のプロパティを設定します。詳細については、「[オブジェクトのアップロード](upload-objects.md)」を参照してください。

1. [Upload] (アップロード) ウィンドウで、次のいずれかの操作を行います。
   + ファイルとフォルダを [アップロード] ウィンドウにドラッグします。
   + **[ファイルの追加]** または **[フォルダの追加]** を選択し、アップロードするファイルまたはフォルダを選択して **[開く]** を選択します。

1. ページの最下部で **[アップロード]** をクリックします。

### REST API の使用
<a name="setting-storage-class-rest"></a>

`PutObject`、`POST Object` オブジェクト、および `CreateMultipartUpload` API オペレーションを使用してオブジェクトを作成するときに、オブジェクトのストレージクラスを指定し、`x-amz-storage-class` リクエストヘッダーを追加できます。このヘッダーを追加しない場合は、Amazon S3 では、デフォルトのストレージクラスである S3 Standard (`STANDARD`) を使用します。

このリクエスト例では、`[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` コマンドを使用して新しいオブジェクトのストレージクラスを S3 Intelligent-Tiering に設定します。

```
PUT /my-image.jpg HTTP/1.1
Host: amzn-s3-demo-bucket1.s3.Region.amazonaws.com 
Date: Wed, 12 Oct 2009 17:50:00 GMT 
Authorization: authorization string 
Content-Type: image/jpeg 
Content-Length: 11434 
Expect: 100-continue 
x-amz-storage-class: INTELLIGENT_TIERING
```

### の使用AWS CLI
<a name="setting-storage-class-rest"></a>

この例では、`put-object` コマンドを使用して、`GLACIER `ストレージクラスの *my\$1images.tar.bz2* を **amzn-s3-demo-bucket1** にアップロードします。

```
aws s3api put-object --bucket amzn-s3-demo-bucket1 --key dir-1/my_images.tar.bz2 --storage-class GLACIER --body my_images.tar.bz2
```

オブジェクトサイズが 5 GB を超える場合は、次のコマンドを使用してストレージクラスを設定します。

```
aws s3 cp large_test_file s3://amzn-s3-demo-bucket1 --storage-class GLACIER
```

## 既存のオブジェクトのストレージクラスの変更
<a name="changing-storage-class"></a>

オブジェクトをアップロードするときにストレージクラスを設定するには、次の方法を使用します。

### S3 コンソールの使用
<a name="changing-storage-class-console"></a>

オブジェクトのサイズが 5 GB 未満の場合は、Amazon S3 コンソールを使用してオブジェクトのストレージクラスを変更できます。それ以上大きい場合は、S3 Lifecycle の設定を追加すると、オブジェクトのストレージクラスを変更できます。

コンソールでオブジェクトのストレージクラスを変更するには

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** を選択します。

1.  バケットリストで、変更するオブジェクトが含まれるバケットの名前を選択します。

1. 変更するオブジェクトの名前の左にあるチェックボックスをオンにします。

1. **[アクション]** メニューに表示されるオプションのリストから **[ストレージクラスの編集]** を選択します。

1. オブジェクトで使用できるストレージクラスから選択します。

1. **[追加のコピー設定]** で、**[ソース設定をコピー]** するか、**[設定を指定しない]** か、**[設定を指定]** するかを選択します。**[ソース設定をコピー]** がデフォルトのオプションです。ソース設定の属性なしでオブジェクトのみをコピーする場合は、**[設定を指定しない]** を選択します。ストレージクラス、ACL、オブジェクトタグ、メタデータ、サーバー側の暗号化、その他のチェックサムの設定を指定するには、**[設定を指定]** を選択します。

1. 右下の **[変更の保存]** を選択します。Amazon S3 は変更を保存します。

### REST API の使用
<a name="changing-storage-class-rest"></a>

既存のオブジェクトのストレージクラスを変更するには、次の方法を使用します。

このリクエスト例では、`[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)` コマンドを使用して既存のオブジェクトのストレージクラスを S3 Intelligent-Tiering に設定します。

```
PUT /my-image.jpg HTTP/1.1
Host: amzn-s3-demo-bucket1.s3.Region.amazonaws.com 
Date: Wed, 12 Oct 2009 17:50:00 GMT 
Authorization: authorization string 
Content-Type: image/jpeg 
Content-Length: 11434 
Expect: 100-continue 
x-amz-storage-class: INTELLIGENT_TIERING
```

### の使用AWS CLI
<a name="setting-storage-class-rest"></a>

この例では、`cp` コマンドを使用して、既存のオブジェクトのストレージクラスを現在のストレージクラスから `DEEP_ARCHIVE ` ストレージクラスに変更します。

```
aws s3 cp object_S3_URI object_S3_URI --storage-class DEEP_ARCHIVE
```

## アクセスポリシーのアクセス許可を特定のストレージクラスに制限する
<a name="restricting-storage-class"></a>

Amazon S3 オペレーションのアクセスポリシーアクセス許可を付与する場合、`s3:x-amz-storage-class` 条件キーを使用して、アップロードされたオブジェクトを保存するときに使用するストレージクラスを制限できます。例えば、`s3:PutObject` アクセス許可を付与すると、オブジェクトのアップロードを特定のストレージクラスに制限できます。ポリシーの例については「[例: オブジェクトのアップロードを特定のストレージクラスのオブジェクトに制限する](security_iam_service-with-iam.md#example-storage-class-condition-key)」を参照してください。

ポリシーでの条件の使用方法および Amazon S3 条件キーの完全なリストについては、以下のトピックを参照してください。
+ 「サービス認可リファレンス」の「[Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)」を参照してください。**

  S3 リソースタイプ別の S3 API オペレーションへのアクセス許可の詳細については、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。
+ [条件キーを使用したバケットポリシーの例](amazon-s3-policy-keys.md)