Skip to main content

Command Palette

Search for a command to run...

AWS Storage Services Explained: S3, EBS, EFS, Glacier, Snow Family and Storage Gateway

When you start learning AWS, storage can feel confusing at first because AWS does not give you just one type of storage. It gives you multiple storage services, and each one is designed for a different use case. In this post, I am breaking down the core AWS storage services in a simple way: S3, EBS, EFS, Glacier, Snow Family, and Storage Gateway.

Updated
3 min readView as Markdown
AWS Storage Services Explained: S3, EBS, EFS, Glacier, Snow Family and Storage Gateway
S
Passionate about Cloud and DevOps engineering. I write structured technical notes and beginner-friendly articles on AWS, Linux, CI/CD, networking, system architecture and modern software delivery workflows.

1. Amazon S3: Object Storage

Amazon S3 stands for Simple Storage Service. It is an object storage service used to store and retrieve files.

A few basic concepts from the notes:

  • Bucket: like a folder that contains files

  • Objects: the actual files stored inside the bucket

  • It is used for uploading, downloading, and accessing data

  • It is scalable and suitable for storing many kinds of files

S3 is one of the most widely used AWS services because it is simple, durable, and flexible for storing data in the cloud.

2. Amazon EBS: Block Storage

Amazon EBS stands for Elastic Block Storage. It is used with EC2 instances as storage attached to a virtual machine.

Key points:

  • EBS is block storage

  • It is attached to an EC2 instance

  • A root volume usually contains the operating system

  • Additional volumes can also be attached for extra storage

  • It is useful when you need persistent storage for an instance

Think of EBS as storage that behaves more like a hard disk for your server.

3. Amazon EFS: File Storage

Amazon EFS stands for Elastic File System. It is a file-based storage service.

From the notes:

  • It is a file system

  • Multiple EC2 instances can access the same file storage

  • It is useful when shared storage is needed

  • It works well in a distributed environment

EFS is helpful when many servers need to read and write the same files together.

4. AWS Glacier: Archival Storage

AWS Glacier is used for archiving large amounts of data.

It is not meant for frequent access like S3 standard storage. Instead, it is best for data that you want to keep for a long time at low cost.

Use cases include:

  • Backup data

  • Old records

  • Compliance archives

  • Long-term storage

If S3 is for active storage, Glacier is for cold storage and archiving.

5. AWS Snow Family: Physical Data Transfer

The Snow Family includes services like Snowcone, Snowball, and Snowmobile.

These are used when you need to transfer large amounts of data physically instead of over the internet.

From the notes:

Snowcone Snowball Snowmobile

These services are useful when:

Internet transfer is too slow Data volume is very large You need to move data securely to AWS

This is AWS’s answer to large-scale offline data transfer.

6. AWS Storage Gateway

AWS Storage Gateway is used to connect on-premises storage with AWS cloud storage.

It helps create a hybrid storage configuration, where part of the data is stored locally and part in the cloud.

This is useful when organizations want:

Local access speed Cloud backup Smooth migration to AWS Hybrid architecture

It acts as a bridge between local infrastructure and AWS storage.

7. Quick Comparison

Service Type Scope Key Feature
S3 Object Regional Unlimited, serverless, static hosting
EBS Block Single AZ Attach to EC2; root + additional vols
EFS File (NFS) Multi-AZ Shared across multiple EC2 instances
FSx File Multi-AZ Shared storage for Windows instances
Snow Family Physical On-premises Offline transfer (Snowcone/Edge/Mobile)
Glacier Object (cold) Regional Archive; infrequent access, low cost
Storage Gateway Hybrid On-prem+Cloud Bridges on-premises servers to AWS.

More from this blog

Stop Writing Repetitive Playbooks: Ansible Tags, Variables, Loops, Handlers and Conditions Decoded

Once you have written your first few Ansible playbooks, installed some packages, and started a couple of services, a natural question comes up: what else can Ansible do? The answer is quite a lot. This article walks through six features that turn a basic Ansible setup into something genuinely powerful: the Setup module, Tags, Variables, Loops, Handlers, and Conditional tasks. Each one builds on what you already know, and together they give you the tools to manage complex, real-world server environments cleanly and efficiently. Before going further, the environment being used here has one Ansible master and multiple worker nodes. Two are grouped as prod and two as dev inside /etc/ansible/hosts. SSH key-based authentication is already configured between the master and all worker nodes. If any of that is not set up yet, revisit passwordless SSH setup and inventory configuration before continuing.

Jun 21, 202615 min read
Stop Writing Repetitive Playbooks: Ansible Tags, Variables, Loops, Handlers and Conditions Decoded

Ansible Playbooks Explained: From First YAML File to Managing Real Servers

If you have already run a few Ansible ad hoc commands and seen how they work, you already understand the core idea: one command, many servers. But ad hoc commands only take you so far. When you need to install software, start services, create users, copy files, and print confirmation messages, all in one automated run across multiple servers, that is when you move to playbooks. Playbooks are where Ansible truly earns its place in a DevOps workflow. Everything you do in Ansible at scale, you do through playbooks.

Jun 19, 202613 min read
Ansible Playbooks Explained: From First YAML File to Managing Real Servers

You Have 400 Servers to Configure. Now What? Let Ansible Do the Work.

Picture this. You have four EC2 instances running in your AWS account, and someone asks you to install Apache on all four of them. What do you do? The obvious answer most people go with is SSH into each machine, run the install command, repeat. Simple enough when it is four servers. But what happens when it is forty? Or four hundred? In a real enterprise environment, that number is not exaggerated at all. That is exactly the problem that Ansible was built to solve. And once you understand what it does and how it thinks, you will wonder how anyone managed large infrastructure without it.

Jun 18, 202612 min read
You Have 400 Servers to Configure. Now What? Let Ansible Do the Work.

Building Production-Ready Docker Deployments with Secrets, Stacks, and Distroless Images

This post wraps up the core Docker Swarm curriculum by covering four important topics that complete the picture of production-ready containerized deployments. We start with Docker Secrets, which solves the real-world problem of passing sensitive credentials into containers without hardcoding them. We then look at Docker Stack, which is how you run multi-service Docker Compose files across a Swarm cluster instead of a single host. After that we cover the distinction between replicated and global services, which is a concept that appears in Kubernetes as well. We close with a look at Portainer for those who prefer a visual interface, and a brief introduction to distroless images. Each of these topics builds on everything covered so far. If you have your Swarm cluster running, you can follow along with every command shown here.

Jun 17, 202614 min read
Building Production-Ready Docker Deployments with Secrets, Stacks, and Distroless Images

Beyond One Server: Solving Docker Scaling with Swarm and Container Networks

This post covers three separate but deeply connected topics. We start by finishing what was started with Docker Hub, pushing all four bank service images to a remote registry so they survive beyond any single machine. From there, we identify a real architectural problem with single-host Docker deployments and introduce Docker Swarm as the solution. Finally, we close with Docker networking, explaining how containers communicate with each other both on the same host and across different hosts. By the end of this article, you will understand how to push and pull images from Docker Hub, how to set up a multi-node Docker Swarm cluster, how to create and scale services across that cluster, what self-healing means in practice, and how Docker networking works under the hood.

Jun 17, 202618 min read
Beyond One Server: Solving Docker Scaling with Swarm and Container Networks
S

Sai Praneeth's Blogs

38 posts

From SDLC and Agile to DevOps and CI/CD, this blog is where I share structured technical notes, concepts and practical insights in Cloud and DevOps engineering.