Overview

This AWS Solution automates the process of setting up Amazon CloudWatch dashboards for your Apache, NGINX, and Puma workloads running on Amazon EC2. This solution uses several features of Amazon CloudWatch and speeds up the getting started experience.
Benefits

This solution provides a preconfigured Amazon CloudWatch dashboard for your Apache, NGINX, and Puma workloads.
This solution uses a tagging mechanism so that you can add or remove instances from your dashboard.
Use Amazon CloudWatch agent configuration files to configure your EC2 instances running
Apache, NGINX, and Puma workloads.
Technical details

The following diagram presents the architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.
The architecture can be broken down into two workflows: User Interaction and Dashboard Management.
User Interaction Workflow
The AWS CloudFormation template deploys the Amazon CloudWatch Events rule, AWS Lambda function and AWS Systems Manager Parameter Store necessary to capture the workload instances in your account.
Dashboard Management Workflow
The AWS CloudFormation template deploys the Amazon CloudWatch Events rule and AWS Lambda function necessary to configure workload specific Amazon CloudWatch dashboard in your account.
Step 1 (User Interaction Workflow)
Users update the tag on their instances with the tagging schema provided as input during the stack deployment.
Step 2 (User Interaction Workflow)
The CloudWatch Events rule invokes the tagHandler Lambda function on cron schedule. The Lambda function primarily performs two tasks:
- It uses the ec2 describe-tags API call to get instances with the desired tag value (same as step 1).
- It compares the fetched instance list with the AWS Systems Manager Parameter Store instance list and updates the parameter as needed.
Step 3 (Dashboard Management Workflow)
When the AWS Systems Manager Parameter Store gets updated, the event is captured using CloudWatch Events rule to invoke the dashboardHandler Lambda function.
Step 4 (Dashboard Management Workflow)
The dashboardHandler Lambda function updates the deployed dashboard widgets with logs and metrics for the updated instance list.