Dealing with Compute services is one of the early tasks done by any entrant into the cloud world. Launching a Virtual Machine in the cloud (in AWS terminology, we call it an EC2 instance) is usually one of the early tasks done by any new cloud practitioner. In the realm of Cloud Compute power, AWS provides a wide range of compute services to help organizations of all sizes meet their computing needs. From virtual machines to containers and serverless computing, AWS offers a variety of services to help users deploy and manage their applications in the cloud. However, with so many options available, it can be challenging to choose the right service for your use case.
In this blog post, I will explore a small subset of the compute services offered by AWS, specifically focusing on virtual machines, containers, serverless computing, and dedicated hosts. It is important to note that while these services are commonly used, they are only a small selection of the vast array of compute services available on AWS. Note that All IP rights to this blog post are reserved. Since I have been facing several content piracy cases lately, this blog post has ONLY been published on the Software, Architecture, and Cloud blog - SWAC.blog and canonically to dev.to only. If you are reading it elsewhere, then please let us know.
I will begin by examining AWS’ virtual machine offerings, including Amazon EC2 and Amazon Lightsail, followed by a discussion of container-based services such as Amazon ECS, AWS Fargate, and Amazon ECR. We will then move on to serverless computing services like AWS Lambda, AWS Step Functions, and Amazon API Gateway, before finishing up with a look at Amazon EC2 Dedicated Hosts, Amazon Elastic Beanstalk, AWS Glue, and Amazon WorkSpaces.
By the end of this blog post, readers will have a better understanding of these key compute services and their features, allowing them to make more informed decisions when choosing an AWS compute service to suit their needs.
Amazon EC2 (Elastic Compute Cloud) and Amazon Lightsail
Virtual machines (VMs) are a popular way to run applications in the cloud. Amazon EC2 and Lightsail are two popular VM services offered by AWS.
Amazon EC2 (Elastic Cloud Compute) is one of the very first services provided by AWS. It provides resizable compute capacity in the cloud. EC2 allows users to launch VMs in Amazon’s cloud, which can be used for various purposes such as hosting websites and running applications. EC2 offers a wide range of instances, allowing users to choose the instance type that best suits their workload. EC2 allows customers to choose the operating system, storage size, memory size, and network throughput and then be able to SSH into the newly provisioned virtual machine. EC2 has 5 categories of instance types: a) General purpose, b) Compute optimized, c) Memory optimized, d) Accelerated computing, and e) storage optimized.
Amazon Lightsail is a simplified version of EC2, designed for smaller workloads and beginners who are not familiar with the AWS environment. Lightsail offers pre-configured virtual private servers (VPS) with fixed resources, making it easier to launch and manage websites and applications. You can read more details about the wide selection of instance types provided by AWS here.
Amazon ECS (Elastic Container Service), AWS Fargate Amazon, ECR (Elastic Container Registry)
Containers are a lightweight way to package and deploy applications. Amazon ECS, AWS Fargate, and ECR are three container services offered by AWS.
Amazon ECS (Elastic Container Service) is a highly scalable container service that allows users to easily run and manage Docker containers on a cluster of EC2 instances. ECS provides a fully-managed container environment that supports the use of other AWS services like Amazon ECR and AWS Fargate.
AWS Fargate is a serverless compute engine for containers. With AWS Fargate, users can run containers without having to manage the underlying EC2 instances. Fargate provides a fully-managed container environment that scales automatically, making it easier to deploy and manage containerized applications.
Amazon ECR (Elastic Container Registry) is a fully-managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images. ECR integrates with Amazon ECS, making it easy to deploy containerized applications to a cluster of EC2 instances.
AWS Lambda, AWS Step Functions and Amazon API Gateway
Serverless computing is a popular way to run code without having to manage servers. AWS Lambda, Step Functions, and API Gateway are three serverless compute services offered by AWS.
AWS Lambda is a serverless computing service that lets developers run code without provisioning or managing servers. Lambda functions can be used for a wide range of purposes, such as processing data, triggering other AWS services, and responding to events in real-time.
AWS Step Functions is a serverless workflow service that lets developers coordinate distributed applications and microservices using visual workflows. Step Functions provides a fully-managed workflow environment that makes it easier to build and manage complex applications.
Amazon API Gateway is a fully-managed service that makes it easy for developers to create, publish, maintain, and secure APIs at any scale. API Gateway provides a fully-managed API environment that supports the use of other AWS services like AWS Lambda and AWS Step Functions.
Amazon EC2 Dedicated Hosts
Sometimes, certain workloads or compliance requirements call for physical servers that are dedicated to a single tenant. This is where Amazon EC2 Dedicated Hosts come into play.
Dedicated Hosts allow customers to launch EC2 instances on physical servers that are fully dedicated to their use, providing additional visibility and control over their underlying infrastructure. With Dedicated Hosts, you can use your own licenses or purchase them through AWS, making it easier to bring your existing software licenses to the cloud.
Dedicated Hosts are available in multiple instance sizes and types, including Dedicated Hosts for storage-optimized, memory-optimized, and compute-optimized workloads. Additionally, you can choose to run your Dedicated Hosts in a dedicated instance tenancy, which ensures that all instances launched on the host are owned by the same AWS account.
By using Dedicated Hosts, customers can ensure that their workloads are isolated from other customers, and can meet compliance requirements that mandate dedicated physical servers. It’s important to note that Dedicated Hosts come at a higher cost than shared EC2 instances, but may be necessary for certain workloads or compliance needs.
Finally, in the section of Other Compute Services, we have Amazon Elastic Beanstalk, AWS Glue, and Amazon WorkSpaces.
Amazon Elastic Beanstalk is a platform as a service (PaaS) that makes it easy to deploy, manage, and scale web applications and services. With Elastic Beanstalk, you simply upload your code and the service automatically handles the deployment, capacity provisioning, load balancing, and scaling. Elastic Beanstalk supports popular programming languages such as Java, .NET, PHP, Node.js, Python, Ruby, and Go.
AWS Glue is a fully-managed extract, transform, and load (ETL) service that makes it easy to move data between data stores. Glue automates the process of discovering data, cataloging metadata, and generating ETL scripts, making it easier to build scalable data pipelines. AWS Glue supports popular data stores such as Amazon S3, Amazon Redshift, and Amazon RDS.
Amazon WorkSpaces is a fully-managed desktop computing service (DAAS – Desktop as a Service) that allows you to provision virtual desktops for your users. WorkSpaces provides a secure and scalable solution for remote workers, enabling them to access their desktops and applications from anywhere. WorkSpaces supports a variety of operating systems and applications, and it integrates with other AWS services like Amazon S3, Amazon WorkDocs, and Amazon WorkLink.
In conclusion, AWS offers a vast array of compute services that cater to various needs and requirements. In this blog post, we have highlighted a small selection of these services, including virtual machines, containers, serverless, dedicated hosts, and other compute services. These services can help businesses and individuals in building, scaling, and deploying applications and infrastructure quickly and efficiently.
It is important to note that AWS provides many more compute services and features that are not covered in this blog post. Depending on your specific use case and requirements, there may be other services that are better suited for your needs. We encourage you to explore the AWS website to discover the full range of compute services and to consider consulting with an AWS expert for guidance on the best options for your organization.
Finally, it is worth mentioning that optimizing your use of AWS compute services can be a complex task, and it is important to ensure that your infrastructure is optimized for performance, security, and cost-effectiveness. With this in mind, AWS provides a range of tools and services that can help you to optimize your infrastructure, including AWS Trusted Advisor, AWS Cost Explorer, and AWS Well-Architected Tool. By taking advantage of these tools and services, you can ensure that your infrastructure is running at peak performance, while minimizing costs and maximizing security. Lastly note that, All IP rights to this blog post are reserved. Since I have been facing several content piracy cases lately, this blog post has ONLY been published on the Software, Architecture, and Cloud blog - SWAC.blog and canonically to dev.to only. If you are reading it elsewhere, then please let us know.
For more articles about AWS & how to begin your AWS journey, visit AWS section on the Software, Architecture & Cloud blog - SWAC.blog