AWS prescriptive-guidance documentation change
Summary
Updated section headers, image paths, and minor text edits; added workshop reference and clarified multi-account deployment; noted Migration Hub Refactor Spaces deprecation.
Security assessment
Changes involve documentation restructuring, image path updates, and non-security content additions (workshop link). No security vulnerabilities, patches, or security-specific features are mentioned. The Refactor Spaces deprecation note is operational, not security-related.
Diff
diff --git a/prescriptive-guidance/latest/cloud-design-patterns/strangler-fig.md b/prescriptive-guidance/latest/cloud-design-patterns/strangler-fig.md index e6f135a0f..d9dbb5478 100644 --- a//prescriptive-guidance/latest/cloud-design-patterns/strangler-fig.md +++ b//prescriptive-guidance/latest/cloud-design-patterns/strangler-fig.md @@ -7 +7 @@ -IntentMotivationApplicabilityIssues and considerationsImplementationWorkshopBlog referencesRelated content +IntentMotivationAccessibilityIssues and considerationsImplementationWorkshopBlog referencesRelated content @@ -19 +19 @@ Monolithic applications are developed to provide most of their functionality wit -When the application scales in size, it increases the cognitive load on the team and can cause unclear team ownership boundaries. Scaling individual features based on the load isn't possible—the entire application has to be scaled to support peak load. As the systems age, the technology can become obsolete, which drives up support costs. Monolithic, legacy applications follow best practices that were available at the time of development and weren't designed to be distributed. +When the application scales in size, it increases the cognitive load on the team and can cause unclear team ownership boundaries. Scaling individual features based on the load isn't possible―the entire application has to be scaled to support peak load. As the systems age, the technology can become obsolete, which drives up support costs. Monolithic, legacy applications follow best practices that were available at the time of development and weren't designed to be distributed. @@ -27 +27 @@ One way to resolve this issue is to use the strangler fig pattern, which was int -## Applicability +## Accessibility @@ -73 +73 @@ In the following diagram, a monolithic application has three services: user serv - + @@ -77 +77 @@ The first step is to add a proxy layer between the storefront UI and the monolit - + @@ -81 +81 @@ When you want to add new features to your application, you implement them as new - + @@ -87 +87 @@ In the following architecture, the user service has been migrated to a microserv - + @@ -97 +97 @@ As a best practice, the microservice should own its data. The user service store - + @@ -103 +103 @@ When the cart service is migrated out of the monolithic application, its code is - + @@ -107 +107 @@ The following diagram shows the final strangled state where all services have be - + @@ -111 +111 @@ The following diagram shows the final architecture after the monolithic applicat - + @@ -119 +119 @@ The following diagram shows the initial state of the monolithic application. Let - + @@ -127 +127 @@ AWS Migration Hub Refactor Spaces is no longer open to new customers as of Novem - + @@ -129 +129 @@ AWS Migration Hub Refactor Spaces is no longer open to new customers as of Novem -The user service is migrated into a Lambda function, and an [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) database stores its data. A Lambda service endpoint and default route are added to Refactor Spaces, and API Gateway is automatically configured to route the calls to the Lambda function. +The user service is migrated into a Lambda function, and an [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) database stores its data. A Lambda service endpoint and default route are added to Refactor Spaces, and API Gateway is automatically configured to route the calls to the Lambda function. For implementation details, see Module 2 in the [Iterative App Modernization Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/f2c0706c-7192-495f-853c-fd3341db265a/en-US/refactor-spaces). @@ -131 +131 @@ The user service is migrated into a Lambda function, and an [Amazon DynamoDB](ht - + @@ -133 +133 @@ The user service is migrated into a Lambda function, and an [Amazon DynamoDB](ht -In the following diagram, the cart service has also been migrated out of the monolith and into a Lambda function. An additional route and service endpoint are added to Refactor Spaces, and traffic automatically cuts over to the `Cart` Lambda function. The data store for the Lambda function is managed by [Amazon ElastiCache](https://aws.amazon.com/elasticache/). The monolithic application still remains in the EC2 instance along with the Amazon RDS database. +In the following diagram, the cart service has also been migrated out of the monolith and into a Lambda function. An additional route and service endpoint are added to Refactor Spaces, and traffic automatically cuts over to the Cart Lambda function. The data store for the Lambda function is managed by [Amazon ElastiCache](https://aws.amazon.com/elasticache/). The monolithic application still remains in the EC2 instance along with the Amazon RDS database. @@ -135 +135 @@ In the following diagram, the cart service has also been migrated out of the mon - + @@ -139 +139 @@ In the next diagram, the last service (account) is migrated out of the monolith - + @@ -141 +141 @@ In the next diagram, the last service (account) is migrated out of the monolith -#### Using multiple accounts +#### Using multiple AWS accounts @@ -143 +143 @@ In the next diagram, the last service (account) is migrated out of the monolith -In the previous implementation, we used a single VPC with a private and a public subnet for the monolithic application, and we deployed the microservices within the same AWS account for the sake of simplicity. However, this is rarely the case in real-world scenarios, where microservices are often deployed in multiple AWS accounts for deployment independence. In a multi-account structure, you need to configure routing traffic from the monolith to the new services in different accounts. +In the previous implementation, we used a single VPC with a private and a public subnet for the monolithic application, and we deployed the microservices within the same AWS account for the sake of simplicity. However, this is rarely the case in real-world scenarios where microservices are often deployed in multiple AWS accounts for deployment independence. In a multi-account structure, you need to configure routing traffic from the monolith to the new services in different accounts. @@ -145 +145 @@ In the previous implementation, we used a single VPC with a private and a public -[Refactor Spaces](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/userguide/what-is-mhub-refactor-spaces.html) helps you create and configure the AWS infrastructure for routing API calls away from the monolithic application. Refactor Spaces orchestrates [API Gateway](https://aws.amazon.com/api-gateway/), [Network Load Balancer](https://aws.amazon.com/elasticloadbalancing/), and resource-based [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) policies inside your AWS accounts as part of its application resource. You can transparently add new services in a single AWS account or across multiple accounts to an external HTTP endpoint. All of these resources are orchestrated inside your AWS account and can be customized and configured after deployment. +[Refactor Spaces](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/userguide/what-is-mhub-refactor-spaces.html) helps you create and configure the AWS infrastructure for routing API calls away from the monolithic application. Refactor Spaces orchestrates API Gateway, Network Load Balancer, and resource-based AWS Identity and Access Management (IAM) policies inside your AWS accounts as part of its application resource. You can transparently add new services in a single AWS account or across multiple accounts to an external HTTP endpoint. All of these resources are orchestrated inside your AWS account and can be customized and configured after deployment. @@ -147 +147 @@ In the previous implementation, we used a single VPC with a private and a public -Let's assume that the user and cart services are deployed to two different accounts, as shown in the following diagram. When you use Refactor Spaces, you only need to configure the service endpoint and the route. Refactor Spaces automates the [API Gateway–Lambda](https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-lambda-integration.html) integration and the creation of Lambda resource policies, so you can focus on safely refactoring services off the monolith. +Let's assume that the user and cart services are deployed to two different accounts, as shown in the following diagram. When you use Refactor Spaces, you only need to configure the service endpoint and the route. Refactor Spaces automates the [API Gateway-Lambda integration](https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-with-lambda-integration.html) and the creation of Lambda resource policies, so you can focus on safely refactoring services off the monolith. @@ -149 +149 @@ Let's assume that the user and cart services are deployed to two different accou - + @@ -164 +164 @@ For a video tutorial on using Refactor Spaces, see [Refactor Apps Incrementally - * [Deep Dive on an AWS Migration Hub Refactor Spaces](https://aws.amazon.com/blogs/mt/deep-dive-on-an-aws-migration-hub-refactor-spaces-environment/) + * [Deep Dive on an AWS Migration Hub Refactor Spaces Environment](https://aws.amazon.com/blogs/mt/deep-dive-on-an-aws-migration-hub-refactor-spaces-environment/) @@ -175 +175 @@ For a video tutorial on using Refactor Spaces, see [Refactor Apps Incrementally - * [Refactor Spaces documentation](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/userguide/what-is-mhub-refactor-spaces.html) + * [Migration Hub Refactor Spaces documentation](https://docs.aws.amazon.com/migrationhub-refactor-spaces/latest/userguide/what-is-mhub-refactor-spaces.html)