Cost Optimization Monitor
Cost Optimization Monitor

Architecture Overview

Deploying this solution with the default parameters builds the following environment in the AWS Cloud.

        Cost Optimization Monitor

Figure 1: Cost Optimization Monitor solution architecture on AWS

The solution deploys an Amazon Elasticsearch Service (Amazon ES) domain, which is the hardware, software, and data exposed by Amazon Elasticsearch Service endpoints. During initial configuration of the AWS CloudFormation template, users choose from one of three solution sizes to determine the number and type of data nodes (Amazon Elasticsearch instances) in the cluster: small, medium, or large.

The template also launches an Amazon EC2 instance in an Amazon Virtual Private Cloud (Amazon VPC) network. The instance is configured with an Nginx proxy to limit the exposure of data stored in Amazon ES. It serves as an intermediary between the Kibana client web browser and the Amazon ES domain endpoint, filtering requests and then forwarding them to Amazon ES from a single authenticated IP address (see Additional Security Settings for more information). During initial configuration, the user specifies the IP address range that can access the instance as well as custom login credentials for an extra layer of protection. This highly available design enables Auto Scaling to maintain solution performance and uses Elastic Load Balancing to manage incoming traffic.

The Amazon EC2 instance also hosts Python scripts that parse data from the latest billing report and upload it daily to Amazon ES, and also that import a default set of Kibana dashboards to Amazon ES during initial launch.

Users have the option to automatically create a new Amazon S3 bucket or use an existing bucket to store detailed billing reports. The template configures the applicable bucket with a cross-account policy to allow objects from AWS Billing and Cost Management. The report file is continuously overwritten, but the data will be parsed daily and sent to Amazon ES.