AWS 101: Why Should I be Using Amazon S3?
Welcome back to AWS 101, cloud scholars. If you’re reading this, you’re likely examining a move to the AWS cloud and want to learn more about what it is, how it works and what it can do for you. This ongoing series answers those questions.
In our previous blog, we covered the question,“How does Amazon EC2 work?” and discussed the nuances of cloud migration using this AWS service. In this next installment of AWS 101, we’re going to examine cloud storage and a specific Amazon Web Services component — Amazon Simple Storage Service, or Amazon S3.
You’re probably wondering why you need to know about it. It’s a pretty important part of a solid AWS cloud environment, so read on to learn why.
What is Amazon S3?
Amazon S3 provides object (file) storage through a web interface. It’s built to store, protect and retrieve data from “buckets” at any time from anywhere on any device. As AWS describes it, an S3 environment is a flat structure. A user creates a bucket, and the bucket stores objects in the cloud.
Organizations of any size in any industry can use this service. Use cases include websites, mobile apps, archiving, data backups and restorations, IoT devices, and enterprise apps to name just a few.
How Does Amazon S3 Work?
Organizing, storing and retrieving data in Amazon S3 focuses on two main things — buckets and objects that work together to create your storage system.
Amazon S3 Objects
As mentioned above, in Amazon S3 terms, an object is a data file, or as AWS calls them, “fundamental entities stored in Amazon S3.” These could be documents, photos, videos and more. Objects can be any file type.
Each object is identified by a unique key that identifies it within the S3 environment and differentiates it from other stored objects. Maximum object file size is 160 GB for uploading, however there are various AWS tools to assist you in adding files larger than this.
Amazon S3 Buckets
These objects need a place to hang out in an S3 environment. That’s where buckets come in. A bucket is the fundamental storage container for objects. You upload multiple objects to a bucket using the Amazon S3 API. AWS allows you to create up to 100 buckets in each of your AWS cloud accounts. You can request more buckets, up to a maximum quota of 1,000, by submitting a service limit increase. There is no limit on the number of objects you can store in a bucket.
When you create a bucket, you choose the AWS region where it will be stored. If you’re looking to minimize costs or address latency concerns, choose one that’s the closest to you geographically. Objects that live in a bucket within a specific region remain in that region unless you transfer those files.
It’s also important to know that Amazon S3 buckets are globally unique. No other AWS account in the same region can have the same bucket names as yours until you delete those buckets.
Amazon S3 Console
You can easily manage objects and buckets with the Amazon S3 Console inside the AWS Management Console. The console is an intuitive, browser-based graphical user interface for interacting with AWS services.
This is where you can create, configure and manage a bucket and upload, download and manage storage objects.
The Amazon S3 console allows you to organize your storage using a logical hierarchy driven by keyword prefixes and delimiters. These form a folder structure within the console so you can easily locate files. It works because every Amazon S3 object can be uniquely addressed through the combination of the web service endpoint, bucket name, key, and optionally, a version.
The management console is also where you can set access permissions for all of your buckets and objects.
What are the Advantages of Amazon S3?
If you’re looking for secure storage that’s simple and robust, Amazon S3 is for you. AWS has built this tool with a minimal features set that delivers big advantages. Here’s a look at some of them
Often, storage providers offer predetermined amounts of storage and network transfer capacity, similar to what some cell phone or cable providers do with data and bandwidth usage.
If you stay within your limits, you’ll pay a flat rate even if you don’t use all of your capacity. If you exceed your limit, the provider will charge pricey overage fees or get your service shut off until the next billing cycle begins.
Amazon S3 charges you only for what you actually use. There are no hidden fees or overage charges. This service allows you to scale your storage resources up and down so that you can meet fluctuating demands when you need them.
Durability and Accessibility
According to AWS, Amazon S3 is “designed for 99.999999999% (11 9's) of durability and stores data for millions of applications for companies all around the world.” The service automatically creates and stores your S3 objects across multiple systems. This means you can access your data quickly when you need it. It’s also protected against failures.
As AWS notes, “If you store 10,000,000 objects with Amazon S3, you can on average expect to incur a loss of a single object once every 10,000 years.”
When you use Amazon S3, you can store your data in a range of “storage classes” based on how frequently and immediately you need to access those files.
These range from the most expensive level where you access your mission-critical files immediately to the lowest cost level, which is for files you rarely (or never) touch but need to keep on hand for regulatory or other long-term needs.
We’ll dive deeper into storage classes in another installment of AWS 101, but it’s also good to know that AWS gives you the tools to monitor your objects and determine if they should be moved to a less expensive storage class. You can use this information to create what’s called a “lifecycle policy” that can make data transfer automatically when policy terms are met. These policies also can expire items at the end of their life cycles.
AWS also offers S3 Intelligent Tiering that will automatically move your data from higher-priced storage classes to lower ones based on your ongoing access patterns.
While not enabled by default, versioning allows for multiple variants of a file/object to exist in the same bucket. This provides an opportunity to rollback or recover if an object is deleted. In addition, if an object expiration lifecycle policy is enabled, S3 will manage the removal of non-current versions of an object.
Data stored in your AWS S3 environment is protected from unauthorized access thanks to encryption features and access management tools. This includes blocking all public access from all of your objects, not just at the bucket level but also at the account level.
Within your organization, by default, your users have access only to the S3 buckets and objects they create. You can use a variety of AWS security management features to change and customize access permissions. Multi-factor authentication (MFA) can also be utilized in order to allow users to permanently delete an object version or to modify the versioning state of a bucket.
AWS also offers tools that allow you to analyze your bucket access policies to quickly find and fix any discrepancies that allow unauthorized use and unintended access.
Why Should I Consider Using Amazon S3?
Still not sure if Amazon S3 is right for your organization? Ask yourself these questions:
- Do I have large amounts of data that I need to store?
- Am I tired of paying large, flat-rate fees for data storage?
- Do I want a cloud storage solution that grows up or down with me and gives me instant access to my most critical files?
- Do I want encrypted, secure file uploads and downloads?
If you answer, “Yes,” to any of these questions, it’s worth exploring what Amazon S3 can do for your data storage goals. It provides solutions to all of these questions and reaches well beyond these basic storage needs. Stay tuned for a deeper look at this service, as well as other key services in future installments of AWS 101. Thanks for reading!