As part of my Cloud Computing learning journey, I recently explored Amazon Simple Storage Service (Amazon S3) and got hands-on experience working with cloud-based object storage.
This session helped me understand not only how files are stored in the cloud, but also how access, cost, lifecycle, and availability of those files can be managed.
What is Amazon S3?
Amazon S3 is an object storage service provided by AWS.
Instead of thinking about storage only in terms of traditional folders and disks, S3 mainly works with:
- Buckets — containers used to store data
- Objects — files and their associated metadata stored inside buckets
- Keys — identifiers used to locate objects inside a bucket
During the practical session, I created/worked with an S3 bucket and uploaded a file as an object.
📸 I have included a screenshot from my AWS S3 practical where I uploaded a file to the bucket.
1. S3 Buckets and Objects
A bucket acts as the main container for objects.
For example:
my-cloud-bucket
could contain objects such as:
images/profile.jpg
documents/report.pdf
website/index.html
This helped me understand how cloud object storage differs from the traditional file-storage approach.
2. Uploading Objects to S3
One of the hands-on parts of the session was uploading a file to an S3 bucket.
When uploading an object, different settings can be applied, including:
- Storage class
- Permissions
- Metadata
- Encryption-related settings
- Object management configurations
Working directly with the AWS console made these concepts much easier to understand.
3. S3 Storage Classes
Not every file needs the same type of storage.
AWS provides multiple S3 storage classes for different access patterns and cost requirements.
Some important examples include:
- S3 Standard
- S3 Intelligent-Tiering
- S3 Standard-IA
- S3 One Zone-IA
- S3 Glacier Instant Retrieval
- S3 Glacier Flexible Retrieval
- S3 Glacier Deep Archive
The main idea I learned is:
The way data is accessed should influence how it is stored.
Frequently accessed data and long-term archival data should not necessarily use the same storage strategy.
4. S3 Intelligent-Tiering
One concept I found particularly interesting was S3 Intelligent-Tiering.
It is designed for data whose access pattern is changing or difficult to predict.
Instead of manually deciding where every object should remain, S3 can monitor access patterns and automatically move eligible objects between different access tiers.
This can help optimize storage costs without requiring constant manual management.
5. Bucket Policies and Permissions
Storing data is only one part of cloud storage.
Controlling who can access that data is equally important.
I learned about S3 Bucket Policies, which can be used to define permissions for a bucket and its objects.
Bucket policies use JSON-based policy rules and can specify things such as:
- Who can access a resource
- Which actions are allowed
- Which resources the rule applies to
- Conditions under which access should be permitted or denied
This introduced me to an important cloud principle:
Access should be granted intentionally and with the minimum permissions required.
6. ACLs — Access Control Lists
We also discussed Access Control Lists (ACLs).
ACLs are another mechanism that can control access to S3 buckets and objects.
However, an important point from current AWS best practices is that ACLs are disabled by default for modern S3 buckets using the Bucket owner enforced setting.
For most modern use cases, access is better managed using IAM and bucket policies.
Learning both approaches is still useful because ACLs can appear in existing systems and specific use cases.
7. S3 Lifecycle Rules
Another useful concept was Lifecycle Configuration.
Lifecycle rules allow us to automatically manage objects as they become older.
For example, a lifecycle strategy could:
- Keep a new object in frequently accessed storage.
- Move it to a cheaper storage class later.
- Archive it when it is rarely needed.
- Eventually expire/delete it when it is no longer required.
This is especially important when managing large amounts of cloud data because storage decisions directly affect cost.
8. S3 Versioning
S3 Versioning allows multiple versions of an object to be retained.
For example, suppose I upload:
report.pdf
and later upload an updated file using the same object key.
With versioning enabled, S3 can preserve previous versions rather than simply losing the earlier copy.
This can be useful for recovering from:
- Accidental overwrites
- Unwanted changes
- Accidental deletion
Versioning showed me how cloud storage can provide an additional layer of data protection.
9. Static Website Hosting
Amazon S3 can also be used to host static website content.
Static websites usually consist of files such as:
- HTML
- CSS
- JavaScript
- Images
These files can be stored as objects and served to users.
However, S3 itself does not execute traditional server-side application logic such as PHP, Node.js server code, Django, or database-backed backend processing.
That leads to an important distinction.
Static vs Dynamic Websites
Static Website
Content is mainly delivered from pre-existing files.
Example:
HTML + CSS + JavaScript
Suitable examples include:
- Portfolio websites
- Documentation
- Landing pages
- Simple front-end applications
Dynamic Website
Content can be generated or changed by backend logic.
It may involve:
- Application servers
- APIs
- Databases
- Authentication
- Server-side processing
For a complete dynamic cloud application, S3 can still store static assets, while other cloud services handle the backend.
What I Learned From This Session
This session gave me a much clearer understanding of how cloud storage goes beyond simply uploading files.
I learned how Amazon S3 combines:
Storage + Access Control + Cost Optimization + Automation + Data Protection
The topics I explored included:
- Buckets and objects
- File uploads
- S3 storage classes
- Intelligent-Tiering
- Bucket policies
- Permissions and ACLs
- Lifecycle rules
- Versioning
- Static website hosting
- Static vs dynamic architectures
This was another step forward in understanding how real cloud infrastructure is designed and managed.
I am looking forward to exploring more cloud services and building increasingly practical cloud projects as I continue this journey.
Top comments (0)