Introduction to Amazon S3

Topics

This introduction to Amazon S3 provides a high-level overview of this web service. After reading this section, you should understand the basics you need to work through the examples in this guide.

Overview of Amazon S3

Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.

Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites. The service aims to maximize benefits of scale and to pass those benefits on to developers.

Features

Amazon S3 provides the following major features:

Features

  • Scalable—Amazon S3 can scale in terms of storage, request rate, and users to support an unlimited number of web-scale applications.

    It uses scale as an advantage: Adding nodes to the system increases, not decreases, its availability, speed, throughput, capacity, and robustness.

  • Reliable—Store data durably.

    There can be no single points of failure. All failures must be tolerated or repaired by the system without any downtime.

  • Fast—Amazon S3 must be fast enough to support high-performance applications.

    Server-side latency must be insignificant relative to Internet latency. Any performance bottlenecks can be fixed by simply adding nodes to the system.

  • Inexpensive—Amazon S3 is built from inexpensive commodity hardware components.

    As a result, frequent node failure is the norm and must not affect the overall system. It must be hardware-agnostic, so that savings can be captured as Amazon continues to drive down infrastructure costs.

  • Simple—Building highly scalable, reliable, fast, and inexpensive storage is difficult.

    Doing so in a way that makes it easy to use for any application anywhere is more difficult. Amazon S3 must do both.

  • Flexible—Amazon S3 supports location constraints, which allow you to specify where to store data (e.g., EU) based on your organization's latency and other requirements.

Key Amazon S3 Concepts

This section describes key Amazon S3 concepts.

Objects

Objects are the fundamental entities stored in Amazon S3. Objects consist of object data and metadata and can be from 1 byte to 5 gigabytes in size. The data portion is opaque to Amazon S3. The metadata is a set of name-value pairs that describe the object. In addition, there are some standard HTTP metadata entries such as Content-Type. The developer can also specify custom metadata when the object is stored.

Buckets

Objects are stored in buckets. The bucket provides a unique namespace for management of objects contained in the bucket. Each bucket you create is owned by you and is used for billing. You are charged storage fees for all objects stored in the bucket and bandwidth fees for all data read from and written to the bucket. There is no limit to the number of objects that you can store in a bucket. Since the namespace for bucket names is global, each developer is limited to owning 100 buckets at a time.

Keys

A key is the unique identifier for an object within a bucket. Every object in a bucket has exactly one key. Because a combined bucket and key uniquely identify each object, you can consider Amazon S3 a basic data map between "bucket + key" and the object itself. Every object in Amazon S3 can be uniquely addressed through the combination of the service endpoint, bucket name, and key. For example, in http://doc.s3.amazonaws.com/2006-03-01/AmazonS3.wsdl, "doc" is the name of the bucket and "2006-03-01/AmazonS3.wsdl" is the key.

Overview of Examples

This guide walks you through the process of using Amazon S3. Through this tutorial, you will:

  • Create a bucket

  • Store data

  • Read data

  • Delete data

  • List objects