One of the architectural patterns for application migration
is about managing AWS Service Catalog products in multiple AWS Accounts and AWS
Regions. AWS Service Catalog is used to create, share organize and govern the
curated IaC templates. Governance and distribution of Infrastructure is
simplified and accelerated. AWS uses CloudFormation Templates to define a
collection of AWS resources aka stacks required for a solution or a product.
StackSets extend this functionality by enabling us to create, update or delete
stacks across multiple accounts and AWS Regions with a single operation.
If a CloudFormation template must be made available to other
AWS accounts or organizational units, then the portfolio is typically shared. A
portfolio is a container that includes one or more products.
On the other hand, this architectural pattern is an
alternative approach that is based on AWS CloudFormation StackSets. Instead of
sharing portfolio, we use AWS StackSet constraints to set AWS regions and
accounts where the resources can be deployed and used. This approach helps to
provision the Service Catalog products in multiple accounts, OUs and AWS
Regions, and managed from a central location which meets governance
requirements.
The benefits of this approach are the following:
1.
the product is provisioned and managed from a
primary account, and not shared with other accounts.
2.
This approach provides a consolidated view of
all provisioned products (stacks) that are based on a specific set of
templates.
3.
The use of a primary account makes the
configuration with AWS Service management Connector easier
4.
It is easier to query and use products from the
AWS Service Catalog.
The architecture involves an AWS management account and a
target Organizational Unit (OU) account. The CloudFormation template and the
service catalog product are in the management account. The CloudFormation stack and its resources
are in the target OU account. The user creates an AWS CloudFormation template
to provision AWS resources, in JSON or Yaml format. The CloudFormation template
creates a product in AWS Service Catalog, which is added to a portfolio. The
user creates a provisioned product, which creates CloudFormation stacks in the
target accounts. Each stack provisions the resources specified in the
CloudFormation templates.
The steps to provision products across accounts include: 1. Creating a
portfolio say with the AWS command line interface 2. Create the template that
describes the resources, 3. Create a product with version title and description
and 4. Apply constraints to the portfolio to configure product deployment
options such as multiple AWS accounts, regions and permissions and 5. Provide
permissions to users so that they can launch the products in the portfolio.
No comments:
Post a Comment