In this article I will give an in-depth introduction to AWS S3 which is secure, scalable, and cost effective storage service from Amazon Web Services.
If we have worked as a developer or we get a chance with a developer, we must have come across file storage case. From simple images to large videos, uploading, storing, and accessing those files from anywhere whenever we need is always a tricky task.
The usual answer we get if we have hosted our app in some other local DC is that we should save all files on the same server however storing files on the same server is not a good idea.
So what is the solution?
S3 - What is S3?
AWS S3 stands for "Simple Storage Service" which is easy-to-use, scalable, and cost effective storage solution from AWS.
Few general scenarios where S3 would be a perfect tool are - Static website hosting, data archival.
We can push and pull the data from S3 using AWS SDK and S3 supports number of programming languages and can use existing stack and integrate S3 easily.
In S3, files are stored in buckets. To understand, buckets are same like folders on our computers.
Every bucket has its own unique name (unique in whole AWS network) which can be used only once. For example: If there is bucket name "TechSurinder", neither we or anyone else can use the same bucket name.
This is useful to identify unique resources and static website with domain name.
There is no limit on the number of files we can store in a bucket on S3 and we also get he version control, and policies.
We can use different bucket for same applications. For example: and app that stores medical records can use two different buckets one for their private customers data and other bucket that contains whitepapers.
S3 is an object base storage that means S3 considers each file as an object. Hence, every object can have its own metadata that includes the name, size, date, and other information.
S3 Storage Types -
There are 3 cloud storage types based on general use cases.
S3 Standard - S3 is default storage plan we will get when start using S3. it is best when we have to access the data frequently.
S3 Infrequent Access (S3-IA) - S3 infrequent access offers a lower price as compared to the standard storage. It is best for use cases such as backups and disaster recovery.
Glacier - Glacier is least expensive storage as compared to the first two and is designed for archival purpose. We cannot fetch the data from the Glacier as fats as S3 Standard and S3-IA.
We can set life cycle policies in S3. Hence, we can schedule files to be moved to S3-IA or Glacier after certain period of time.
WHY Use S3?
Companies like Netflix, Dropbox and Reddit are the most extensive users of S3. The most popular storage system Dropbox build his entire storage capacity on top of Amazon S3.
Core features of S3
It Is Affordable - S3 is cost effective, i mean super cost effective as compared to other storage solutions. With S3 you only pay for what you use.
There are no upfront cost, no setp, just plug and play. In addition to that S3 offers free tier i.e. free tier comes with 5GB of storage space, 20000 GET requests, 2000 PUT, COPY, POST and LIST requests and 15GB of data transfer.
With S3 we can avoid paying for space or bandwidth we might not even need.
It Is Saclable - S3 scales with our application. Since we pay only for what we use, there is not limit to the data we can store to S3.
It Is Secure - One of the main reason I personally and many organizations prefer S3 is its inclination towards security. S3 is secure by default.
S3 locks up all your data with high security unless we explicitly configure not to. S3 also maintains compliance programs such as PCI-DSS, HIPAA/HITECH, FedRAMP, EU Data Protection Directive, and FISMA, to help us meet our industry’s regulatory requirements.
It Has Versioning - Versioning means keeping multiple copies of a file and tracking its changes over time and this is very useful when we deal with the critical data.
We can recover accidentally deleted files when we enable versioning in S3. However if we enable versioning, we store multiple copies of same data which will effect the storage and storage cost. This will also effect read/write requests we make.
By default it is disabled, we need to enable the same from the AWS console.
It Is Durable - Durability is one of the most biggest and most underrated feature. S3 redundantly stores data in multiple facilities, making our data safe in the event of disaster.
S3 also performs regular data check and make sure our data is intact.
S3 offers 99.999999999% durability also know as 9s durability and 99.99% availability of the object over a give year.
S3 Use Case
Static Website Hosting - We can certainly use S3 as a platform to host static websites. Static websites are used for displaying only information whereas dynamic websites receive and process user inputs.
With advent of single page application, we can host a complete web app on S3 often free of charge.
Frameworks like React and Angular have made user input processing happen within the browser. We can build a SPA that listens to third party APIs and host it within S3.
S3 also has great support for routing, so you can use your own custom domain as well.
Analytics - We can queries on the data stored on S3 without moving them to an analytical platform. This makes S3 a good use case for building powerful analytical platform.
File Sharing - AWS S3 is a great tool to work with web and mobile application storage requirements. With on-demand pricing and scalability at the core it is preferred cloud storage solution by small and large enterprises.
You can reach me @ https://www.techsurinder.com/contact