What suits you best?

0

You have created an amazing web application and you are ready to deploy it on the cloud. After signing up for Amazon Web Services (AWS), you’re quickly overwhelmed with options for running your application. All of these options fall under the “Calculate” category. Let’s explore each so you can make an informed decision.

EC2 (elastic cloud computing)

This is the heart of the compute architecture where you can provision individual server instances, which are essentially computers running in the cloud. You can choose the operating system (Windows, various Linux distros, or even Mac), memory and number of cores, and drive size. Like any new computer, you need to install any software you want to run by logging in remotely.

For example, these servers can host web applications such as WordPress; or they can host the production software you build. Or they can serve as development environments where you run your development tools and connect via Remote Desktop or the Linux equivalent, VNC.

  • Advantages: You have full control over the machine.
  • The inconvenients: You have to do everything manually: Install the software you want on the server; configure firewalls; etc You’re billed by the hour, and if you’re not careful, you can end up with a huge bill at the end of the month.

elastic magic bean

It’s the ultimate in handheld architecture. It used to be quite basic and limited, but today it has significant functionality, providing an ideal starting point for launching scalable applications. With a handy set of tools (either command-line or via the AWS Web Console), you can easily deploy your own web application in one of many languages, including node.js, Java, C#, and more.

  • Advantages: Incredibly easy to use. Services are provisioned automatically.
  • The inconvenients: You should be very aware of the services it launches, especially those for which you are charged by the hour. For example, launching an application will cause a server to be provisioned on EC2. If you don’t know the servers and don’t shut them down properly when you’re done, you could end up with a bigger bill than expected.

Lambda

Lambda is a way to run applications in a so-called serverless environment. While Elastic Beanstalk uses your own EC2 instances as servers, Lambda is considered “serverless” in that AWS manages the servers used by all the applications you run in Lambda. Technically, there is a server (the code can’t just run in the air), but you don’t have to worry about creating the server, and you won’t see it in the console or manage it.

An important aspect of Lambda is that you don’t just start an application and let it run continuously. Instead, Lambda code executes in bursts. You provide the code to run as a code function (in your language of choice), then specify the triggers that will cause your function to run. What kind of triggers? It’s a long list, but an example is an API call from, say, a web browser or another computer requesting data you provide. The list is longand you can even listen events from an Amazon Alexa.

  • Advantages: You don’t have to worry about provisioning the hardware yourself. AWS will scale your Lambda code as needed, which means you don’t have to worry about scaling. Your Lambda code also has full access to all AWS services, such as the databases you create in AWS RDS and the files you store in AWS S3. It can be very profitable.
  • The inconvenients: Lambda is difficult to use properly, but by no means impossible. You should code your Lambda functions so that multiple instances of the function can run concurrently. There is also a limit on how long a single function can run; in 2022, this limit is 15 minutes.

Lambda’s pricing is a bit confusing, and instead of trying to describe it here, we’ll just send you to frequently asked questions. In general, however, Lambda functions can be quite inexpensive.

EKS and ECS (Elastic Kubernetes Service, Elastic Container Service)

These are management and orchestration services docker containers. ECS was the original container service for AWS, and in recent years AWS has added support for Kubernetes.

If you want to use EKS or ECS, you need to understand where the running containers reside, because the choice is yours. You can have them reside on EC2 instances in your own account. Alternatively, you can run them “serverless” using a service called Fargate where AWS allocates the containers themselves, and you pay for the virtual CPU and memory resources needed by the container (which can potentially be much less than the allocated vCPU and memory on EC2 instances hosting your containers).

But again, you’ll want to check out the official AWS pricing FAQ. Here you will find DHW pricing and here you will find the EKS prices.

  • Advantages: You can use containers and all the benefits that come with it. For example, you can run multiple versions of the same software, each in its own container, if you need to. (This happens often; for example, different applications may require different versions of a MySQL database.)
  • The inconvenients: You must understand well Docker images and containers, which can have a steep learning curve. Also, if you’re using EKS, you’ll need knowledge of Kubernetes, which can take some time to learn. And finally, you have to manage the scaling of containers. (Compare that to App Runner, which we cover next.)

App runner

This is another container service, but with much less configuration on your end. Probably the most important aspect is how containers scale (i.e. replicate) on demand. You don’t have to worry about it. For example, if you have an app that doesn’t get a lot of traffic, but only occasionally needs bursts (like on certain days of the week), then App Runner might be ideal, as it will fit automatically for you. And when there is not much traffic, fewer instances will be running, which will save you money.

  • Advantages: Easy to use and manage, and potentially economical compared to ECS and EKS.
  • The inconvenients: Less configuration available compared to ECS and EKS.

Regarding EKS, ECS and App Runner: For smaller applications, you will probably want to use App Runner. If you have a large application that has massive traffic all day, every day, you’ll probably want to use EKS or ECS.

Other calculation services

AWS offers more compute services for highly specialized use cases:

  • AWS Outposts: This service extends EKS and ECS to your own premises, meaning the containers run on servers in your own data center (which, to be blunt, most small app stores don’t have, we don’t). therefore not cover that here).
  • Serverless Application Repository: It’s not so much a compute service as a repository of pre-coded applications that are easy to deploy in serverless environments like Lambda.
  • Luminous veil: It’s sort of a “lite” version of EC2. You can provision a pre-configured server with a bundle of software such as WordPress. Lightsail isn’t meant for anything heavy-handed, like running your own custom apps; it is mostly a simplified version of EC2.

Conclusion

In the early days of AWS, your best bet was to simply provision your servers yourself and install the software manually. Those days are long gone, and AWS now offers several much easier-to-use services. These services can, when used correctly, save you a good amount of money as well.

Before deciding which Compute service is best for your job, you must first fully understand the different offerings and their pros and cons. The best way is to practice: try building an application on Lambda and integrating it with a database, and allowing it to be called through Amazon API Gateway (which is a service that listens for API requests incoming HTTP and can trigger Lambda functions). Try building an application with Elastic Beanstalk. Compare how they work. Try building an app in a Docker container and pushing it to ECS, EKS or App Runner.

After experimenting a bit, compare these efforts and see which service best suits your needs and budget. Learn as much as you can and you’ll be ready to take an AWS certification exam or land your next job as an AWS developer.

Share.

Comments are closed.