Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/terraform-trailwatch-modules/terraform-aws-ec2

This Terraform module creates CloudWatch Log Metric Filters and associated Alarms to monitor EC2 instance state changes, based on specified events.
https://github.com/terraform-trailwatch-modules/terraform-aws-ec2

aws aws-ec2 ec2 terraform-module terraform-trailwatch trailwatch

Last synced: 15 days ago
JSON representation

This Terraform module creates CloudWatch Log Metric Filters and associated Alarms to monitor EC2 instance state changes, based on specified events.

Awesome Lists containing this project

README

        


Terraform Trailwatch Modules

Elastic Compute Cloud (EC2)


Releases
License

## About
This Terraform module creates CloudWatch Log Metric Filters and associated Alarms to monitor EC2 instance state changes, based on specified events. It ensures that critical instance state changes are tracked and alerts are sent to a specified SNS topic.

## Features
- Creates CloudWatch Log Metric Filters for specified EC2 instances.
- Sets up CloudWatch Alarms that trigger based on state changes detected in the filters.
- Flexible configuration for monitored events and alarm settings.

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | ~> 1.0 |
| [aws](#requirement\_aws) | ~> 5.46 |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [cw\_log\_group\_name](#input\_cw\_log\_group\_name) | The name of the CloudWatch log group storing CloudTrail logs. | `string` | n/a | yes |
| [cw\_metric\_filter\_alarm\_actions](#input\_cw\_metric\_filter\_alarm\_actions) | The list of actions to execute when the alarm transitions into an ALARM state from any other state. | `list(string)` | `[]` | no |
| [cw\_metric\_filter\_alarm\_comparison\_operator](#input\_cw\_metric\_filter\_alarm\_comparison\_operator) | The comparison operator for the CloudWatch metric filter alarm. | `string` | `"GreaterThanOrEqualToThreshold"` | no |
| [cw\_metric\_filter\_alarm\_evaluation\_periods](#input\_cw\_metric\_filter\_alarm\_evaluation\_periods) | The number of periods over which data is compared to the specified threshold. | `number` | `1` | no |
| [cw\_metric\_filter\_alarm\_period](#input\_cw\_metric\_filter\_alarm\_period) | The period in seconds over which the specified statistic is applied. | `number` | `300` | no |
| [cw\_metric\_filter\_alarm\_statistic](#input\_cw\_metric\_filter\_alarm\_statistic) | The statistic to apply to the alarm's associated metric. | `string` | `"Sum"` | no |
| [cw\_metric\_filter\_alarm\_threshold](#input\_cw\_metric\_filter\_alarm\_threshold) | The value against which the specified statistic is compared. | `number` | `1` | no |
| [cw\_metric\_filter\_namespace](#input\_cw\_metric\_filter\_namespace) | The namespace for the CloudWatch metric filter. | `string` | `"EC2/Monitoring"` | no |
| [cw\_metric\_filter\_value](#input\_cw\_metric\_filter\_value) | The value to publish to the CloudWatch metric. | `string` | `"1"` | no |
| [ec2\_instance\_ids](#input\_ec2\_instance\_ids) | List of EC2 instance IDs to monitor. | `list(string)` | n/a | yes |
| [ec2\_instance\_state\_events](#input\_ec2\_instance\_state\_events) | List of EC2 instance-related state events to monitor. | `list(string)` |

[
"RunInstances",
"StopInstances",
"StartInstances",
"TerminateInstances"
]
| no |

## Simple Example
```hcl
module "terraform_trailwatch_ec2" {
source = "terraform-trailwatch-modules/ec2/aws"
ec2_instance_ids = ["i-12345678", "i-87654321"]
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}
```

## Advanced Example
```hcl
module "terraform_trailwatch_ec2" {
source = "terraform-trailwatch-modules/ec2/aws"
ec2_instance_ids = ["i-12345678", "i-87654321"]
ec2_instance_state_events = ["RunInstances", "StopInstances"]
cw_log_group_name = "the-cloudtrail-log-group"
cw_metric_filter_namespace = "EC2/Monitoring"
cw_metric_filter_value = "1"
cw_metric_filter_alarm_comparison_operator = "GreaterThanOrEqualToThreshold"
cw_metric_filter_alarm_evaluation_periods = 1
cw_metric_filter_alarm_period = 300
cw_metric_filter_alarm_statistic = "Sum"
cw_metric_filter_alarm_threshold = 1
cw_metric_filter_alarm_actions = ["arn:aws:sns:region:account-id:sns-topic"]
}
```

## Changelog
For a detailed list of changes, please refer to the [CHANGELOG.md](CHANGELOG.md).

## License
This module is licensed under the [MIT License](LICENSE).