DEV Community

Cover image for Battle Royale of AWS Compute Services
Farrukh Khalid
Farrukh Khalid

Posted on

Battle Royale of AWS Compute Services

With numerous AWS computing options available, choosing the right one for your needs can feel overwhelming. AWS is constantly developing new services, which can make it challenging to determine which computing service is best suited for your use case. In this discussion, we will explore the top seven AWS computing services, comparing them in terms of setup, pricing, reliability, maintenance, and level of abstraction. At the end, we will analyze each service individually to determine when it makes sense to choose one over the others. So, let’s get started.
 

Image description
We’re going to begin with EC2, one of AWS’s first services. Through this service, you can rent virtual servers with a variety of power levels.

While some are inexpensive micro instances that only cost a few cents, others can be expensive and cost hundreds of dollars.
EC2 performs poorly in terms of abstraction because it is a flexible but low level building component. This might be advantageous or detrimental, depending on your use case. However, if you want precise control over the hardware, it is excellent.

Setting up an EC2 instance might seem a bit overwhelming at first, but it’s manageable with a little know-how! EC2 is designed to offer great performance, but to get the most out of it, you’ll want to choose the right instance type for your workload and get familiar with a few other concepts. If you just need something simple, you can do a quick setup. However, for anything a little more complex, some extra learning will help ensure everything runs smoothly. The good news is that EC2 handles reliability like a champ! If a hardware issue pops up, your instances get replaced automatically, which is super reassuring. Plus, you can easily set up instances in advance or spin them up on demand, giving you lots of flexibility to meet your needs.

Overall, EC2 is a super reliable service that keeps things running smoothly with great uptime. When it comes to cost, EC2 shines! The variety of instance types lets you choose just the right amount of resources for whatever you’re working on, which is fantastic. Plus, if you go for reserved instances, you can save a bunch in the long run, even though it means committing to one to three years upfront. On the downside, maintenance can be a bit of a hassle with EC2.

When you opt for Amazon EC2, you take on several important maintenance responsibilities. One of the key tasks is keeping the operating system updated with the latest security patches. This is crucial for protecting your server from vulnerabilities. In addition, you will need to upgrade drivers and address various infrastructure issues that may arise over time. While there are automation tools available that can help with some of these tasks, the ultimate responsibility for ensuring that your EC2 instances are running smoothly and securely lies with you.

In summary, EC2 is a fundamental service within the AWS ecosystem, serving as a foundational building block that provides users with significant control over their computing environment.

So let's see how Ec2 stacks up.

Image description

 

Image description
ECS is a highly scalable container management system that launches and maintains containerized applications. It may execute ad hoc computing jobs, or you can utilize the service mode to operate a web application across multiple containers. ECS has two primary configuration modes. One includes hosting your containers on EC2 computers.

In terms of abstraction, the default launch option for Amazon ECS is to execute your containers as tasks on EC2 instances. An ECS site agent placed on these EC2 servers monitors and maintains task health. This arrangement offers several advantages over using EC2 alone, as it leverages the benefits of containerization while ensuring that your applications run smoothly and are managed effectively.

ECS requires you to manage the underlying EC2 instances and networking between instances and containers. Its abstraction is sufficient, but the setup can be intimidating. You must configure your container network and VPC for effective operation and define the resource requirements for each container instance.

Overall dependability for ECS is rated as very excellent. This high score stems from the reliability of ECS container agents, which ensure the health of the cluster and manage job assignments to EC2 servers effectively. In the event of a failure, the system is designed to automatically replace the affected machines. Additionally, you only incur costs for the underlying EC2 instances used.

Container image storage is a minor expense, typically minimal in the grand scheme. However, we face similar maintenance challenges as with EC2, particularly concerning infrastructure maintenance. This encompasses issues like software vulnerabilities and the need for security fixes. Our findings align with what we observed with EC2.

let us see how ECS scores stack up.

Image description

 

Image description
Lightsail helps you get started quickly by offering preconfigured Linux and Windows application stacks along with a user-friendly administration panel.

LightSail is a service designed to offer a medium level of abstraction for users looking to deploy various applications, including web apps, websites, and WordPress blogs. It simplifies the setup process through a guided experience, making it easy to get started with just a few clicks. For those who may need to scale their applications, LightSail provides the option to add multiple instances with load balancing features. Essentially, it's aimed at simplifying the management of compute resources. However, if you find the abstraction level of LightSail limiting, it allows for a quick upgrade to EC2 with just a few clicks, giving you greater control over your computing resources.

Deployment with LightSail is straightforward and efficient. You simply select one of the pre-configured options, such as LAMP, MEAN, WordPress, and LightSail handles the rest. However, if your application demands more specific configurations, it’s helpful to have a grasp of load balancing principles, DNS settings, and CDNs, all of which are readily accessible in the AWS console’s LightSail section. One concern with LightSail is its burst capacity. If your instance's CPU usage goes too high for too long, it will use up its burst capacity. This will cause it to slow down. You can avoid this issue by choosing a more powerful instance type.

LightSail is easy to use, but it may not perform well during long periods of high demand. It also tends to be more expensive than other AWS options. LightSail acts as a simple interface for other AWS services, and you pay extra for this convenience. Its pricing model lets you choose from set configurations. A small instance can cost as little as $5 per month, while a larger one may cost up to $160 per month.

LightSail is also easy to maintain. However, you should keep an eye on its burst capacity. Make sure to check your metrics often to ensure your instance doesn’t regularly exceed its burst limits, as this can greatly affect its performance.

Overall, LightSail simplifies the process of launching preconfigured applications, allowing users to bypass the complexities of the underlying architecture. This makes it an accessible option for those who may not have extensive technical knowledge, enabling them to quickly get applications up and running.

Let’s look at how the LightSail ratings stack up.
Image description

 

Image description
Fargate enhances the Amazon ECS experience by providing a fully serverless launch option. By managing the underlying EC2 instances, AWS allows developers to shift their focus from infrastructure management to application development. This change enables teams to innovate and create solutions more efficiently.

Compared to traditional EC2 and standard ECS setups, Fargate significantly streamlines the deployment process. With its serverless run mode, developers can prioritize their containers and their functionalities without the complexities of managing physical servers. This level of abstraction not only simplifies the development process but also improves reliability, as it removes a significant portion of the setup burden. Fargate empowers teams to deliver better applications faster, fostering a more productive development environment.

Fargate helps you manage operations easily, allowing you to focus on your applications instead of worrying about the infrastructure. It can scale quickly by adding tasks based on workload needs. This lets you spend more time on development and less time on operational issues. Remember, the costs of Fargate depend on the resources you allocate—more virtual CPUs and memory mean higher costs.

When it comes to storage, if you need over 20GB, you might save almost 70% on these costs, which is good for projects with tight budgets. Also, using spot pricing can reduce costs for tasks that can handle interruptions, as AWS can pause them when needed. This option isn’t for everyone, but it can lead to big savings for some. Keeping Fargate updated is straightforward and mainly involves software updates after the initial setup.

Fargate offers a nice balance of control and simplicity. In contrast, AWS Lambda provides even more abstraction. Lambda is a fully serverless option that allows you to write code without managing any infrastructure. It automatically handles scaling, which makes life easier for developers.

Let’s look at how the Fargate ratings.

Image description

 
Image description

AWS Lambda offers robust integration with various AWS services like API Gateway, SQS, SNS, Step Functions, and DynamoDB, making it an excellent choice for orchestrating service interactions. Its ability to facilitate the development of microservices and backends for web applications showcases its versatility. Lambda's fully serverless model not only simplifies infrastructure management by letting AWS handle it but also enhances abstraction, allowing developers to focus on building innovative solutions without worrying about underlying infrastructure complexities.

AWS Lambda is easy to set up, just upload your code, and it takes care of the rest. You can configure the memory for your function, which grants access to more virtual CPUs and speeds up execution. This is beneficial for heavy workloads that need extra resources.

However, Lambda has a downside known as a "cold start." This occurs when Lambda launches containers in response to function calls, leading to increased latency on the first invocation. While subsequent calls are faster, the initial delay makes Lambda less ideal for API hosting in applications that require consistently low latencies.

AWS Lambda is a cost-effective service that helps you be productive. You pay for how often you use it, how long your functions run, and how much memory you need. However, Lambda can only handle tasks that last up to 15 minutes. For longer tasks, consider using AWS Fargate or App Runner, which are easier to maintain.

With AWS Lambda, there isn't much to manage. The main thing to watch is concurrency, which helps prevent unexpected throttling. Now, let’s look at another service that is easier to use and allows you to set up applications quickly, but before that let's check the score for lambda!

Image description

 

Image description

Elastic Beanstalk is an orchestration tool that simplifies the deployment and scaling of web applications and backend services. Just upload your code or Docker image, and it manages provisioning, deployment, monitoring, and scaling. While it offers a decent level of abstraction, it's designed for users who want control over their underlying infrastructure.

Elastic Beanstalk is easy to set up. You can connect your code using a Git repository, your IDE, or directly in the console. Beanstalk will create the EC2 instances, run your application, check its health, and scale when needed. This makes it very user-friendly. Beanstalk runs on EC2, which is stable and reliable. It can handle large workloads thanks to its automatic scaling. You can trust it to perform well.

Elastic Beanstalk offers a cost-effective solution without any additional fees for utilizing AWS services. You simply pay for the resources utilized by your server, aligned with the pricing structure you've established. This clarity in pricing ensures that there are no unexpected costs.

Furthermore, Elastic Beanstalk actively manages regular platform updates, which enhance the service by delivering bug fixes, software upgrades, and new features. While much of the management process is automated, it's still beneficial to keep an eye on the underlying hardware to ensure optimal performance. Overall, Elastic Beanstalk empowers you to develop and deploy scalable applications while maintaining control over the infrastructure, making it a valuable tool for developers.

This is how we can pile up the scores of Elastic Beanstalk.

Image description

 

Image description

If you want the benefits of Elastic Beanstalk without managing infrastructure, consider App Runner.

App Runner allows developers to quickly deploy containerized web applications without worrying about the underlying infrastructure. It abstracts all the management tasks while you focus on deploying your apps. The service handles all aspects of infrastructure, including compute resources, load balancing, container orchestration, security, and networking. However, you won't have visibility into the infrastructure itself. This makes it easier to concentrate on building your application.

AWS App Runner makes it easy to set up your application in just a few minutes. You need to choose how much memory, virtual memory, CPUs, and concurrency your application requires. App Runner is reliable and does not have cold starts like AWS Lambda. This is because it keeps containers ready to handle requests instantly. For this reason, App Runner works well for APIs or web applications that need steady performance.

App Runner handles provisioned containers but comes with higher costs due to overhead, as you pay for instances even when not in use. It takes care of maintenance tasks like infrastructure patches and OS upgrades, freeing you from that responsibility.

However, it's crucial to monitor concurrency levels or enable auto-scaling to meet demand effectively. Overall, App Runner excels in ease of use and management.

Let’s examine AppRunner scores.

Image description

In this rundown, we have explored seven AWS compute services individually, highlighting the unique benefits that each one offers. By now, you should have a solid understanding of how each choice comes with its own set of advantages and disadvantages. This knowledge will help you make informed decisions when selecting the appropriate service for your specific needs.

Top comments (2)

Collapse
 
ravavyr profile image
Info Comment hidden by post author - thread only accessible via permalink
Ravavyr

This article tells someone using AWS, or interested in AWS... absolutely nothing.

Looks like more AI generated slop full of generic info that isn't helpful AT ALL.

Anyone needs actual AWS info on these services, feel free to reach out.

Collapse
 
farrukhkhalid profile image
Farrukh Khalid • Edited

This article is not for the "grandfather of all knowledge" .. it was meant for present day readers like us. The purpose of this article is to provide a high level comparison for those exploring AWS compute services based on five specific criteria. That's it, nothing more, nothing less. Instead of going to other people's work and leaving similar snarky and negative comments, one should focus on creating their own content!

Some comments have been hidden by the post's author - find out more