
terraform-aws-arc-healthcheck¶
Module:
sourcefuse/arc-healthcheck/awsRegistry: https://registry.terraform.io/modules/sourcefuse/arc-healthcheck/aws
Category: Observability / Monitoring
Source: https://github.com/sourcefuse/terraform-aws-arc-healthcheck
Tip
🤖 New: Use this module with AI assistants via the ARC IaC MCP Server — search, scaffold, and security-scan ARC modules from natural language. Quick setup ↓
Overview¶
Creates Route53 health checks with CloudWatch alarms and SNS notifications for endpoint availability monitoring.
What It Does¶
- Route53 HTTP/HTTPS/TCP health checks
- Configurable failure threshold and request interval
- Latency measurement
- String matching in response body
- CloudWatch alarm on health check status
- SNS notification on alarm state change
Quickstart¶
Required Inputs¶
| Name | Type | Description |
|---|---|---|
name |
string |
Health check name |
domain_name |
string |
Domain to monitor |
type |
string |
Health check type: HTTP, HTTPS, or TCP |
alarm_endpoint |
string |
SNS topic ARN for alarm notifications |
| ## Key Outputs |
| Name | Description |
|---|---|
health_check_id |
Route53 health check ID |
cloudwatch_alarm_arn |
CloudWatch alarm ARN |
| ## Full Variable & Output Reference |
The complete inputs/outputs reference is auto-generated below.
Requirements¶
| Name | Version |
|---|---|
| terraform | >= 1.3.0, < 2.0.0 |
| aws | ~> 5.0 |
Providers¶
| Name | Version |
|---|---|
| aws | 4.67.0 |
Modules¶
No modules.
Resources¶
| Name | Type |
|---|---|
| aws_cloudwatch_metric_alarm.alarm_breaching | resource |
| aws_cloudwatch_metric_alarm.ok | resource |
| aws_route53_health_check.this | resource |
| aws_sns_topic.this | resource |
| aws_sns_topic_subscription.this | resource |
Inputs¶
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| alarm_description | Alarm description | string |
null |
no |
| alarm_endpoint | Alarm endpoint, this get added as a subcription to SNS | string |
"" |
no |
| alarm_endpoint_protocol | Protocol to use. Valid values are: sqs, sms, lambda, firehose, and application. Protocols email, email-json, http and https are also valid but partially supported. See details below. | string |
"https" |
no |
| alarm_prefix | Prefix for Alarm | string |
n/a | yes |
| comparison_operator | Specifies the arithmetic operation to use when comparing the specified statistic and threshold. The value should indicate the condition under which the alarm is triggered, such as 'GreaterThanThreshold', 'LessThanThreshold', 'GreaterThanOrEqualToThreshold', or 'LessThanOrEqualToThreshold'. | string |
"LessThanOrEqualToThreshold" |
no |
| domain_name | Domain name or ip address of checking service. | string |
n/a | yes |
| enable_alarm | Flag to enable or disable the CloudWatch metric alarm. | bool |
false |
no |
| evaluation_periods | The number of periods over which data is compared to the specified threshold. | number |
2 |
no |
| failure_threshold | The number of consecutive health checks that an endpoint must pass or fail. | number |
n/a | yes |
| invert_healthcheck | A boolean value that indicates whether the status of health check should be inverted. For example, if a health check is healthy but Inverted is True , then Route 53 considers the health check to be unhealthy. | bool |
false |
no |
| kms_id | KMS id to encrpyt SNS, note : AWS managed keys doesn't work | string |
null |
no |
| measure_latency | Indicates whether you want Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint and to display CloudWatch latency graphs in the Route 53 console. | string |
false |
no |
| name | Health check name | string |
n/a | yes |
| ok_alarm_description | OK Alarm description | string |
null |
no |
| period | The period in seconds over which the specified statistic is applied. Valid values are 10, 30, or any multiple of 60 | number |
10 |
no |
| port | Port number of checking service. | number |
443 |
no |
| regions | A list of AWS regions that you want Amazon Route 53 health checkers to check the specified endpoint from. | list(string) |
[ |
no |
| request_interval | The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health-check request. | number |
n/a | yes |
| resource_path | Resource path eg. /health | string |
"" |
no |
| routing_control_arn | The Amazon Resource Name (ARN) for the Route 53 Application Recovery Controller routing control. This is used when health check type is RECOVERY_CONTROL | string |
"" |
no |
| search_string | String searched in the first 5120 bytes of the response body for check to be considered healthy. Only valid with HTTP_STR_MATCH and HTTPS_STR_MATCH | string |
null |
no |
| statistic | Specifies the metric statistic to use for the alarm. Common options include 'Average', 'Sum', 'SampleCount', 'Minimum', and 'Maximum'. This determines how the metric data points are aggregated over the specified period. | string |
"Average" |
no |
| tags | Tags object. | map(string) |
{} |
no |
| threshold | The value against which the specified statistic is compared. This parameter is required for alarms based on static thresholds, but should not be used for alarms based on anomaly detection models. | number |
1 |
no |
| type | Type of health check. eg. HTTPS_STR_MATCH, HTTPS, HTTP | string |
"HTTPS" |
no |
Outputs¶
| Name | Description |
|---|---|
| cloudwatch_alarm_arn | Cloudwatch Alarm ARN |
| route53_health_check_arn | Route53 Health check ARN |
| sns_arn | SNS ARN |
Development¶
Versioning¶
while Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch
For Example
Prerequisites¶
Configurations¶
- Configure pre-commit hooks
- Configure the dependencies
- Execute pre-commit
AI Assistant Integration (ARC IaC MCP)¶
The ARC IaC MCP Server is a hosted Model Context Protocol service that lets AI assistants browse, search, scaffold, compare, and security-scan any of the SourceFuse ARC Terraform modules — directly from natural language.
What you can do with it:
- Discover — search and filter modules by keyword or AWS resource type.
- Understand — get inputs, outputs, and resources for any module without leaving your editor.
- Scaffold — generate production-ready, multi-file Terraform with cross-module wiring already done.
- Secure — scan generated or existing HCL for misconfigurations before it hits a PR.
- Compare — diff modules side-by-side to make informed architectural decisions.
Setup (one minute)¶
The MCP endpoint is https://arc-iac-mcp.sourcef.us/mcp. Pick your client:
Claude Code CLI:
Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Cursor / Windsurf / Kiro — add the same block to .cursor/mcp.json (or the equivalent for your client).
Example prompts to try¶
- "List all ARC modules sorted by downloads"
- "What inputs does
arc-ecsrequire?" - "Scaffold a production-ready
arc-dbAurora setup with Secrets Manager" - "Compare
arc-eksandarc-ecsfor running 10 microservices" - "Scan this Terraform before I raise a PR:
<paste HCL>"
See the ARC IaC MCP repo for the full tool reference, troubleshooting tips, and local-development instructions.
Contributing¶
See CONTRIBUTING.md for commit conventions and development setup.
Authors¶
This project is authored by: - SourceFuse