Code Monkey home page Code Monkey logo

terraform-aws-resiliencehub-app's Introduction

AWS Resilience Hub Application

AWS Resilience Hub is a new AWS service designed to help you define, track, and manage the resilience of your applications.
AWS Resilience Hub lets you define your RTO and RPO objectives for each of your applications. Then it assesses your application’s configuration to ensure it meets your requirements. It provides actionable recommendations and a resilience score to help you track your application’s resiliency progress over time. This Terraform module contains AWS Resilience Hub resources.

The resources that make up the application tracked by AWS Resilience Hub must be managed in a tfstate file that exists in S3. This is a requirement of the service. As such, the argument s3_state_file_url is required and must point to the tfstate file where the resources are managed. If possible, our recommendation is to maintain your application deployment in the same root module as the Resilience Hub app definition deployment. See our basic example.

The app-components variable is an object list composed of the following schema:

list(object({
    app_component_name = string
    app_component_type = string
    resources = list(object({
      resource_name            = string
      resource_type            = string
      resource_identifier      = string
      resource_identifier_type = string
      resource_region          = string
    }))
  }))

A single app-component is composed of:

Please refer to https://docs.aws.amazon.com/resilience-hub/latest/userguide/AppComponent.grouping.html for more details.

A single resources is composed of:

  • resource_name - a unique name for each resource
  • resource_type - one of the supported resource types, as listed in https://docs.aws.amazon.com/resilience-hub/latest/userguide/AppComponent.grouping.html
  • resource_identifier - either an ARN or identifier, depends on the actual resources (some AWS resources don't support ARN, refer to docs)
  • resource_identifier_type - either Native or Arn, should correspond with resource_identifier
  • resource_region - the AWS region where the resource is deployed

Requirements

Name Version
terraform >= 0.14.0
aws >= 3.72.0
awscc >= 0.21.0
random >= 3.0.0

Providers

Name Version
awscc >= 0.21.0
random >= 3.0.0

Modules

No modules.

Resources

Name Type
awscc_resiliencehub_app.app resource
awscc_resiliencehub_resiliency_policy.policy resource
random_id.session resource

Inputs

Name Description Type Default Required
app_components The application's app-components, including its resources
list(object({
app_component_name = string
app_component_type = string
resources = list(object({
resource_name = string
resource_type = string
resource_identifier = string
resource_identifier_type = string
resource_region = string
}))
}))
n/a yes
app_name The Application's name string n/a yes
rpo RPO across all failure metrics number n/a yes
rto RTO across all failure metrics number n/a yes
s3_state_file_url An URL to s3-backend Terraform state-file string n/a yes

Outputs

Name Description
app_id The application created
policy_id The policy created

terraform-aws-resiliencehub-app's People

Contributors

drewmullen avatar tbulding avatar yarivlevy81 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.