Introduction
The IGAD Innovation Hub is deployed as a serverless application on AWS using the AWS Serverless Application Model (SAM). The platform consists of a React frontend and Python FastAPI backend, all managed through Infrastructure as Code.Deployment Environments
The platform supports two deployment environments:Testing Environment
- Purpose: Development and testing before production release
- Stack Name:
igad-backend-testing - Resource Prefix:
igad-testing-* - AWS Profile:
IBD-DEV - Region:
us-east-1 - Configuration:
config/testing.json
Production Environment
- Purpose: Live production system
- Stack Name:
igad-backend-production - Resource Prefix:
igad-prod-* - AWS Profile:
IBD-DEV - Region:
us-east-1 - Configuration:
config/production.json
AWS Services Used
The IGAD Innovation Hub leverages the following AWS services:Compute & API
| Service | Purpose | Configuration |
|---|---|---|
| AWS Lambda | Backend API functions | Python 3.11, ARM64 architecture |
| API Gateway | REST API endpoint | Stage: prod, Binary media types supported |
| Lambda Web Adapter | FastAPI to Lambda bridge | Layer ARN: arn:aws:lambda:us-east-1:753240598075:layer:LambdaAdapterLayerArm64:25 |
-
ApiFunction
- Handler:
bootstrap - Memory: 512 MB
- Timeout: 300 seconds (5 minutes)
- Runtime: Python 3.11 on ARM64
- Handler:
-
AnalysisWorkerFunction
- Handler:
app.tools.proposal_writer.workflow.worker.handler - Memory: 1024 MB
- Timeout: 900 seconds (15 minutes)
- Purpose: Async RFP analysis and background processing
- Handler:
Frontend Distribution
| Service | Purpose | Configuration |
|---|---|---|
| Amazon S3 | Static website hosting | Private bucket with CloudFront OAC |
| Amazon CloudFront | CDN and global distribution | Custom error pages for SPA routing |
| CloudFront Function | SPA route handling | Rewrites requests to /index.html |
Data Storage
| Service | Purpose | Configuration |
|---|---|---|
| Amazon DynamoDB | NoSQL database | Single-table design, on-demand billing |
| Amazon S3 | Document storage | Versioned bucket for proposal documents |
| S3 Vectors | Vector embeddings storage | Cosine similarity search, 1024 dimensions |
- Testing:
igad-testing-main-table - Production:
igad-prod-main-table(inferred from pattern)
- Website:
igad-*-testing/production-websitebucket-*(auto-generated) - Proposal Documents:
igad-proposal-documents-${AWS::AccountId} - Vector Storage:
igad-proposals-vectors-testing/igad-proposals-vectors-production
Authentication & Authorization
| Service | Purpose | Configuration |
|---|---|---|
| Amazon Cognito | User authentication | User pools with email-based login |
| Cognito Groups | Role-based access control | Admin, Editor, Viewer groups |
- Testing:
us-east-1_IMi3kSuB8(User Pool),7p11hp6gcklhctcr9qffne71vl(Client) - Production: Separate pool with stricter password policies
AI/ML Services
| Service | Purpose | Configuration |
|---|---|---|
| Amazon Bedrock | LLM inference | Claude 3 models for AI generation |
| Bedrock Knowledge Base | RAG knowledge retrieval | Knowledge Base ID: NPDZSLKCYX |
Monitoring & Logging
| Service | Purpose | Configuration |
|---|---|---|
| Amazon CloudWatch | Logs and metrics | 7-day retention (testing), 30-day (production) |
| AWS SES | Email notifications | Cognito email delivery |
Architecture Diagram
Deployment Strategy
Recommended Workflow
-
Test in Testing Environment
- Deploy to
igad-backend-testing - Verify all functionality
- Run integration tests
- Review CloudWatch logs
- Deploy to
-
Production Deployment
- Requires manual confirmation
- Deploys to
igad-backend-production - Runs automated tests before deployment
- Creates CloudFront cache invalidation
-
Rollback Strategy
- CloudFormation stack rollback capability
- S3 bucket versioning enabled
- Lambda function versions maintained
SAM Configuration
The deployment uses AWS SAM with configuration insamconfig.toml:
CloudFormation Template
The infrastructure is defined intemplate.yaml using:
- Transform:
AWS::Serverless-2016-10-31 - Resources: Lambda functions, API Gateway, S3 buckets, CloudFront, DynamoDB table references
- Outputs: API endpoints, CloudFront URL, bucket names, function ARNs
Next Steps
Deploy to Testing
Learn how to deploy to the testing environment
Deploy to Production
Learn how to deploy to production with safety checks
Environment Configuration
Configure environment variables and AWS resources