Skip to content

S3 as the FTP of the Cloud

A closer look at AWS S3 and object storage as the cloud standard. Comparing cloud-hosted and self-hosted solutions for your workloads.

October 28, 2024

published

5 min

reading time

In this article, we take a closer look at AWS S3, also known as object storage, and how it has become practically the standard for cloud storage. We also look at cloud-hosted and self-hosted solutions.

What Is S3

S3, or Simple Storage Service, is a cloud storage (or object storage) service from Amazon (AWS) that allows you to store and manage an unlimited amount of data (objects) using a very simple API.

The storage unit is called a “bucket,” into which you can upload files (objects).

Thanks to a standardized API and SDKs for virtually every programming language, S3 is very easy to use and integrate.

S3 also offers many additional features, such as:

  • data encryption
  • versioning – similar to Git, S3 stores all versions of files
  • lifecycle management – automatic moving of files to different storage classes, deletion of old files or versions
  • storage classes – different types of storage with varying prices and availability

The Origins of S3

S3 was created at Amazon in 2006. As Amazon grew and needed more and more infrastructure, they internally built various tools, APIs, and services that made it easier to work with infrastructure (hardware) and data. At the same time, they realized that such solutions could be useful for other companies too, and that’s how AWS – Amazon Web Services – was born.

S3 was one of the first services Amazon offered and it was the very first cloud storage service.

Thanks to high S3 limits (max 5 TB per object and max 5 GB per upload request, otherwise uploads must be split via multipart upload), availability, simple API, pricing, and above all enormous reliability (AWS now guarantees 99.999999999% reliability), S3 quickly became extremely popular.

Additionally, AWS released SDKs (Software Development Kits) for many languages, which also greatly facilitated and helped S3 adoption.

Object Storage FTW!

Object storage is the umbrella term for all the various implementations of cloud storage.

Over time, all cloud providers, as well as self-hosted projects, started implementing their own object storage solutions.

So today we have the following options:

NameAPIInfrastructure
AWS S3S3Cloud
GCP Cloud Storage1proprietary + S3Cloud
Azure Blob Storage1proprietary + S3Cloud
Cloudflare R2S3Cloud
Digital Ocean SpacesS3Cloud
Hetzner Object Storage2S3Cloud
Ceph Object GatewayS3Self-hosted
OpenStack SwiftS3Self-hosted
MinIOS3Self-hosted
GarageS3Self-hosted
  1. Google Cloud Storage and Azure Blob Storage have their own APIs but also support S3 without any code changes, making it easier to adopt their object storage solutions.
  2. Hetzner Object Storage has been available since November 2024 and is therefore the newest member of the object storage provider family.

AWS S3

https://aws.amazon.com/s3/

Let’s first take a closer look at AWS S3 – the pioneer and the original.

AWS today offers S3 in virtually all regions and provides all features available within the S3 API (as you’d expect, since they created S3).

  • data encryption
  • versioning
  • lifecycle management
  • storage classes
  • hosting static content over HTTP
  • ACL (Access Control List)
  • and much more

Cloudflare R2

https://www.cloudflare.com/en-gb/developer-platform/r2/

At the end of September 2021, Cloudflare announced its object storage solution R2, which is built on the S3 API. While it doesn’t support all S3 API features, a huge selling point is zero egress fees (i.e., no cost for transferring data out of storage).

R2 is also very nicely integrated into other Cloudflare services today, such as Cloudflare Cache Reserve.

Thanks to “zero egress fees,” it’s a very attractive solution for distributing static content, such as software installations, sharing images, or files in general.

Cloudflare R2 has a fairly simple pricing model:

  • $0.015 / GB / month, first 10 GB free
  • $4.50 / million Class A requests, first million free
  • $0.36 / million Class B requests, first ten million free

A Class A request is, for example, uploading objects, listing bucket contents, or listing buckets themselves. A Class B request is downloading objects. So you pay for wanting to download an object, but not for the data transfer to the internet.

OpenStack Swift

https://wiki.openstack.org/wiki/Swift

OpenStack is an open-source cloud platform that was created in 2010 and is very popular today for self-hosted cloud solutions. OpenStack offers a range of components that you can combine to create your own cloud tailored to your needs.

OpenStack Swift is the component for object storage. Swift is built on the S3 API but doesn’t offer all S3 API features.

MinIO

https://min.io/

MinIO is an open-source object storage solution built on the S3 API that allows you to easily self-host your own object storage.

MinIO is a standalone project that can be deployed in many different ways, from installation via system packages, Docker, to a Kubernetes operator. This makes MinIO very flexible.

If the features available in the open-source version aren’t enough, you can purchase the commercial MinIO Enterprise version. However, it should be noted that the enterprise version is quite expensive, so it’s worth considering whether enterprise is worth it for you.

So Is S3 the New FTP?

TL;DR: Yes and no.

S3 as a technology today enables many things, from storing a virtually unlimited number of files (and folders) through encryption, versioning, and various “storage classes” to hosting static web content.

Some of these things were already possible with FTP, but FTP has its limits. Meanwhile, S3 seems unbeatable. The only thing that’s still somewhat complicated with S3, in my experience, is self-hosting, but MinIO is managing to change that.

So S3/object storage has become practically the universal API for cloud and serverless applications, enjoys enormous popularity, and is supported across many projects. If you’re looking for a solution for storing data other than directly on the filesystem, you can’t go wrong with S3.

DevOps training

I share my experience and knowledge from daily practice through training courses and workshops. I focus primarily on open-source DevOps tools and technologies.

Ikona školení Kubernetes

Kubernetes

2 daysfrom 220 EUR

Learn to deploy and run containerized apps at scale. Manage clusters, deploy with Helm, and handle everyday Kubernetes operations.

Ikona školení Argo CD

Argo CD

1 dayfrom 220 EUR

Stop deploying to Kubernetes manually. Learn GitOps with Argo CD — versioned deployments in Git, auto-sync, and easy rollbacks.

Ikona školení Docker

Docker

2 daysfrom 220 EUR

Learn to package your app into a container and deploy it to production. From Docker basics to multi-container apps and best practices.

Ikona školení Git

Git

1 dayfrom 220 EUR

Learn Git from basics to advanced techniques — branching, merge strategies, and conflict resolution. Work in parallel without losing code.

Ikona školení GitHub Actions

GitHub Actions

1 dayfrom 220 EUR

Automate tests, builds, and deployments with GitHub Actions. Learn to write workflows, create custom actions, and set up reliable CI/CD.

Ikona školení GitLab CI

GitLab CI

1 dayfrom 220 EUR

Design efficient GitLab CI/CD pipelines, configure Runners, and automate the path from commit to production. Hands-on workshop.

Ikona školení Postgres on Kubernetes

Postgres on Kubernetes

1 dayfrom 220 EUR

Run PostgreSQL on Kubernetes with CloudNativePG. Learn to automate upgrades, failover, backups, and monitoring — hands-on workshop.

Ikona školení Terraform

Terraform

1 dayfrom 220 EUR

Take control of your cloud infrastructure. Learn to manage environments as code with Terraform — versioned, repeatable, and auditable.

This website uses cookies for traffic analysis via Google Analytics. They help me improve the site based on anonymous statistics. More information in the cookie policy.