AWS Machine Learning Blog

Generate AWS Resilience Hub findings in natural language using Amazon Bedrock

Resilient architectures are the foundation upon which successful businesses are built. However, keeping up with the latest advancements and making sure your systems are resilient can be a daunting task. Between monitoring, analyzing, and documenting architectural findings, a lack of crucial information can leave your organization vulnerable to potential risks and inefficiencies. Even when architectural assessments are conducted, the reports can be highly technical and challenging to comprehend for key stakeholders.

In this post, we explore how to use the power of AWS Resilience Hub and Amazon Bedrock to bridge this gap and streamline the process of sharing architectural findings across your organization. We walk through a solution that uses the generative AI capabilities of Amazon Bedrock to translate technical reports into concise, natural language summaries, making them accessible to a broader audience.

By using the capabilities of Resilience Hub and Amazon Bedrock, you can share findings with C-suite executives, engineers, managers, and other personas within your corporation to provide better visibility over maintaining a resilient architecture.

Solution Overview

By combining Resilience Hub and Amazon Bedrock, you can generate architectural findings in natural language to save time, better understand Recovery Time Objective (RTO) and Recovery Point Objective (RPO) requirements, and distribute assessments through a clear and concise view. Resilience Hub is a central location on the AWS Management Console to manage, define, and assess resilience goals with recommendations based on the AWS Well-Architected Framework. Amazon Bedrock is a fully managed service to build generative AI applications with foundation models (FMs) from leading AI companies such as Anthropic, Mistral AI, Meta, Stability AI, Cohere, AI21 Labs, and Amazon through a single API. Amazon Bedrock allows for integrating generative AI solutions within your application with the ability to test, fine-tune, and customize top FMs based on your use case.

The solution presented in this post is orchestrated through Amazon Cognito to log in to a sample UI that invokes AWS Lambda functions and Amazon Bedrock prompts through large language models (LLMs). Resilience Hub provides resiliency and operational recommendations that include alarms, standard operating procedures (SOPs), and fault injection experiments through AWS Fault Injection Service (FIS). After the assessment Amazon Resource Name (ARN) is input from Resilience Hub, the findings are summarized in natural language to share with other users.

The following diagram illustrates the solution architecture.

The solution workflow includes the following steps:

  1. The user is authenticated through Amazon Cognito with a user name and password.
  2. The user accesses the main UI through Amazon CloudFront, which runs a single-page application hosted on Amazon Simple Storage Service (Amazon S3).
  3. Amazon API Gateway validates the access token with Amazon Cognito, then uses a Lambda function as the integration target.
  4. Lambda gathers the most recent assessment ARN from your published applications in Resilience Hub.
  5. A second Lambda function invokes the Amazon Bedrock API.
  6. Amazon Bedrock processes the assessment and uses prompt engineering techniques to generate the report in natural language based on target personas.

Prerequisites

For this walkthrough, the following are required:

Deploy solution resources

You can deploy the solution using a CloudFormation template, found on the GitHub repo, to automatically provision the necessary resources in your AWS account. You will provision the Amazon S3 hosted UI using the AWS CDK.

Run the solution

Complete the following steps to run the solution:

  1. Within your terminal or preferred integrated development environment (IDE), run the following commands:
    git clone https://github.com/aws-samples/resilience-hub-genai.git 
    cd aws-resilience-hub-genai/backend
  2. Using the text editor (vim, nano, notepad) of your choice, replace EMAIL in the constants.py file with your email.
  3. Deploy with the following code:
    cd ..
    ./deploy.sh

Wait for the CloudFormation template to successfully launch. This template takes approximately 10 minutes to deploy.

  1. On the AWS CloudFormation console, on the stack’s Outputs tab, locate the public-facing URL for your web application (labeled CLOUDFRONTDISTRIBUTION).

You should have received an email with your user name being the email you provided in the constants.py file and a temporary password.

  1. Log in using the provided credentials, then confirm the password change.
  2. In the UI, choose Report in the navigation pane.
  3. For Persona, choose your desired persona.
  4. For Application, choose your desired application from the list of existing published applications.
  5. Choose Generate Report to review the concise, summarized report generated from the most recent assessment, which is ready for distribution.

Review the summary

This solution includes a summary example from a sample stack from the executive persona. Due to the nature of generative AI, your results may slightly vary, but will look similar to the following screenshot.

Clean up

To clean up the solution, complete the following steps:

  1. On the AWS CloudFormation console, delete the CloudFormation stack you created earlier.
  2. If you downloaded the sample CloudFormation template to assess in Resilience Hub, delete that stack as well.
  3. On the Resilience Hub console, delete the newly created application. This will delete the assessments.

Conclusion

In this post, we discussed how Resilience Hub and Amazon Bedrock can greatly improve the maintenance and evaluation of resilient architectures in your organization. This solution automates the translation of technical architectural findings into natural language summaries, making critical information accessible to various stakeholders, including C-suite executives, auditors, and managers. Streamlined communication leads to improved understanding and faster decision-making, ultimately benefiting your business operations. Integrating AWS services such as Lambda and Amazon Cognito further automates and simplifies the workflow, providing a seamless experience from assessment to reporting.

Ready to enhance your organization’s architectural resilience? Deploy the solution today and begin transforming your technical reports into concise summaries by following the steps outlined in this post. This allows stakeholders to access important information, promoting informed decision-making and a resilient culture.

For more insights and related content, refer to the following:


About the Authors

Ibrahim Ahmad is a Solutions Architect at AWS with a focus in resilience and machine learning. He builds solutions for government technology customers to scale and modernize their cloud solutions. Outside of work, he loves to spend time with friends and family, work out, and race cars.

Mike P. is a Sr. Solutions Architect at AWS based in South Florida. He specializes in helping customers use AWS services to enhance their security posture and explore the potential of generative AI technologies. Mike works closely with organizations to design and implement robust security solutions while exploring innovative use cases for generative AI.

Leland Johnson is a Sr. Solutions Architect for AWS focusing on travel and hospitality. As a Solutions Architect, he plays a crucial role in guiding customers through their cloud journey by designing scalable and secure cloud solutions. Outside of work, he enjoys playing music and flying light aircraft.