Introduction to AWS Simple Storage Service (AWS S3)

Introduction to AWS Simple Storage Service (AWS S3)
Introduction to AWS Simple Storage Service (AWS S3)

AWS Storage Services: AWS offers a wide range of storage services that can be provisioned based on your project requirements and use case. AWS storage services have different provisions for highly confidential data, frequently accessed data, and less frequently accessed data. You can choose from different storage types, such as object storage, file storage, block storage services, backup and data migration options. All of these come under the AWS Storage Services list.

AWS Simple Storage Service (S3): From the above list, S3 is an object storage service provided by AWS. Given features like extremely high availability, security, and simple connections to other AWS services, it is probably the most used storage service for AWS users. AWS S3 can be used by people with mobile/web applications, big data, machine learning, and many other types of use cases.

AWS S3 Terminology:

Buckets: Data in S3 is stored in containers called buckets.

Each bucket will have its own set of policies and configuration. This enables users to have more control over their data.

Bucket names must be unique.

Can be thought of as the root folder of the data.

There is a limit of 100 buckets per AWS account. But it can be extended upon request from AWS Support.

Bucket Owner: The person or organization that owns a particular bucket is its bucket owner.

Import/export station: A machine that uploads or downloads data to/from S3.

Key: A key, in S3, is a unique identifier for an object in a bucket. For example, in a bucket ‘ABC’ your GFG.java file is stored at javaPrograms/GFG.java, then ‘javaPrograms/GFG.java’ is your object key for GFG.java.

It is important to note that ‘bucketname+key’ is unique across all objects.

This also means that a bucket can only have one object per key. If you upload 2 files with the same key. The latest uploaded file will overwrite the already existing file.

Versioning: Versioning means always keeping a record of files already uploaded to S3. Things to note:

Versioning is not enabled by default. Once enabled, it is enabled for all objects in the bucket.

Versioning keeps all copies of your file, therefore, it adds the cost of storing multiple copies of your data. For example, for 10 copies of a 1GB sized file you will be charged to use 10GB of S3 space.

Versioning is helpful in preventing unintended overwrites and deletions.

Note that if versioning is enabled then objects with the same key can be stored in one bucket (as they have a unique version ID).

Null Object: The version ID for the object in the bucket where the version is suspended is null. Such objects can be called void objects.

For versioning enabled buckets, each version of a file has a unique version ID.

Object: The fundamental entity type stored in AWS S3.

Access Control List (ACL): A document to verify access to an S3 bucket from outside your AWS account. Each bucket has its own ACL.

Bucket Policies: A document to verify access to S3 buckets from within your AWS account, controlling which services and users have what type of access to your S3 bucket. Each bucket has its own bucket policies.

Lifecycle Rules: This is a cost-saving practice that can move your files to AWS Glacier (AWS Data Archive Service) or another S3 storage class for cheaper storage of older data or completely delete the data after a specified period of time. Can remove.

Features of AWS S3:

  • Durability: AWS claims that Amazon S3 has 99.999999999% durability (119). This means that the chances of losing your data stored on S3 are one in a billion.
  • Availability: AWS ensures that AWS S3 up-time is 99.99% for standard access.

Note that availability relates to being able to access the data and durability relates to not

losing the data completely.

  • Server-Side-Encryption (SSE): AWS S3 supports three types of SSE models:

SSE-S3: Manages AWS S3 encryption keys.

SSE-C: Manages client encryption keys.

SSE-KMS: AWS Key Management Service (KMS) manages encryption keys.

  • File size support: AWS S3 can hold files ranging in size from 0 bytes to 5 terabytes. The 5TB limit on file size should not be a barrier for most applications in the world.
  • Infinite Storage Space: Theoretically, AWS S3 is supposed to have infinite storage space. This makes S3 infinitely scalable for all types of use cases.
  • Pay as you go: Users are charged according to the S3 storage they have.
  • AWS-S3 is region-specific.

S3 storage classes:

AWS S3 provides multiple storage types that offer different performance and features and different cost structure. 

  • Standard: Suitable for frequently accessed data, that needs to be highly available and durable.
  • Standard Infrequent Access (Standard IA): This is a cheaper data-storage class and as the name suggests, this class is best suited for storing infrequently accessed data like log files or data archives. Note that there may be a per GB data retrieval fee associated with Standard IA class.
  • Intelligent Tiering: This service class classifies your files automatically into frequently accessed and infrequently accessed and stores the infrequently accessed data in infrequent access storage to save costs. This is useful for unpredictable data access to an S3 bucket.
  • One Zone Infrequent Access (One Zone IA): All the files on your S3 have their copies stored in a minimum of 3 Availability Zones. One Zone IA stores this data in a single availability zone. It is only recommended to use this storage class for infrequently accessed, non-essential data. There may be a per GB cost for data retrieval.
  • Reduced Redundancy Storage (RRS): All the other S3 classes ensure the durability of 99.999999999%. RRS only ensures a 99.99% durability. AWS no longer recommends RRS due to its less durability. However, it can be used to store non-essential data.

Amazon Web Services (AWS), a subsidiary of Amazon.com, has invested billions of dollars around the world. These resources are shared among all AWS account holders around the world. They themselves are completely different from each other. AWS provides on-demand IT resources to its account holders on a no-cost, pay-as-you-go basis. The enterprise starts using AWS to build its own private IT retailer (which can be expensive depending on the size and nature of the enterprise). The cost of all documentation is also borne by AWS which saves a fortune for a shareholder.

Read Also- How to Create Your Own Private Docker Registry

AWS Global Infrastructure

The AWS global infrastructure is vast and divided into geographic regions. Geographic regions are then divided into different availability zones. When selecting geographic regions for AWS, three factors come into play

  • Optimizing Latency
  • Reducing cost
  • Government regulations (Some services are not available for some regions)

Each region is divided into at least two availability zones that are physically isolated from each other, providing business continuity for the infrastructure like a distributed system. If one zone fails to function, the infrastructure in other availability zones remains operational. The largest area is Northern Virginia (US-East) with six availability zones. These availability zones are connected by high-speed fiber-optic networking.

There are over 100 edge locations distributed around the world that are used for the CloudFront content delivery network. CloudFront can cache frequently used content such as images and videos at edge locations and distribute it to edge locations around the world for high-speed delivery to end users. It also protects against DDOS attacks.

AWS Management Console

The AWS Management Console is a web-based interface for accessing AWS. It requires an AWS account and there is also a smartphone application for the same purpose. Cost monitoring is also done through the console.

AWS resources can also be accessed through various software development kits (SDKs), which allow developers to build applications with AWS as a backend. SDKs exist for all major languages (e.g., JavaScript, Python, Node.js, .Net, PHP, Ruby, Go, C++). There are mobile SDKs for Android, iOS, React Native, Unity, and Xamarin. AWS can also be accessed by making HTTP calls using the AWS-API. AWS also provides a command line interface (CLI) to access AWS remotely and invoke scripts to automate many processes.

AWS Cloud Computing Models

There are three cloud computing models available on AWS.

  1. Infrastructure as a Service (IaaS): It is the basic building block of cloud IT. It typically provides access to data storage space, networking facilities, and computer hardware (virtual or dedicated hardware). It is highly flexible and gives the developer management control over IT resources. For example, VPC, EC2, EBS.
  2. Platform as a Service (PaaS): This is a type of service where AWS manages the underlying infrastructure (usually operating systems and hardware). This helps the developer to be more efficient as they do not have to worry about the heavy lifting required to run applications such as capacity planning, software maintenance, resource purchasing, patching, etc., and more on deploying and managing applications. Have to concentrate. , For example, RDS, EMR, Elastic Search
  3. Software as a Service(SaaS): It is a complete product that usually runs on a browser. This primarily refers to end-user applications. It is run and managed by the service provider. The end-user only has to worry about the application of the software appropriate to his needs. For example, Saleforce.com, web-based email, Office 365 
Hope you like this blog….
Mahesh Wabale
Latest posts by Mahesh Wabale (see all)

Leave a Comment