Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

AWS Cloud Migrator

AWS Cloud Migrator is an AI-powered tool designed to act as a "Cloud Modernization Architect." It takes descriptions of legacy infrastructure (on-premise, virtual machines, old tech stacks) and proposes a modern, cloud-native AWS architecture.

The tool leverages AWS Bedrock (Anthropic Claude 3) to analyze input text, generate a React Flow diagram of the target architecture, provide a migration insights table, and even generate ready-to-use Terraform code.

Project Architecture

  • viewer/: The React-based frontend application (Vite + React Flow + Typescript). The UI is structured into clean domains (components/, flow/, services/).
  • infra/: Terraform configurations to deploy the entire stack on AWS.
    • S3 & CloudFront: Hosts the compiled static React application.
    • Lambda Bedrock Proxy: A secure backend endpoint connecting to AWS Bedrock for AI generation, bypassing the need for client-side API keys.
    • Lambda S3 Proxy: A serverless function saving your generated project sessions to a secure AWS storage archive bucket.

🚀 Getting Started (Local Development)

Prerequisites

  • Node.js (v22+)
  • Your AWS infrastructure must be deployed at least once (see Deployment) in order to obtain the backend Lambda URLs.

Installation

  1. Create a viewer/.env file and insert the endpoints provided by your Terraform output:

    VITE_BEDROCK_API_URL=https://...lambda-url.eu-west-2.on.aws/
    VITE_LAMBDA_URL=https://...lambda-url.eu-west-2.on.aws/
  2. Install dependencies:

    cd viewer
    npm install
  3. Run the development server:

    npm run dev
  4. Open the application in your browser (usually http://localhost:5173).


☁️ Deployment (AWS)

Prerequisites

  • Terraform (v1.7+)
  • AWS CLI configured with credentials

Deploy Infrastructure (Backend & Hosting)

  1. Navigate to the infra directory:

    cd infra
  2. Initialize and Apply Terraform:

    terraform init
    terraform apply

    Important: Take note of the bedrock_api_url and lambda_url outputs. Ensure they are placed in viewer/.env before deploying the frontend.

Deploy Frontend Code

After the infrastructure (Lambdas & S3/CloudFront) is ready and your .env is properly configured, build and sync the React app to your bucket.

From the viewer directory:

npm run deploy

(This triggers deploy.sh which executes Vite build, uploads the bundle to your S3 Bucket, and invalidates the CloudFront cache automatically without blocking).

Access your application via the CloudFront URL outputted by Terraform.


🛠️ Features & Usage

  1. Architecture Generation: Describe your legacy infrastructure in the text area and click "Generate New Architecture".
  2. Interactive Diagram: The tool produces a visual Node mapping (VPC, Subnets, Fargate, RDS, etc.).
  3. Migration Insights: View legacy components mapped against modern AWS targets with specific strategies (Refactor, Replatform) and alternative suggestions.
  4. Iterative Chat: Modify the generated graph dynamically using the Chat prompt (e.g., "Add an SQS queue between the API and the Database").
  5. Generate Terraform: Click "View Terraform" to convert your current graph into functional .tf code blocks.
  6. Save & History: Save your diagrams securely to your AWS Archive S3 Bucket, and load them later via the History panel.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages