AWS Key Terminologies That Every Practitioner Must Know
Why was there a need for cloud computing in the first place?
There were some limitations and challenges in traditional infrastructure like scalability, agility, high availability etc. It was very hard to add additional capacity at run time in traditional data center. Hence it increased time to market causing delays to business continuity. Let’s say you wanted to add 100 GB storage and 16 GB RAM additionally for your one of the client facing application, the traditional infrastructure involved significant time in procurement and had to go through various stages within the organization and then it required significant down time for your application. In case you added the capacity well in advance, then it adds significant unnecessary cost to the organization for unused resources, which is not good cost optimization.
Considering such challenges Cloud computing was needed to handle such scenario to manage capacity and cost in well manner. Currently there are many cloud service provider offer cloud computing services.
1.Amazon Web Service
2.Microsoft Azure
3.Google Cloud
4.Oracle Cloud
5.IBM Cloud
and many more but AWS is the market leader. Hence we will go through AWS key offering in different segment in this post.
AWS has more services and features than any other cloud provider on infrastructure technologies like compute, storage, and databases to emerging technologies, such as machine learning and artificial intelligence, data lakes and analytics, and Internet of Things.
AWS Features
AWS is cloud computing environment which provides lots of services for different purposes in different categories like computing, storage, database, networking, integration, management, security, streaming and AI/ML etc.
AWS offers scalable, reliable, secure, highly available, cost-effective computing services. I will take you through most commonly used AWS services
Compute Services
Elastic compute cloud:
Oftenly referred as EC2 is a virtual computing machine provides server for your applications in different os like windows, Linux, Ubuntu etc.
EC2 provide servers in different size depending on computing power, memory, storage and networking requirements. EC2 instance comes in different families to support different workload.
EC2 comes in different pricing model which you can choose depending on your needs.
On-Demand Instance: You pay what you use. you pay per hour price for instance running in your account. Useful for daily workload which runs during business hour.
Reserved Instance: Reserved instance provide significant savings as compared to on-demand instance. It is useful for long term 1 year or 3 year period. reserved instance provide approximately 70% saving.
Spot instance: Spot instance are very inexpensive. you can bid for spot instance at minimal price. AWS provide you spot instance for the price you bid and it will be available until bid price exceed. it is useful for short term duration like an hour.
Lambda
AWS Lambda is server less computing environment where you do not need to provision many infrastructure. AWS automatically scale the environment for you. You just need to upload/provide code which lambda can execute.
Lambda function provide flexibility you to write your code in various supporting language while Python is being the most popular choice.
Elastic Beanstalk
AWS Elastic Beanstalk is an preconfigured compute environment to host web based application.AWS Elastic Beanstalk allows you to quickly deploy and manage web application in supported languages like Java, .NET, PHP, Node.js, Python etc.
Elastic Beanstalk is platform as a service which easy to use, build, deploy web application. It integrate with other AWS services like EC2 to provide computing, RDS for Database, Elastic load balancing for fault tolerance, Auto scaling for scalability and S3 for storage.
Elastic Container service
Oftenly referred as ECS is a fully managed container orchestration service. It is useful to deploy container based application on AWS. ECS support Docker as container platform.
Elastic Kubernetes service
Oftenly referred as EKS is a fully managed Kubernetes service. With EKS you do not need to set up and manage kubernetes by yourself, AWS manage kubernetes control plane and worker nodes. You need to create cluster and worker nodes.
AWS Fargate
AWS Fargate is server less service. It automatically take care CPU and memory requirement for workload without provisioning any infrastructure. AWS Fargate is available to use with ECS and EKS it means you can deploy container on serverless platform.
It is very useful when you want to develop and deploy lots of microservices without managing any hardware
Elastic Load Balancing
Oftenly referred as ELB automatically distributes your incoming traffic across multiple Amazon EC2 instances.It detects unhealthy instances and reroutes traffic to healthy instances only.
Storage Services
AWS provide several storage service to serve all of the purpose, so you have flexibility to choose as per you need.
Elastic Block Storage
Oftenly referred as EBS is block based storage service for EC2 instances. EBS provide persistence storage on your instances.
Instance Store
It is ephemeral storage for EC2 instances. Once you stop your instance data will be lost. It is very useful when high IOPS are required without persistence storage.
Simple Storage Service
Oftenly referred as S3 is object based storage service. S3 is highly available, scalable,durable, reliable fully managed service. You can store any amount of data in S3, it is unlimited storage service. S3 is very inexpensive data storage service, You can store CSV file, Media file, Audio, Video anything in S3.AWS S3 also provide ability to host static website. S3 provide HTTPS endpoint that is reachable from internet.
S3 offers various storage class which you can use as per your need.
S3-Standard: It is suitable for storing data which is frequently accessed.
S3-IA: It is suitable for storing data which is less frequently accessed.
S3-Intelligent Tiering: The S3 Intelligent-Tiering storage class optimize costs by automatically moving data to the most cost-effective access tier, without performance impact or operational overhead.
Glacier
Glacier is data archival service which provide very low cost storage. You can also use S3 Lifecycle policies to automatically transition objects from other storage class into glacier to optimize the cost.
Elastic File Storage
Oftenly referred as EFS is network file sharing service. Amazon EFS provides scalable and highly available file storage for use of Amazon EC2. Multiple EC2 instance can share EFS concurrently and access files.For linux instance AWS provide EFS and for windows instance AWS provide FSx.
Database
AWS offers databases for every kind of need like SQL, NoSQL, OLTP, OLAP, Graphical, Document, timeseries etc.
RDS
RDS is fully managed relation database service which provide by AWS. RDS has been designed to provide high availability and scalability for your databases. RDS manages backups,automatic failure detection,software patching for your databases.
RDS support following database.
Oracle
MySql
PostgreSQL
SQL server
MariaDB
AWS Aurora
AWS provide its own MySql and Postgres compatible database service Amazon Aurora which provide single digit milliseconds latency.Amazon Aurora is designed to provide high performance and cost-effective database.
Redshift
Amazon Redshift is a fully managed warehouse service which can store and analyze petabyte scale data . Redshift can read data from S3 or any database for analyzing data.
Redshift makes it simple and cost effective to run high performance and complex queries on petabytes of structured data so that you can build powerful reports and dashboards.
DynamoDB
AWS Dynamo DB is a noSQL Database which is built to support noSQL compatible database in cloud environment. AWS Dynamo DB is fully managed serverless noSQL database service it means you do not need to take care of any server/infrastructure, AWS does take care it for you.
Dynamo DB is highly scalable,available and durable database service. it is a key value pair database store. You can store any amount of data within Dynamo DB table as it scale automatically.
Networking
Networking is the must feature needed to communicate your resources in cloud to communicate with outside world either Internet, your on-premises network and third parties API.
AWS various networking options.
VPC
Virtual private cloud is a networking service in AWS account.VPC allow you to provision AWS resources in virtual network.You have control of defining the IP address range for your resources in VPC.
VPC can control incoming and outgoing traffic to and from your AWS resources EC2 instances and RDS instances. VPC provide subnets to launch your resources. Subnet provide range of ip address.There can be two types of subnet public subnet and private subnet.
Resources inside public subnet are reachable from internet and Resources inside private subnet are not reachable from internet.
VPC provide several networking components to work with.
Internet Gateway: To connect resources in public subnet to outside world.
NAT Gateway: To connect resources in private subnet to internet for downloading software patches.
RouteTable:RouteTable define how traffic should be move into VPC and out of VPC.
NACL: Network access control list provide security for your subnet to allow and deny traffic.
Security Groups: Security Groups control traffic on your EC2 instances.Security Groups allow specific port and ip address range to communicate with your instances.
CloudFront
Amazon CloudFront is a CDN (content delivery network) service that securely delivers data, videos, applications, and APIs to customers globally. CloudFront uses edge locations to deliver network worldwide. CloudFront can deliver both static and dynamic web content.
CloudFront integrate with other AWS service for origin such as Elastic Load Balancing(ELB), EC2, S3,DynamoDB etc. CloudFront cache contents in its cache for certain period which can be defined using time to live(TTL) parameter. If TTL is 60 seconds then CloudFront cache contents for 60 seconds. If content is not available in cache then it reach out to your origin.
CloudFront provide SSL certificate for client to communicate securely.
Route53
Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service.Amazon Route 53 effectively connects user requests to infrastructure running in AWS such as Amazon EC2 instances, Elastic Load Balancing, API Gateway and Amazon S3 buckets and can also be used to route users to infrastructure outside of AWS.
Route53 is very cost-effective web service you need to pay what you use and very simple to use.
API Gateway
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.Using API Gateway, you can create REST APIs and WebSocket APIs. API Gateway is server less web service which get used with AWS Lambda and Dynamo DB to build server less applications.
API Gateway can be used to build both internet facing application and internal application.API gateway provide cost-effective way to develop and publish API. You only pay for call your application receive and data transferred out. API gateway can integrate with any HTTP based backend application.
Monitoring and Logging
AWS provide facility to monitor your resources in cloud.
CloudTrail
AWS CloudTrail is an AWS service that helps you enable governance and compliance for your AWS account. Actions taken by a user, role, or any AWS service are recorded as events in CloudTrail. CloudTrail can deliver log files into your S3 bucket which can be used later for analyzing specific API call or nay pattern.
CloudWatch
CloudWatch is a monitoring service for resources and application running in AWS environment. You can use CloudWatch to monitor EC2 instance like CPU utilization, disk usage, memory utilization etc. You can set alarm for any of specific metric to send notification.
CloudWatch integrate with all AWS services like EC2,Lambda,Elastic Beanstalk,EBS,RDS,DynamoDB etc.
Integration
Simple Queue Service
Oftenly referred as SQS is a fully managed distributed message queuing service. Amazon SQS allows you to decouple distributed software systems and components.Using SQS, you can send, store, and receive messages between software components at any volume
Simple Notification Service
Oftenly referred as SNS is is a highly available, durable, secure, fully managed pub/sub messaging service that enables you to decouple microservices, distributed systems, and server less applications. SNS allows you to send notification to other AWS services like SQS,Lambda and nay other HTTPS based applications.
Conclusion
I hope after reading this article you would get idea about AWS and its core services and I am sure after reading the article you would be excited to learn more on AWS and its offering. I have tried to cover as many as impotent services. However since AWS offer vast majority of services I am unable to cover all of the services in this post. Thanks for spending some time reading the article !!