aws-solutions-constructs icon indicating copy to clipboard operation
aws-solutions-constructs copied to clipboard

The AWS Solutions Constructs Library is an open-source extension of the AWS Cloud Development Kit (AWS CDK) that provides multi-service, well-architected patterns for quickly defining solutions

AWS Solutions Constructs

Browse Library: https://aws.amazon.com/solutions/constructs/patterns/
Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/

The AWS Solutions Constructs library is an open-source extension of the AWS Cloud Development Kit (AWS CDK) that provides multi-service, well-architected patterns for quickly defining solutions in code to create predictable and repeatable infrastructure. The goal of AWS Solutions Constructs is to accelerate the experience for developers to build solutions of any size using pattern-based definitions for their architecture.

The patterns defined in AWS Solutions Constructs are high level, multi-service abstractions of AWS CDK constructs that have default configurations based on well-architected best practices. The library is organized into logical modules using object-oriented techniques to create each architectural pattern model.

The CDK is available in the following languages:

  • JavaScript, TypeScript (Node.js ≥ 10.13.0)
  • Python (Python ≥ 3.6)
  • Java (Java ≥ 8 and Maven ≥ 3.5.4)

Modules

The AWS Solutions Constructs library is organized into several modules. They are named like this:

  • aws-xxx: well architected pattern package for the indicated services. This package will contain constructs that contain multiple AWS CDK service modules to configure the given pattern.
  • xxx: packages that don't start "aws-" are core modules that are used to configure best practice defaults for services used within the pattern library.

Module Contents

Modules contain the following types:

  • Patterns - All higher-level, multi-services constructs in this library.
  • Other Types - All non-construct classes, interfaces, structs and enums that exist to support the patterns.

Patterns take a set of (input) properties in their constructor; the set of properties (and which ones are required) can be seen on a pattern's documentation page.

The pattern's documentation page also lists the available methods to call and the properties which can be used to retrieve information about the pattern after it has been instantiated.

Sample Use Cases

This library includes a collection of functional use case implementations to demonstrate the usage of AWS Solutions Constructs architectural patterns. These can be used in the same way as architectural patterns, and can be conceptualized as an additional "higher-level" abstraction of those patterns. The following use cases are provided as functional examples:

  • aws-custom-glue-etl - implements an example using the Kinesis Data Streams Glue Job construct. The application architecture uses a custom ETL job defined in AWS Glue that takes in data from Amazon Kinesis Data Streams to process and store it in the target datastore as defined by the ETL script (for this example an S3 bucket location).
    • Use case pattern: https://github.com/awslabs/aws-solutions-constructs/tree/main/source/use_cases/aws-custom-glue-etl
  • aws-s3-static-website - implements an Amazon CloudFront distribution, Amazon S3 bucket and AWS Lambda-based custom resource to copy the static website content for the Wild Rydes demo website (part of the aws-serverless-web-app implementation).
    • Use case pattern: https://github.com/awslabs/aws-solutions-constructs/tree/main/source/use_cases/aws-s3-static-website
  • aws-restaurant-management-demo - implements a complex, multi-stack architecture that models a restaurant management system. This use case will provision a stack for service/wait staff to open/close orders, a stack for kitchen staff to view/complete orders, and a stack for managers to perform various business functions. It will also provision a stack containing a central DynamoDB table for managing orders, as well as a Lambda layer for sharing common database access patterns.
    • Use case pattern: https://github.com/awslabs/aws-solutions-constructs/tree/main/source/use_cases/aws-restaurant-management-demo

© Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.