Overwhelmed by the options when it’s time to choose a service on AWS? You’re not alone.
The management and deployment of containerized applications on cloud platforms like Amazon Web Services can be a complex and intensive task, especially if it’s not something you’re already familiar or experienced with. Tonic is a containerized application—meaning all of our application’s code and dependencies are already packaged—so this is a question we deal with quite often!
Today, we’ll take a look at how to choose a service on Amazon Web Services (AWS), using Tonic’s containers as an example. (Let us know if you want us to cover other cloud providers like Google Cloud Platform or Azure!)
Amazon Web Services, abbreviated as AWS, provides on-demand cloud computing platforms and APIs. AWS offers a broad choice of services for running containers as such—they range from giving the user complete control over installation and management, to abstracting away networking or server-related tasks. These services exist on a spectrum, from fully-managed to unmanaged.
Today, we’ll look at the following services on AWS:
We’ll look at what each of these services can be used for and why you might choose to utilize one over the other.
First up, we have the infrastructure and compute bundle. EC2 and Fargate both relate to the actual infrastructure/compute that will support your application. The two main differences between these two are the amount of management and overhead required to maintain these, as well as the types of workloads they are best suited for.
For example, when dealing with large workloads that require a lot of compute, maintaining a large number of EC2 instances might be rather resource intensive. You’ll need to make sure they are all patched, secured, and updated with the latest versions of software.
To choose between these two options, consider your workloads and the amount of resources you have to manage these services.
Next up, we have the container services. ECS and EKS are both services on AWS that pertain to container orchestration—that is they automate or drastically reduce overhead when it comes to deploying, managing, or networking your containerized applications. They’re not always directly comparable, because ECS is an AWS-native service for managing docker containers whereas EKS is a managed service for running Kubernetes in AWS.
Some of the significant differences between the two services include integration, complexity, and flexibility.
(Pssst: Tonic has tons of configs for EKS!)
Ultimately, the correct service to choose on AWS comes down to what your needs and goals are for the platform. Do you need to reduce overhead? Store images? Require a lot of compute? There’s a different service for all these needs.
In our professional opinion, we recommend EKS. As we tell most of our customers, it’s more flexible than many of the other options on the table, and it’s easier to use in a wider variety of situations with a broader range of tools. Plus, it integrates quickly and easily with Tonic’s containers.
Picked your service? You’re all set! The next step is implementation. Check out How to Create Realistic Test Data for Amazon Redshift for a step-by-step breakdown on making the magic happen. And if you have more questions, don’t hesitate to give us a shout at email@example.com!
Enable your developers, unblock your data scientists, and respect data privacy as a human right.