Using S3 Intelligent-Tiering - Amazon Simple Storage Service

Using S3 Intelligent-Tiering

You can use the S3 Intelligent-Tiering storage class to automatically optimize storage costs. S3 Intelligent-Tiering delivers automatic cost savings by moving data on a granular object level between access tiers when access patterns change. For data that can be accessed asynchronously, you can choose to enable automatic archiving within the S3 Intelligent-Tiering storage class using the AWS Management Console, AWS CLI, or Amazon S3 API.

Moving data to S3 Intelligent-Tiering

There are two ways to move data into S3 Intelligent-Tiering. You can upload objects directly into S3 Intelligent-Tiering from the console or programmatically using a PUT operation. For more information, see Setting the storage class of an object. You can also configure S3 Lifecycle configurations to transition objects from S3 Standard or S3 Standard-Infrequent Access to S3 Intelligent-Tiering.

Uploading data to S3 Intelligent-Tiering using Direct PUT

When you upload an object to the S3 Intelligent-Tiering storage class using the PUT API operation, you specify S3 Intelligent-Tiering in the x-amz-storage-class request header.

The following request stores the image, my-image.jpg, in the myBucket bucket. The request uses the x-amz-storage-class header to request that the object is stored using the S3 Intelligent-Tiering storage class.

PUT /my-image.jpg HTTP/1.1 Host: myBucket.s3.<Region>.amazonaws.com (http://amazonaws.com/) Date: Wed, 1 Sep 2021 17:50:00 GMT Authorization: authorization string Content-Type: image/jpeg Content-Length: 11434 Expect: 100-continue x-amz-storage-class: INTELLIGENT_TIERING

Transitioning data to S3 Intelligent-Tiering from S3 Standard or S3 Standard-Infrequent Access using S3 Lifecycle

You can add rules to an S3 Lifecycle configuration to tell Amazon S3 to transition objects from one storage class to another. For information on supported transitions and related constraints, see Transitioning objects using S3 Lifecycle.

You can specify S3 Lifecycle configurations at the bucket or prefix level. In this S3 Lifecycle configuration rule, the filter specifies a key prefix (documents/). Therefore, the rule applies to objects with key name prefix documents/, such as documents/doc1.txt and documents/doc2.txt. The rule specifies a Transition action directing Amazon S3 to transition objects to the S3 Intelligent-Tiering storage class 0 days after creation. In this case, objects are eligible for transition to S3 Intelligent-Tiering at midnight UTC following creation.

<LifecycleConfiguration> <Rule> <ID>ExampleRule</ID> <Filter> <Prefix>documents/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>0</Days> <StorageClass>INTELLIGENT_TIERING</StorageClass> </Transition> </Rule> </LifecycleConfiguration>

A versioning-enabled bucket maintains one current object version, and zero or more noncurrent object versions. You can define separate Lifecycle rules for current and noncurrent object versions.

For more information, see Lifecycle configuration elements.

Enabling S3 Intelligent-Tiering Archive Access and Deep Archive Access tiers

To get the lowest storage cost on data that can be accessed in minutes to hours, you can activate one or both of the archive access tiers by creating a bucket, prefix, or object tag level configuration using the AWS Management Console, AWS CLI, or Amazon S3 API.

To enable S3 Intelligent-Tiering automatic archiving
  1. Sign in to the AWS Management Console and open the Amazon S3 console at https://console.aws.amazon.com/s3/.

  2. In the Buckets list, choose the name of the bucket that you want.

  3. Choose Properties.

  4. Navigate to the S3 Intelligent-Tiering Archive configurations section and choose Create configuration.

  5. In the Archive configuration settings section, specify a descriptive configuration name for your S3 Intelligent-Tiering Archive configuration.

  6. Under Choose a configuration scope, choose a configuration scope to use. Optionally, you can limit the configuration scope to specified objects within a bucket using a shared prefix, object tag, or combination of the two.

    1. To limit the scope of the configuration, select Limit the scope of this configuration using one or more filters.

    2. To limit the scope of the configuration using a single prefix, enter the prefix under Prefix.

    3. To limit the scope of the configuration using object tags, select Add tag and enter a value for Key.

  7. Under Status, select Enable.

  8. In the Archive settings section, select one or both of the Archive Access tiers to enable.

  9. Choose Create.

You can use the following AWS CLI commands to manage S3 Intelligent-Tiering configurations:

For instructions on setting up the AWS CLI, see Developing with Amazon S3 using the AWS CLI in the Amazon S3 API Reference.

When using the AWS CLI, you cannot specify the configuration as an XML file. You must specify the JSON instead. The following is an example XML S3 Intelligent-Tiering configuration and equivalent JSON that you can specify in an AWS CLI command.

The following example puts an S3 Intelligent-Tiering configuration to the specified bucket.

Example put-bucket-intelligent-tiering-configuration
JSON
{ "Id": "string", "Filter": { "Prefix": "string", "Tag": { "Key": "string", "Value": "string" }, "And": { "Prefix": "string", "Tags": [ { "Key": "string", "Value": "string" } ... ] } }, "Status": "Enabled"|"Disabled", "Tierings": [ { "Days": integer, "AccessTier": "ARCHIVE_ACCESS"|"DEEP_ARCHIVE_ACCESS" } ... ] }
XML
PUT /?intelligent-tiering&id=Id HTTP/1.1 Host: Bucket.s3.amazonaws.com <?xml version="1.0" encoding="UTF-8"?> <IntelligentTieringConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Id>string</Id> <Filter> <And> <Prefix>string</Prefix> <Tag> <Key>string</Key> <Value>string</Value> </Tag> ... </And> <Prefix>string</Prefix> <Tag> <Key>string</Key> <Value>string</Value> </Tag> </Filter> <Status>string</Status> <Tiering> <AccessTier>string</AccessTier> <Days>integer</Days> </Tiering> ... </IntelligentTieringConfiguration>

You can use the PutBucketIntelligentTieringConfiguration operation for a specified bucket and up to 1,000 S3 Intelligent-Tiering configurations per bucket. You can define which objects within a bucket are eligible for the archive access tiers using a shared prefix or object tag. Using a shared prefix or object tag allows you to align to specific business applications, workflows, or internal organizations. You also have the flexibility to activate the Archive Access tier, the Deep Archive Access tier, or both.

Getting started with S3 Intelligent-Tiering

To learn more about how to use S3 Intelligent-Tiering, see Tutorial: Getting started using S3 Intelligent-Tiering.