Monitoring AWS Fargate based applications doesn’t have to be difficult. Instana has brought our automated distributed tracing technology to Fargate.
What is Fargate?
AWS Fargate is a serverless computing platform for containers that works with both Amazon ECS and EKS. Fargate makes it easy for developers to focus on building applications by removing the need to provision and manage servers, and rather focus on scheduling containers. Thanks to the containers being the main abstraction to build applications with, Fargate enables users to specify and pay for resources per application.
As AWS states; “Fargate allocates the right amount of compute, eliminating the need to choose instances and scale cluster capacity. You only pay for the resources required to run your containers, so there is no over provisioning and paying for additional servers.”
Why Organizations Move to AWS Fargate
While there are several reasons why an organization may choose Fargate, we’ve observed a considerable trend of customers that started with either AWS EC2 or AWS Lambda before making the decision to move to Fargate. The main motivating factors for change from EC2 is different from the motivating factors for change from AWS Lambda. Organizations that are making the change from AWS EC2 to Fargate are usually looking to offload some of the operational duties they currently have, outsourcing to AWS the management of the infrastructure underpinning their containers. When running just on EC2, users must run their own VMs on AWS, so even though Fargate is more expensive to use, these organizations have decided that overall benefits of having operational tasks outweigh the cost.
For those organizations shifting from Lambda to Fargate, the opposite is true. Lambda takes care of everything for you beyond specifying which code you want to run: you simply push your code and Lambda takes care of all the operational duties from there. But, as convenient as this can be, it does come at a premium. As production environments grow, Lambda costs can become prohibitive and hard to budget for some organizations. When that happens, these companies often opt for lower costs by taking on more operational responsibilities, such as curating their container images, and the code therein, and schedule them with Fargate.
How to Monitor Applications on Fargate
Regardless of your motivation for choosing Fargate, it is important to properly monitor the performance of your applications. AWS does offer a distributed tracing solution that monitors Fargate, X-Ray. AWS X-Ray traces requests as they travel through your application, providing visibility into the application’s underlying components. While AWS X-Ray does help developers analyze and debug problems within their AWS environments, it does require some further considerations.
AWS X-Ray is billed on a per traced call basis. Depending on the amount of traffic that is being pushed through your applications, this can quickly become a non-trivial cost. There are also extra charges to analyze the traces after they are collected. Additionally, AWS X-Ray is rather limited to tracing services that are being provided by, or are within, AWS. As such, AWS X-Ray has limited value in hybrid environments.
Monitoring Fargate Applications with Instana
Gaining visibility into your Fargate based applications can be difficult as it is challenging to monitor workloads when you don’t manage or control the orchestration. Legacy Application Performance Monitoring (APM) tools are ill equipped to monitor Fargate-based applications, as they far too often leverage trace sampling and manual instrumentation. When it comes to autoscaling containers, having sampled or partial traces simply does not suffice. To properly monitor Fargate, a complete end-to-end view is vital for optimizing performance and controlling cost.
There is also the challenge of AWS Fargate being fundamentally different than your typical environment. For example, Fargate does not allow for an agent to be deployed on the node itself. In order to monitor your applications and services within containers on Fargate, you must deploy the agent into the container image. Instana does not require users to spin up special containers to monitor Fargate ensuring there are no extra charges for the end user.
To meet these challenges, Instana is leveraging the knowledge we gained with our best-in-class AWS Lambda monitoring technology. Instana application performance monitoring for Fargate includes the following capabilities:
Immediate Fargate Monitoring and Observability
Always know that your applications are being fully monitored, even as containers are automatically scaled up or down. Instana immediately discovers new ECS task revisions and changes in ECS tasks running at any one time, while providing users with the information they need to understand the performance of each new version. There are no code changes or manual instrumentation required so you’ll immediately understand the impact of every single deployment.
Instana provides built-in infrastructure monitoring for Fargate, so users will not only get distributed tracing but also a complete overview of the multiple containers running in the Fargate task, similar to Instana Kubernetes (K8s) monitoring of pods.
Automated Distributed Tracing of Fargate Applications
Instana collects a distributed trace for every request of every ECS Task. Instana’s distributed tracing is easily incorporated in the Docker-image at build-time ensuring you never have unmonitored applications.
Traces are correlated across ECS clusters, EC2, Lambda, Fargate and any other technology monitored by Instana, so you always have an end-to-end view of every application request. Each trace is also made viewable and searchable with Instana’s Unbounded Analytics.
Automatic Dependency Mapping of Fargate Applications
Instana’s service dependency map serves as a blueprint of your architecture showing how your system is structured. All services and applications are organized into dependency maps, providing easy understanding of all interdependencies. These fully automated dependency maps are not limited to AWS services, but map every dependency throughout the entire system.
To see how Instana’s Fargate Monitoring works in your environment, sign up for a free trial today.