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 (AppComponent). AWS Resilience Hub has rules governing which AWS
resources can belong to which type of AppComponent. For example, a DBInstance
can belong to AWS::ResilienceHub::DatabaseAppComponent
but not to
AWS::ResilienceHub::ComputeAppComponent
.
When the application is imported into AWS Resilience Hub with AWS CloudFormation stack, Terraform state
file, AWS Resource Groups, Amazon Elastic Kubernetes Service cluster, or an AppRegistry application, AWS Resilience Hub makes its best
effort to group related resources into the same AppComponent, 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
AppComponent 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 AppComponents 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::StepFunctions::StateMachine
-
-
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 AppComponent.
-
Group an Amazon S3 bucket and its replication under a single AppComponent.
-
Group Amazon EC2 instances that run the same application under a single AppComponent.
-
Group an Amazon SQS queue and its dead-letter queue under a single AppComponent.
-
Group Amazon ECS services in one Region and failover Amazon ECS services in another Region under a single AppComponent.
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
-
In the navigation pane, choose Applications.
-
On the Applications page, choose the application name that contains the resource you want to regroup.
-
Choose the Application structure tab.
-
Under Version, select the application version with Draft status.
-
Choose the Resources tab.
-
Select the resource that you want to regroup.
-
From Actions, choose Change AppComponent.
The Change AppComponent dialog box displays.
-
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.
-
To group the resource in a different AppComponent, choose a different AppComponent from the Choose AppComponent dropdown list.
-
Choose Add.
-
Delete any empty AppComponents from the AppComponents tab.
-
Choose Publish new version.
-
Choose the Application structure tab.
-
To view the published version of your application, complete the following steps:
-
Under Version tab, select the application version with Current release status.
-
Choose the Resources tab.
-
To group resources
-
In the navigation pane, choose Applications.
-
On the Applications page, choose the application name that contains the resources that you want to group.
-
Choose the Application structure tab.
-
Under Version tab, select the application version with Draft status.
-
Choose the Resources tab.
-
Choose the resources that you want to group.
Note
You cannot choose manually added resources.
-
Choose Actions, and then choose Group resources.
The Combine AppComponent window displays.
-
Choose an AppComponent from the Choose AppComponent dropdown list in which you want to group the resource.
-
Choose Save.
-
Choose Publish new version.
-
Choose the Application structure tab.
-
To view the published version of your application, complete the following steps:
-
Under Version tab, select the application version with Current release status.
-
Choose the Resources tab.
-