

# Monitor resource usage and send notifications when approaching quotas
<a name="solution-overview"></a>

Publication date: *September 2016*. Visit the [CHANGELOG.md](https://github.com/aws-solutions/automations-for-aws-firewall-manager/blob/main/CHANGELOG.md) in our GitHub repository to track version-specific improvements and fixes.

The Quota Monitor for AWS solution proactively monitors resource utilization to avoid unexpectedly reaching [quota limits](https://aws.amazon.com/premiumsupport/knowledge-center/manage-service-limits/). It sends notifications when your Amazon Web Services (AWS) service quotas (previously known as limits) are approaching their maximum value. This solution uses [AWS CloudFormation](https://aws.amazon.com/cloudformation/) templates to automate the deployment by provisioning the infrastructure resources (also known as the *stack*) automatically.

The solution leverages [AWS Trusted Advisor](https://aws.amazon.com/premiumsupport/trustedadvisor/) and [Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/intro.html) to monitor resource utilization against quotas for specific AWS services. The solution can send you notifications via email or your existing Slack channel, requesting to increase quotas or to shut down resources before the quota is reached. For more information, refer to [Quotas](quotas.md) later in this document.

This implementation guide provides an overview of the Quota Monitor for AWS solution, its reference architecture and components, considerations for planning the deployment, configuration steps for deploying the solution to the AWS Cloud. It is intended for solution architects, DevOps engineers, AWS account administrators, and cloud professionals who want to implement Quota Monitor for AWS in their environment.

You can use this navigation table to quickly find answers to these questions:


| If you want to . . . | Read . . . | 
| --- | --- | 
|  Know the cost for running this solution.  |   [Cost](cost.md)   | 
|  Understand the security considerations for this solution.  |   [Security](security.md)   | 
|  Know how to plan for quotas for this solution.  |   [Quotas](quotas.md)   | 
|  Know which AWS Regions this solution supports.  |   [Supported AWS Regions](plan-your-deployment.md#supported-aws-regions)   | 
|  View or download the AWS CloudFormation templates included in this solution to automatically deploy the infrastructure resources (the "stack") for this solution.  |   [AWS CloudFormation templates](aws-cloudformation-templates.md)   | 
|  Access the source code and optionally use the AWS Cloud Development Kit (AWS CDK) to deploy the solution.  |   [GitHub repository](https://github.com/aws-solutions/quota-monitor-for-aws/)   | 

# Features and benefits
<a name="features-and-benefits"></a>

The Quota Monitor for AWS solution provides the following features:

 **Monitor resource utilization for specific AWS services** 

The solution leverages AWS Trusted Advisor and Service Quotas to help you monitor resource utilization against quotas for specific AWS services.

 **Automate Amazon SNS and Slack notifications** 

The solution publishes alerts to an [Amazon Simple Notification Service](https://aws.amazon.com/sns/) (Amazon SNS) topic, which you can subscribe to through a notification mechanism of your choice. The solution includes template parameters to configure Amazon SNS notifications to email or an existing Slack channel. Once you receive a notification, you can take corrective measures such as requesting quota increases or shutting down resources.

 **Choose your deployment scenarios** 

This solution supports deployment scenarios for both when you are using AWS Organizations and when you are not. For more details, refer to [Deployment scenarios](deployment-scenarios.md).

 **Start monitoring accounts as they join your organization** 

When deployed in Organizations mode, the solution uses CloudFormation [StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) to manage template deployments. We configured the StackSets to deploy to accounts that are added to a target organization or organizational units (OUs) within [AWS Organizations](https://aws.amazon.com/organizations/). This way, you can monitor the new accounts without manual intervention.

 **Integrate with AWS Service Catalog AppRegistry and Application Manager, a capability of AWS Systems Manager** 

This solution includes an [AWS Service Catalog AppRegistry](https://docs.aws.amazon.com/servicecatalog/latest/arguide/intro-app-registry.html) resource to register the solution’s CloudFormation template and its underlying resources as an application in both AWS Service Catalog AppRegistry and [Application Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/application-manager.html). With this integration, you can centrally manage the solution’s resources and enable application search, reporting, and management actions.

# Use cases
<a name="use-cases"></a>

 **Monitoring quotas across your organization or OUs** 

You can monitor resource utilization across your organization or across different OUs under your AWS Organizations with the Organizations deployment mode in the `quota-monitor-hub.template`.

 **Monitoring quotas across and outside your organization** 

You can monitor resource utilization across your organization or across accounts outside your AWS Organizations with the Hybrid deployment mode in the `quota-monitor-hub.template`.

 **Monitoring quotas within an individual AWS account** 

You can monitor resource utilization within a single AWS account using the `quota-monitor-hub-no-ou.template`.

For more details, refer to [Choose your deployment scenario](step-1.-choose-your-deployment-scenario.md).

# Concepts and definitions
<a name="concepts-and-definitions"></a>

This section describes key concepts and defines terminology specific to this solution.

 **hub template** 

AWS CloudFormation template for AWS and all associated components in the primary AWS account that will be used to monitor quotas. See **monitoring account**.

 **limit** 

The maximum allocated value for a quota. The term limit was used previously as a synonym for quota.

 **monitored account** 

Secondary AWS accounts where a spoke CloudFormation template has been launched to support quota monitoring.

 **monitoring account** 

The primary AWS account where the hub CloudFormation template is deployed to monitor secondary AWS accounts.

 **organization** 

An entity that you create to consolidate and manage your AWS accounts. An organization has one management account along with zero or more member accounts.

 **organizational unit** 

A container for accounts within a [root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) of an organization. An organizational unit (OU) can contain other OUs.

 **prerequisite template** 

AWS CloudFormation template used to fulfill the prerequisites needed for monitoring quotas across AWS Organizations.

 **quota** 

The maximum number of service resources, actions, operations, and items for your AWS account. Previously known as limit. See [quotas](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#Q).

 **Service Quotas** 

An AWS service that helps you manage quotas for many AWS services from one location. Along with looking up the quota values, you can also request a quota increase from the Service Quotas console. See [AWS service quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).

 **spoke template** 

AWS CloudFormation template to launch the Quota Monitor for AWS solution and all associated components in secondary accounts to support quota monitoring (monitored accounts).

 **StackSets** 

AWS CloudFormation StackSets extend the capability of stacks by enabling you to create, update, or delete stacks across multiple accounts and AWS Regions with a single operation.

For a general reference of AWS terms, refer to the [AWS Glossary](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html).