Skip to content

appvia/terraform-aws-cudos

Github Actions

Terraform AWS Cloud Intelligence Dashboards

CUDOS

Description

The purpose of this module is to deploy the AWS Cloud Intelligence Dashboards (CUDOS) framework. The framework is a collection of dashboards that provide insights into your AWS environment. The dashboards are built using AWS QuickSight and are designed to provide insights into your AWS environment.

Usage

Add example usage here

module "cudos_framework" {
  source = "../.."

  dashbords_bucket_name              = var.dashboard_bucket_name
  enable_compute_optimizer_dashboard = true
  enable_cost_intelligence_dashboard = true
  enable_cudos_dashboard             = true
  enable_cudos_v5_dashboard          = true
  enable_kpi_dashboard               = true
  enable_sso                         = true
  enable_tao_dashboard               = false
  saml_metadata                      = file("${path.module}/assets/saml-metadata.xml")
  quicksights_username               = var.quicksights_username
  tags                               = var.tags

  providers = {
    aws.management              = aws.management
    aws.management_us_east_1    = aws.management_us_east_1
    aws.cost_analysis           = aws.cost_analysis
    aws.cost_analysis_us_east_1 = aws.cost_analysis_us_east_1
  }
}

Deployment Architecture

The following is taken from the Cloud Intelligence Dashboards framework, and depicts the deployment architecture:

Deployment Architecture

References

Upgrading the dashboards

Due to the level of customization that can be done with the dashboards, it is recommended to follow the official documentation to upgrade the dashboards. The following steps are a general guide to upgrade the dashboards:

  1. Download the latest version of cid-cmd, the instructions can be found here
  2. Run the cic-cmd command to upgrade the dashboards, selecting each of the dashboards that you want to upgrade.
  3. Pay attention the Athena views, ensuring any customizations are not overwritten.

Update Documentation

The terraform-docs utility is used to generate this README. Follow the below steps to update:

  1. Make changes to the .terraform-docs.yml file
  2. Fetch the terraform-docs binary (https://terraform-docs.io/user-guide/installation/)
  3. Run terraform-docs markdown table --output-file ${PWD}/README.md --output-mode inject .

Requirements

Name Version
terraform >= 1.0
aws ~> 5.0

Providers

Name Version
aws ~> 5.0
aws.cost_analysis ~> 5.0
aws.management ~> 5.0

Modules

Name Source Version
cloudformation_bucket terraform-aws-modules/s3-bucket/aws 4.1.2
collector github.com/aws-samples/aws-cudos-framework-deployment//terraform-modules/cur-setup-destination 0.3.3
dashboard_bucket terraform-aws-modules/s3-bucket/aws 4.1.2
dashboards github.com/aws-samples/aws-cudos-framework-deployment//terraform-modules/cid-dashboards 0.3.3
source github.com/aws-samples/aws-cudos-framework-deployment//terraform-modules/cur-setup-source 0.3.3

Resources

Name Type
aws_cloudformation_stack.cudos_data_collection resource
aws_cloudformation_stack.cudos_read_permissions resource
aws_iam_role.cudos_sso resource
aws_iam_saml_provider.saml resource
aws_quicksight_group.groups resource
aws_quicksight_group_membership.members resource
aws_quicksight_user.users resource
aws_s3_object.cloudformation_templates resource
aws_caller_identity.cost_analysis data source
aws_caller_identity.management data source
aws_iam_policy_document.cudos_sso data source
aws_iam_policy_document.cudos_sso_permissions data source
aws_iam_policy_document.dashboards_bucket_policy data source
aws_iam_policy_document.stack_bucket_policy data source
aws_organizations_organization.current data source
aws_region.cost_analysis data source

Inputs

Name Description Type Default Required
dashboards_bucket_name The name of the bucket to store the dashboards configurations string n/a yes
tags Tags to apply to all resources map(string) n/a yes
enable_backup_module Indicates if the Backup module should be enabled bool true no
enable_budgets_module Indicates if the Budget module should be enabled bool true no
enable_compute_optimizer_dashboard Indicates if the Compute Optimizer dashboard should be enabled bool true no
enable_compute_optimizer_module Indicates if the Compute Optimizer module should be enabled bool true no
enable_cost_anomaly_module Indicates if the Cost Anomaly module should be enabled bool true no
enable_cost_intelligence_dashboard Indicates if the Cost Intelligence dashboard should be enabled bool true no
enable_cost_optimization_hub_module Indicates if the Compute Optimization Hub module should be enabled bool true no
enable_cudos_dashboard Indicates if the CUDOS dashboard should be enabled bool false no
enable_cudos_v5_dashboard Indicates if the CUDOS V5 framework should be enabled bool true no
enable_ecs_chargeback_module Indicates if the ECS Chargeback module should be enabled bool false no
enable_inventory_module Indicates if the Inventory module should be enabled bool true no
enable_kpi_dashboard Indicates if the KPI dashboard should be enabled bool true no
enable_org_data_module Indicates if the Organization Data module should be enabled bool true no
enable_prerequisites_quicksight Indicates if the prerequisites for QuickSight should be enabled bool true no
enable_prerequisites_quicksight_permissions Indicates if the prerequisites for QuickSight permissions should be enabled bool true no
enable_rds_utilization_module Indicates if the RDS Utilization module should be enabled bool true no
enable_rightsizing_module Indicates if the Rightsizing module should be enabled bool true no
enable_sso Enable integration with identity center for QuickSight bool true no
enable_tao_dashboard Indicates if the TAO dashboard should be enabled bool false no
enable_tao_module Indicates if the TAO module should be enabled bool true no
enable_transit_gateway_module Indicates if the Transit Gateway module should be enabled bool true no
quicksight_groups Map of groups with user membership to be added to QuickSight
map(object({
description = optional(string)
namespace = optional(string)
members = optional(list(string), [])
}))
{} no
quicksight_users Map of user accounts to be registered in QuickSight
map(object({
role = optional(string, "READER")
}))
{} no
quicksights_username The username for the QuickSight user string "admin" no
saml_metadata The configuration for the SAML identity provider string null no
stack_name_cloud_intelligence The name of the CloudFormation stack to create the dashboards string "CI-Cloud-Intelligence-Dashboards" no
stack_name_collectors The name of the CloudFormation stack to create the collectors string "CidDataCollectionStack" no
stack_name_read_permissions The name of the CloudFormation stack to create the collectors string "CidDataCollectionReadPermissionsStack" no
stacks_bucket_name The name of the bucket to store the CloudFormation templates string "cid-cloudformation-templates" no

Outputs

No outputs.

About

Terraform repository used to deploy and manage a Cloud Intelligence framework

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published