StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Product

  • Stacks
  • Tools
  • Companies
  • Feed

Company

  • About
  • Blog
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2025 StackShare. All rights reserved.

API StatusChangelog
  1. Home
  2. Infrastructure as a Service
  3. Amazon S3
Amazon S3
ByAmazon S3Amazon S3

Amazon S3

Infrastructure as a Service
Discussions320
OverviewOverviewPros & ConsProsIntegrationsIntegrationsDiscussionsDiscussionsAlternativesAlternatives

What is Amazon S3?

Amazon Simple Storage Service provides a fully redundant data storage infrastructure for storing and retrieving any amount of data, at any time, from anywhere on the web

Amazon S3 is a tool in the Infrastructure as a Service category of a tech stack.

Key Features

Write, read, and delete objects containing from 1 byte to 5 terabytes of data each. The number of objects you can store is unlimited.Each object is stored in a bucket and retrieved via a unique, developer-assigned key.A bucket can be stored in one of several Regions. You can choose a Region to optimize for latency, minimize costs, or address regulatory requirements. Amazon S3 is currently available in the US Standard, US West (Oregon), US West (Northern California), EU (Ireland), Asia Pacific (Singapore), Asia Pacific (Tokyo), Asia Pacific (Sydney), South America (Sao Paulo), and GovCloud (US) Regions. The US Standard Region automatically routes requests to facilities in Northern Virginia or the Pacific Northwest using network maps.Objects stored in a Region never leave the Region unless you transfer them out. For example, objects stored in the EU (Ireland) Region never leave the EU.Authentication mechanisms are provided to ensure that data is kept secure from unauthorized access. Objects can be made private or public, and rights can be granted to specific users.Options for secure data upload/download and encryption of data at rest are provided for additional data protection.Uses standards-based REST and SOAP interfaces designed to work with any Internet-development toolkit.Built to be flexible so that protocol or functional layers can easily be added. The default download protocol is HTTP. A BitTorrent protocol interface is provided to lower costs for high-scale distribution.Provides functionality to simplify manageability of data through its lifetime. Includes options for segregating data by buckets, monitoring and controlling spend, and automatically archiving data to even lower cost storage options. These options can be easily administered from the Amazon S3 Management Console.Reliability backed with the Amazon S3 Service Level Agreement.

Amazon S3 Pros & Cons

Pros of Amazon S3

  • ✓Reliable
  • ✓Scalable
  • ✓Cheap
  • ✓Simple & easy
  • ✓Many sdks
  • ✓Logical
  • ✓Easy Setup
  • ✓1000+ POPs
  • ✓REST API
  • ✓Secure

Cons of Amazon S3

  • ✗Permissions take some time to get right
  • ✗Requires a credit card
  • ✗Takes time/work to organize buckets & folders properly
  • ✗Complex to set up

Amazon S3 Alternatives & Comparisons

What are some alternatives to Amazon S3?

Google Cloud Storage

Google Cloud Storage

Google Cloud Storage allows world-wide storing and retrieval of any amount of data and at any time. It provides a simple programming interface which enables developers to take advantage of Google's own reliable and fast networking infrastructure to perform data operations in a secure and cost effective manner. If expansion needs arise, developers can benefit from the scalability provided by Google's infrastructure.

Azure Storage

Azure Storage

Azure Storage provides the flexibility to store and retrieve large amounts of unstructured data, such as documents and media files with Azure Blobs; structured nosql based data with Azure Tables; reliable messages with Azure Queues, and use SMB based Azure Files for migrating on-premises applications to the cloud.

Amazon EBS

Amazon EBS

Amazon EBS volumes are network-attached, and persist independently from the life of an instance. Amazon EBS provides highly available, highly reliable, predictable storage volumes that can be attached to a running Amazon EC2 instance and exposed as a device within the instance. Amazon EBS is particularly suited for applications that require a database, file system, or access to raw block level storage.

Minio

Minio

Minio is an object storage server compatible with Amazon S3 and licensed under Apache 2.0 License

iCloud

iCloud

Sign in to iCloud to access your photos, videos, documents, notes, contacts, and more. Use your Apple ID or create a new account to start using Apple services.

DigitalOcean Spaces

DigitalOcean Spaces

DigitalOcean Spaces are designed to make it easy and cost effective to store and serve massive amounts of data. Spaces are ideal for storing static, unstructured data like audio, video, and images as well as large amounts of text.

Amazon S3 Integrations

StackMob, Beanstalk, Mover, CloudCheckr, Xplenty and 7 more are some of the popular tools that integrate with Amazon S3. Here's a list of all 12 tools that integrate with Amazon S3.

StackMob
StackMob
Beanstalk
Beanstalk
Mover
Mover
CloudCheckr
CloudCheckr
Xplenty
Xplenty
Cactus
Cactus
Logentries
Logentries
Siteleaf
Siteleaf
CarrierWave
CarrierWave
DodgerCMS
DodgerCMS
Gulp AWS Splash
Gulp AWS Splash
AWS CodePipeline
AWS CodePipeline

Amazon S3 Discussions

Discover why developers choose Amazon S3. Read real-world technical decisions and stack choices from the StackShare community.

Russel Werner
Russel Werner

Lead Engineer at StackShare

Dec 3, 2018

Needs adviceonReactReactGlamorousGlamorousApolloApollo

StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

#StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

0 views0
Comments
Tobias Widmer
Tobias Widmer

CTO at Onedot

Dec 3, 2018

Needs adviceonReactReactReduxReduxScalaScala

Onedot is building an automated data preparation service using probabilistic and statistical methods including artificial intelligence (AI). From the beginning, having a stable foundation while at the same time being able to iterate quickly was very important to us. Due to the nature of compute workloads we face, the decision for a functional programming paradigm and a scalable cluster model was a no-brainer. We started playing with Apache Spark very early on, when the platform was still in its infancy. As a storage backend, we first used Cassandra, but found out that it was not the optimal choice for our workloads (lots of rather smallish datasets, data pipelines with considerable complexity, etc.). In the end, we migrated dataset storage to Amazon S3 which proved to be much more adequate to our case. In the frontend, we bet on more traditional frameworks like React/Redux.js, Blueprint and a number of common npm packages of our universe. Because of the very positive experience with Scala (in particular the ability to write things very expressively, use immutability across the board, etc.) we settled with TypeScript in the frontend. In our opinion, a very good decision. Nowadays, transpiling is a common thing, so we thought why not introduce the same type-safety and mathematical rigour to the user interface?

0 views0
Comments
Glenn Gillen
Glenn Gillen

Sep 24, 2018

Needs adviceonAWS LambdaAWS LambdaAmazon Kinesis FirehoseAmazon Kinesis FirehoseAmazon S3Amazon S3

I'm currently building out a Twitter analysis tool that's using AWS Lambda to stream data into Amazon Kinesis Firehose, which in turns saves the result to Amazon S3. The plan is to have Amazon S3 operate as both a data store and quasi-messaging bus with any post-processing work (e.g., notifications of new tweets going into Slack) fanning out from there. I went with this approach as I can get things up and running quickly and only pay for things on a pay-per-use basis rather than having lots of worker nodes sitting around waiting for work. Amazon Kinesis Firehose also makes it easy to add a different or additional data store in the future.

0 views0
Comments
Dmitry Mukhin
Dmitry Mukhin

Engineer at Uploadcare

Sep 13, 2018

Needs adviceonGoogle App EngineGoogle App EnginePythonPythonRedisRedis

Uploadcare has built an infinitely scalable infrastructure by leveraging AWS. Building on top of AWS allows us to process 350M daily requests for file uploads, manipulations, and deliveries. When we started in 2011 the only cloud alternative to AWS was Google App Engine which was a no-go for a rather complex solution we wanted to build. We also didn’t want to buy any hardware or use co-locations.

Our stack handles receiving files, communicating with external file sources, managing file storage, managing user and file data, processing files, file caching and delivery, and managing user interface dashboards.

At its core, Uploadcare runs on Python. The Europython 2011 conference in Florence really inspired us, coupled with the fact that it was general enough to solve all of our challenges informed this decision. Additionally we had prior experience working in Python.

We chose to build the main application with Django because of its feature completeness and large footprint within the Python ecosystem.

All the communications within our ecosystem occur via several HTTP APIs, Redis, Amazon S3, and Amazon DynamoDB. We decided on this architecture so that our our system could be scalable in terms of storage and database throughput. This way we only need Django running on top of our database cluster. We use PostgreSQL as our database because it is considered an industry standard when it comes to clustering and scaling.

0 views0
Comments
Patrick Sun
Patrick Sun

Software Engineer at Stitch Fix

Sep 13, 2018

Needs adviceonAmazon S3Amazon S3ElasticsearchElasticsearchAmazon EC2 Container ServiceAmazon EC2 Container Service

To load data from our Amazon S3 data warehouse into the Elasticsearch cluster, I developed a Spark application that uses PySpark to extract data from S3, partition, then batch-send each partition to Elasticsearch to increase parallelism. The Spark job enables fielddata: true for text columns with low cardinality to allow sub-aggregations by text columns and prevents data duplication by adding a unique _id field to each row in the dataframe.

The job can then be run by data scientists in Flotilla, an internal data platform tool for running jobs on Amazon EC2 Container Service, with environment variables specifying which schema and table to load.

0 views0
Comments
Patrick Sun
Patrick Sun

Software Engineer at Stitch Fix

Sep 13, 2018

Needs adviceonVictoryVictoryApache SparkApache SparkReactReact

As a frontend engineer on the Algorithms & Analytics team at Stitch Fix, I work with data scientists to develop applications and visualizations to help our internal business partners make data-driven decisions. I envisioned a platform that would assist data scientists in the data exploration process, allowing them to visually explore and rapidly iterate through their assumptions, then share their insights with others. This would align with our team's philosophy of having engineers "deploy platforms, services, abstractions, and frameworks that allow the data scientists to conceive of, develop, and deploy their ideas with autonomy", and solve the pain of data exploration.

The final product, code-named Dora, is built with React, Redux.js and Victory, backed by Elasticsearch to enable fast and iterative data exploration, and uses Apache Spark to move data from our Amazon S3 data warehouse into the Elasticsearch cluster.

0 views0
Comments
Jake Stein
Jake Stein

CEO at Stitch

Sep 13, 2018

Needs adviceonGolangGolangAmazon RDSAmazon RDSAmazon S3Amazon S3

Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

0 views0
Comments
Tim Specht
Tim Specht

‎Co-Founder and CTO at Dubsmash

Sep 13, 2018

Needs adviceonAmazon S3Amazon S3Amazon CloudFrontAmazon CloudFront

In the early days features like My Dubs, which enable users to upload their Dubs onto our platform, uploads were going directly against our API, which then stored the files in Amazon S3.

We quickly saw that this approach was crumbling our API performance big time. Since users usually have slower internet connections on their phones, the process of uploading the file took up a huge percentage of the processing time on our end, forcing us to spin up way more machines than we actually needed. We since have moved to a multi-way handshake-like upload process that uses signed URLs vendored to the clients upon request so they can upload the files directly to S3. These files are then distributed, cached, and served back to other clients through Amazon CloudFront.

#AssetsAndMedia #ContentDeliveryNetwork #CloudStorage

0 views0
Comments
Tim Specht
Tim Specht

‎Co-Founder and CTO at Dubsmash

Sep 13, 2018

Needs adviceonAmazon S3Amazon S3

Dubsmash in the beginning was simply downloading a JSON file from Amazon S3 containing the Quote metadata. This file was updated & uploaded to Amazon S3 by hand every time we had new content available; we would simply put in the URL to the sound file, the name of the Quote, and re-upload the file.

We chose this really simple mechanism to avoid having to bootstrap a custom API to distribute the content to the clients. This turned out to be a great business decision as well, since we didn’t need to worry at all about any scaling issues in the beginning; this became an even better call a couple weeks after the initial launch.

#CloudStorage #DataStores

0 views0
Comments
John-Daniel Trask
John-Daniel Trask

Co-founder & CEO at Raygun

Sep 13, 2018

Needs adviceonAmazon S3Amazon S3Amazon RDSAmazon RDSNGINXNGINX

We chose AWS because, at the time, it was really the only cloud provider to choose from.

We tend to use their basic building blocks (EC2, ELB, Amazon S3, Amazon RDS) rather than vendor specific components like databases and queuing. We deliberately decided to do this to ensure we could provide multi-cloud support or potentially move to another cloud provider if the offering was better for our customers.

We’ve utilized c3.large nodes for both the Node.js deployment and then for the .NET Core deployment. Both sit as backends behind an nginx instance and are managed using scaling groups in Amazon EC2 sitting behind a standard AWS Elastic Load Balancing (ELB).

While we’re satisfied with AWS, we do review our decision each year and have looked at Azure and Google Cloud offerings.

#CloudHosting #WebServers #CloudStorage #LoadBalancerReverseProxy

0 views0
Comments

Try It

Visit Website

Adoption

On StackShare

Companies
7.68k
339AAA+7673
Developers
45.7k
CJRJNP+45743