What is Amazon S3
S3 Stands for Simple Storage Service. It’s storage for the internet; it is made to scale up for web computing. You can store and retrieve any amount of data through the web (by any means, computer, mobile, tablet, or any other device)
It’s fast, reliable, highly scalable, and inexpensive data storage.
Creating a bucket
What is Bucket?
In the Bucket we store the objects, so we can say it’s a container for objects.
Suppose you created a bucket name as pitcllc and saved the company_logo.jpg. The region where you created the bucket is US East (Ohio)us-east-2, then the S3 object URL to access this logo will be https://pitcllc.s3.us-east-2.amazonaws.com/company_logo.jpg
What is Objects?
It’s the fundamental entity for S3 storage. Objects have data and metadata.
Metadata is name-value pair which describe the object. You can get information about the last modified data, standard HTTP metadata like content-type.
Each object in the bucket uniquely identified by key (name) and a version ID.
What is key?
It’s a unique identifier for the object in the bucket.
So for each object a unique ID will be generated which will be like the combination of Bucket + Key + Version.
Rules of Bucket Naming:
• Bucket names must be between 3 and 63 characters long.
• Bucket names can consist only of lowercase letters, numbers, dots (.), and hyphens (-).
• Bucket names must begin and end with a letter or number.
• Bucket names must not be formatted as an IP address (for example, 192.168.5.4).
• Bucket names must be unique within a partition. A partition is a grouping of Regions. AWS currently has three partitions: aws (Standard Regions), aws-cn (China Regions), and aws-us-gov (AWS GovCloud [US] Regions).
• Buckets used with Amazon S3 Transfer Acceleration can’t have dots (.) in their names.
What are the different way to create bucket?
- AWS S3 Console
- AWS SDK for Java
- AWS SDK for .NET
- AWS SDK for Ruby Version 3
- AWS SDKs
Can I create bucket in different Regions?
Yes you can choose different geographical AWS Regions.
How many buckets I can create in my account?
By default you can create 100 buckets per AWS account.
What if I need more than 100 buckets?
You can request to AWS by service limit increase. Maximum limit is 1,000.
Bucket Policies
Bucket policies provide centralized access control to buckets and there objects.
You can write policies for different conditions.
How to control access bucket and objects?
With the Access control lists we can control the access of each of your buckets and objects.
Operations on S3
Uploading an Objects
View the objects
Copying the objects
Deleting Objects
Emptying Bucket
Deleting Bucket
Versioning
With versioning, you can keep multiple versions of an object in the bucket. It also helps you to get back overwritten or deleted files back.
Amazon recommends having versioning in the bucket as best practice.
ACLs
With ACLs, you can grant public access to the buckets and the objects. The same you can do with the bucket policies. By default the public access on the bucket is blocked, you can make the bucket public so that anyone can access the bucket and its objects.
CORS: Cross-origin resource sharing
Multipart Upload
S3 Transfer Acceleration
Snowball
Snowmobile
Costs
Storage Classes
S3 STANDARD – Its general-purpose storage for frequently accessed data
S3 STANDARD_IA – It is used for long-lived data and for frequently accessed data.
S3 Glacier- It is used for long-term archives.
You can use some of the services below which works with Amazon S3
- Amaxon Elastic Compute Cloud (EC2)
- Amaxon EMR
- AWS Snowball
Can I transfer my bucket to someone else?
No, the Bucket ownership is not transferable.
I want to rename a Bucket, how to do that?
You can’t rename a bucket once it is created or even region change is also not possible.
Can I create a bucket inside a bucket?
No, it is not possible.