Amazon S3: Pros/Cons and how to use it with Javascript

This article is part of the Serie “Cloud Storage Providers, which one to choose?”. You can check out the rest of the articles here:

  1. Amazon S3: Pros/Cons and how to use it with Javascript
  2. Google Cloud Storage: Pros/Cons and how to use it with Javascript
  3. Microsoft Azure Blob Storage: Pros/Cons and how to use it with Javascript
  4. Backblaze B2: Pros/Cons and how to use it with Javascript
  5. DigitalOcean Spaces: Pros/Cons and how to use it with Javascript
  6. Wasabi Hot Storage: Pros/Cons and how to use it with Javascript

AWS is, without any doubt, the platform of reference to build any infrastructure in the Cloud. It was also one of the pioneers in this business, so makes it even more interesting to compare its Storage service with other providers like Backblaze B2, Microsoft Azure Blob Storage or Google Cloud Storage. Here I’m going to try to clarify the good and the bad, and why you should consider Amazon S3 as one of the best storage services in the industry.

Disclaimer: Prices and features change all the time. Please let me know if there are any mistakes :)

Pros

  • Extensive documentation. Not only API Reference guides but also tutorials and videos to perform every possible task
  • It’s “developer-friendly.” They offer SDKs for many programming languages (e.g., Python, Javascript) and the terminal (aws-cli)
  • Stability and peace of mind. Amazon S3 is not going to close anytime soon
  • “Ok” prices. Around 0,025 USD per GB/month with the Standard class, and 0,004 USD per GB/month with Glacier class. Prices also go down from time to time depending on the market
  • Different storage classes for each necessity: Standard (frequent use), Infrequent Access Storage (infrequent use) and Glacier (long-term storage)
  • High durability. Amazon S3 provides 99.999999999% (11 9’s) of durability of objects over a given year. This means that data survives even if two data centers go down at the same time
  • Easy to integrate with other AWS products like EC2 or CloudFront
  • Amazon S3 offers many regions to store your data: Americas, Europe, Asia, Pacific…
  • Allows simple server-side encryption by using Amazon KMS or customer-provided encryption keys (costs 1 USD per key/month)
  • As part of the free layer, new users receive for free 5GB each month during the first year

Cons

  • For any “serious” support, they require the “AWS Support Plan,” which it’s billed separately (around 29 USD per month)
  • Downloading data it’s a bit expensive, 0,09 USD per GB after the first transferred GB/month
  • For beginners using the web interface, it might be “not so intuitive” to set up bucket permissions as it requires configuring additional AWS services like IAM
  • Even if both services don’t have the same set of capabilities, prices in Backblaze B2 are far lower (around 0.005 USD per GB/month)
  • It has a complex pricing schema. Even more complex when we use the Glacier storage class that has both “retrieval time” and “cost per request.”

Nice, but why should I use it over the competition?

  • If you are heavily invested in AWS, you want to choose Amazon S3 as the integration with other services is almost transparent
  • If you are developer and want to build Apps around an API, Amazon S3 is the best option as you can find documentation and tutorials everywhere on the internet
  • If you are a company, Amazon S3 offers trust and stability. It’s also the provider with more data centers around the globe, so it’s the perfect fit if your company has to comply with geo-laws
  • Finally, if you ever want to change providers, being in Amazon S3 allows you to do it quite quickly, as many other providers are using APIs which are 100% compatible, so making the “switch” it’s almost instantaneous.

How to use it with Javascript

  1. How to install the library
npm install aws-sdk

2. How to Authenticate

3. How to create a Bucket

4. How to delete a Bucket

5. How to upload a File

6. How to download a File

7. How to delete a File

8. How to list all files in a Bucket


I hope this article is enough to get you up to speed with Amazon S3. Let me know if you miss out anything on it!

Have a nice day!