AWS Security ChangesHomeSearch

AWS prescriptive-guidance documentation change

Service: prescriptive-guidance · 2026-07-10 · Documentation low

File: prescriptive-guidance/latest/cloud-design-patterns/strangler-fig.md

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
-![Monolithic application with three services.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-1.png)
+![Monolithic application with three services](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/4334547f-fd23-48fc-8dbb-acbca43b1b5b.png)
@@ -77 +77 @@ The first step is to add a proxy layer between the storefront UI and the monolit
-![Adding a proxy to the monolithic application.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-2.png)
+![Adding a proxy to the monolithic application](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/c58461a3-dea5-4252-85d0-fb8d30bfd025.png)
@@ -81 +81 @@ When you want to add new features to your application, you implement them as new
-![Proxy routing calls to the monolith or to a new microservice.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-3.png)
+![Proxy routing calls to the monolith or to a new microservice](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/61eba37b-f357-4721-bdc5-efa0bfe8ea46.png)
@@ -87 +87 @@ In the following architecture, the user service has been migrated to a microserv
-![Adding an ACL to convert calls to the new interface.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-4.png)
+![Adding an ACL](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/ae7bfe0a-95de-41a5-966b-25c1075d6dc7.png)
@@ -97 +97 @@ As a best practice, the microservice should own its data. The user service store
-![Adding a synchronizing agent.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-5.png)
+![Adding a synchronizing agent](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/85c5df50-c23d-4270-8202-e6329dd3ea3a.png)
@@ -103 +103 @@ When the cart service is migrated out of the monolithic application, its code is
-![Migrating additional services.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-6.png)
+![Migrating additional services](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/83ee091a-ac3a-4171-a105-bb213ee5d651.png)
@@ -107 +107 @@ The following diagram shows the final strangled state where all services have be
-![Final strangled state after migration of all services.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-7.png)
+![Final strangled state](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/5e904fe6-5028-43c4-b6d5-99c835bd887d.png)
@@ -111 +111 @@ The following diagram shows the final architecture after the monolithic applicat
-![Final architecture after decommissioning monolith.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-8.png)
+![Final architecture after decommissioning monolith](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/a9c3e90f-3c56-46bf-b4f1-d82052d3d005.png)
@@ -119 +119 @@ The following diagram shows the initial state of the monolithic application. Let
-![Initial state of the monolithic application when using the strangler fig pattern.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-9.png)
+![](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/b0dfd95f-f48d-4dd2-abae-ea4b6ea9bc8c.png)
@@ -127 +127 @@ AWS Migration Hub Refactor Spaces is no longer open to new customers as of Novem
-![Implementing the strangler fig pattern with API Gateway.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-10.png)
+![Implementing the strangler fig pattern with API Gateway](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/636e0c78-75b4-431c-94fe-b82016a8ea26.png)
@@ -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
-![Implementing the strangler fig pattern with API Gateway: configuring routing.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-11.png)
+![](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/d2fc0639-be3f-449b-88e6-678e176b5bb8.png)
@@ -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
-![Moving a service out of the monolith with the strangler fig pattern.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-12.png)
+![](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/84c9ccf4-73b5-4e38-9120-d27cd51f9cc8.png)
@@ -139 +139 @@ In the next diagram, the last service (account) is migrated out of the monolith
-![Moving all services out of the monolith with the strangler fig pattern.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-13.png)
+![Moving all services out of the monolith with the strangler fig pattern](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/9416bff7-e2e7-4662-bdda-46085fecfe8b.png)
@@ -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
-![Implementing the strangler fig pattern with AWS Migration Hub Refactor Spaces.](/images/prescriptive-guidance/latest/cloud-design-patterns/images/fig-14.png)
+![Implementing the strangler fig pattern with Migration Hub Refactor Spaces](/images/prescriptive-guidance/latest/cloud-design-patterns/images/guide-img/48f618e4-d8ad-490f-982b-7b304dbf76c9/images/eb8395a2-e884-43f6-bf7b-a4c3c2c9f48d.png)
@@ -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)