Grouping resources in an AppComponent - AWS Resilience Hub

Grouping resources in an AppComponent

An AppComponent is a group of related AWS resources that work and fail as a single unit. For example, if you have a primary and replica database, then both databases belong to the same application component. AWS Resilience Hub has rules governing which AWS resources can belong to which type of application component. For example, a DBInstance can belong to AWS::ResilienceHub::DatabaseAppComponent but not to AWS::ResilienceHub::ComputeAppComponent.

When an AWS CloudFormation stack, Terraform state file, AWS Resource Groups, or AppRegistry application is imported into AWS Resilience Hub, it makes its best effort to group related resources into the same application component, but might not always be 100 percent accurate. You know the architecture of your application the best, so you can regroup resources that have already been grouped by AWS Resilience Hub into a different AppComponent. For example, if you have three EC2 instances in an AWS CloudFormation stack, AWS Resilience Hub creates a single application component per EC2 instance, but all three EC2 instances might be running the same application software. In this case, the correct choice is to regroup the three EC2 instances under a single ComputeAppComponent. When regrouping resources, you should only regroup the resource to a single AppComponent. You can also expand your resource list and combine ungrouped resources into an AppComponent.

The AWS Resilience Hub application components support the following resources:

  • AWS::ResilienceHub::ComputeAppComponent

    • AWS::ApiGateway::RestApi

    • AWS::ApiGatewayV2::Api

    • AWS::AutoScaling::AutoScalingGroup

    • AWS::EC2::Instance

    • AWS::ECS::Service

    • AWS::Lambda::Function

    • AWS::EKS::Deployment

    • AWS::EKS::ReplicaSet

    • AWS::EKS::Pod

  • AWS::ResilienceHub::DatabaseAppComponent

    • AWS::DocDB::DBCluster

    • AWS::DynamoDB::Table

    • AWS::RDS::DBCluster

    • AWS::RDS::DBInstance

  • AWS::ResilienceHub::NetworkingAppComponent

    • AWS::EC2::NatGateway

    • AWS::ElasticLoadBalancing::LoadBalancer

    • AWS::ElasticLoadBalancingV2::LoadBalancer

    • AWS::Route53::RecordSet

  • AWS:ResilienceHub::NotificationAppComponent

    • AWS::SNS::Topic

  • AWS::ResilienceHub::QueueAppComponent

    • AWS::SQS::Queue

  • AWS::ResilienceHub::StorageAppComponent

    • AWS::Backup::BackupPlan

    • AWS::EC2::Volume

    • AWS::EFS::FileSystem

    • AWS::S3::Bucket

The following are examples of correct groupings:

  • Group primary databases and replicas under a single application component.

  • Group an Amazon S3 bucket and its replication under a single application component.

  • Group Amazon EC2 instances that run the same application under a single application component.

  • Group an Amazon SQS queue and its dead-letter queue under a single application component.

  • Group Amazon ECS services in one Region and failover Amazon ECS services in another Region under a single application component.

    Note

    AWS Resilience Hub requires the correct grouping so that it can compute estimated workload RTO and estimated workload RPO to generate recommendations.

To assign resources to an AppComponent
  1. In the navigation pane, choose Applications.

  2. On the Applications page, choose the application name that contains the resource you want to regroup.

  3. Choose the Application structure tab.

  4. Choose the plus sign + before Version, and then select Draft, if it's not already selected.

  5. Choose the Resources tab.

  6. Select the resource that you want to regroup.

  7. From Actions, choose Change AppComponent.

    The Change AppComponent dialog box displays.

  8. To delete the current AppComponent from the AppComponent section, choose X in the upper-right corner of the label that displays your current AppComponent name.

  9. To group the resource in a different AppComponent, choose a different AppComponent from the Choose AppComponent dropdown list.

  10. Choose Add.

  11. Delete any empty AppComponents from the AppComponents tab.

  12. Choose Publish new version.

  13. Choose the Application structure tab.

  14. To view the published version of your application, complete the following steps:

    1. Choose the plus sign + before Version, and then select release.

    2. Choose the Resources tab.

To group resources
  1. In the navigation pane, choose Applications.

  2. On the Applications page, choose the application name that contains the resources that you want to group.

  3. Choose the Application structure tab.

  4. Choose the plus sign + before Version, and the select draft, if it's not already selected.

  5. Choose the Resources tab.

  6. Choose the resources that you want to group.

    Note

    You cannot choose manually added resources.

  7. Choose Actions, and then choose Group resources.

    The Combine AppComponent window displays.

  8. Choose an AppComponent from the Choose AppComponent dropdown list in which you want to group the resource.

  9. Choose Save.

  10. Choose Publish new version.

  11. Choose the Application structure tab.

  12. To view the published version of your application, complete the following steps:

    1. Choose the plus sign + before Version, and then select release.

    2. Choose the Resources tab.