# AWS Route53 Application Recovery Controller Module [Amazon Route53 Application Recovery Controller (Route 53 ARC)](https://aws.amazon.com/blogs/aws/amazon-route-53-application-recovery-controller/) is a set of Route 53 features that help you build applications with high availability. Route 53 ARC can continuously monitor your application's ability to recover from failure and control recovery across multiple AWS Availability Zones, AWS Regions, and on-premises environments. This Terraform module contains both Route 53 ARC readiness and recovery-cluster resources. You can deploy only the readiness resources, or both. For more information about creating a resilience strategy with Route 53 ARC, see [Running recovery-oriented applications with Amazon Route 53 Application Recovery Controller, AWS CI/CD tools, and Terraform](https://aws.amazon.com/blogs/networking-and-content-delivery/running-recovery-oriented-applications-with-amazon-route-53-application-recovery-controller-aws-ci-cd-tools-and-terraform/). ## Example Architecture
object({|
name = optional(string)
private_zone = optional(bool)
vpc_id = optional(string)
tags = optional(map(string))
zone_id = optional(string)
})
{| no | | [primary\_cell\_region](#input\_primary\_cell\_region) | (Optional) Region name of which Cell to make Route53 Primary. Defaults to default provider region if not set. | `string` | `null` | no | | [resource\_type\_name](#input\_resource\_type\_name) | list of all service types you can pass and their associated Resource Set Type. | `map(string)` |
"name": null,
"zone_id": null
}
{| no | | [safety\_rule\_type](#input\_safety\_rule\_type) | Type of safety rules to create. Can only be "assertion" or "gating". | `string` | `"assertion"` | no | | [safety\_rules](#input\_safety\_rules) | Configuration of the Safety Rules. Key is the name applied to the rule. |
"apigateway": "AWS::ApiGatewayV2::Api",
"autoscaling": "AWS::AutoScaling::AutoScalingGroup",
"cloudwatch": "AWS::CloudWatch::Alarm",
"dynamodb": "AWS::DynamoDB::Table",
"ec2-volume": "AWS::EC2::Volume",
"ec2-vpc": "AWS::EC2::VPC",
"ec2-vpn-cgw": "AWS::EC2::CustomerGateway",
"ec2-vpn-conn": "AWS::EC2::VPNConnection",
"ec2-vpn-gw": "AWS::EC2::VPNGateway",
"elasticloadbalancing": "AWS::ElasticLoadBalancingV2::LoadBalancer",
"kafka": "AWS::MSK::Cluster",
"lambda": "AWS::Lambda::Function",
"rds": "AWS::RDS::DBCluster",
"route53": "AWS::Route53::HealthCheck",
"sns": "AWS::SNS::Topic",
"sqs": "AWS::SQS::Queue"
}
map(object({|
wait_period_ms = number
inverted = bool
threshold = number
type = string
name_suffix = string
}))
{| no | | [tags](#input\_tags) | Map of tags to be added to Readiness resources. | `map(string)` | `null` | no | ## Outputs | Name | Description | |------|-------------| | [cells](#output\_cells) | Cells per Region. | | [cluster](#output\_cluster) | Cluster information. | | [control\_panel](#output\_control\_panel) | Control Panel information. | | [health\_checks](#output\_health\_checks) | Health checks. | | [r53\_aliases](#output\_r53\_aliases) | Route53 alias records, if created. | | [readiness\_checks](#output\_readiness\_checks) | A Readiness check for each resource set. | | [recovery\_group](#output\_recovery\_group) | Recovery group resource. | | [resource\_sets](#output\_resource\_sets) | A Resource set for each service with ARN entries for each Region. | | [routing\_controls](#output\_routing\_controls) | Routing controls per cell. | | [safety\_rules](#output\_safety\_rules) | Safety rules. |
"MinCellsActive": {
"inverted": false,
"name_suffix": "MinCellsActive",
"threshold": 1,
"type": "ATLEAST",
"wait_period_ms": 5000
}
}