⚑ Bedrock DevOps Demo

Cross-Account PrivateLink β€’ Per-Team Cost Attribution β€’ Operational Excellence
● Connected via PrivateLink
πŸ’¬ Chat
πŸ“„ Doc Summarizer
🚨 Incident Simulator
πŸ”₯ Load Test
πŸ—οΈ Architecture

Select a document to summarize:

πŸ—οΈ AWS Well-Architected Framework

~80K tokens β€’ Cloud architecture best practices

πŸ“– Amazon Bedrock User Guide

~50K tokens β€’ Service documentation & API patterns

πŸ¦™ Meta Llama 4 Research Paper

~100K tokens β€’ Model architecture & training
Select a document above and click "Summarize" to see the AI-generated summary via PrivateLink.

Bedrock Incident Simulator

Trigger real Bedrock errors to test the DevOps Agent investigation flow.
Each scenario sends a request that causes an error β†’ CW Alarm fires β†’ DevOps Agent investigates.

πŸ”΄ Deprecated Model (ValidationException)

Calls claude-3-haiku (EOL) β†’ "model identifier is invalid"
Maps to: Model EOL migration issue

🟠 Invalid Parameters (ValidationException)

Sends temperature + topP to Opus 4.7 β†’ "cannot both be specified"
Maps to: Meta Case #2 (parameter conflict)

🟣 Max Tokens Exceeded (ValidationException)

Requests 999,999 output tokens β†’ exceeds model's max output limit
Maps to: Meta Case #2 (parameter validation failure)

🟑 Non-existent Model (ValidationException)

Calls a completely fake model ID β†’ "model identifier is invalid"
Maps to: Misconfiguration / typo in model ID

πŸ”Œ PrivateLink Connectivity Failure

Blocks Lambda SG egress β†’ next request times out β†’ DevOps Agent investigates network
Maps to: Network misconfiguration / SG change

βšͺ NLB Targets Unhealthy

Deregisters NLB targets β†’ health checks fail β†’ DevOps Agent investigates NLB
Maps to: Infrastructure failure / target group misconfiguration

🟑 429 Throttling (Synthetic)

Publishes throttle metrics β†’ alarm fires in 10s β†’ DevOps Agent investigates quota
Maps to: Meta Case #3/#4 (TPM/RPM quota exceeded)

πŸ”΄ 503 Capacity Exhaustion (Synthetic)

Publishes server error metrics β†’ alarm fires in 10s β†’ DevOps Agent investigates
Maps to: Meta Case #1/#5 (model fleet capacity exhaustion)
Incident log will appear here...

DynamoDB Load Test

Simulates high write throughput against a provisioned DynamoDB table. When throttling occurs, CloudWatch Alarm fires β†’ DevOps Agent investigates.

10 req/s

Live Statistics

Requests Sent 0
Successful 0
Throttled 0
Error Rate 0%
Elapsed 0s
CW Alarm Status β€”
DevOps Agent β€”

End-to-End Architecture

Cross-Account PrivateLink Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    SPOKE ACCOUNT (us-east-1) β€” Consumer                      β”‚
β”‚                                                                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  CloudFront  │────▢│ API Gateway │────▢│  Lambda (VPC)                β”‚  β”‚
β”‚  β”‚  + S3 (UI)   β”‚     β”‚  /api/*     β”‚     β”‚  β€’ ConverseStream            β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β”‚  β€’ Per-team role assumption  β”‚  β”‚
β”‚                                            β”‚  β€’ Cost attribution          β”‚  β”‚
β”‚                                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                           β”‚ HTTPS :443       β”‚
β”‚                                                           β–Ό                  β”‚
β”‚                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                                            β”‚  VPC Endpoint Interface       β”‚  β”‚
β”‚                                            β”‚  (Cross-Region PrivateLink)   β”‚  β”‚
β”‚                                            β”‚  ServiceRegion: us-east-2     β”‚  β”‚
β”‚                                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                            β”‚
                                               ╔════════════╧════════════╗
                                               β•‘  AWS PrivateLink        β•‘
                                               β•‘  Cross-Region Traffic   β•‘
                                               β•‘  (private, encrypted)   β•‘
                                               β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•€β•β•β•β•β•β•β•β•β•β•β•β•β•
                                                            β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    HUB ACCOUNT (us-east-2) β€” Provider                         β”‚
β”‚                                                           β”‚                  β”‚
β”‚                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                                            β”‚  VPC Endpoint Service         β”‚  β”‚
β”‚                                            β”‚  (No acceptance required)     β”‚  β”‚
β”‚                                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                           β”‚                  β”‚
β”‚                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                                            β”‚  Network Load Balancer        β”‚  β”‚
β”‚                                            β”‚  (Internal, TCP :443)         β”‚  β”‚
β”‚                                            β””β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β”‚
β”‚                                                β”‚          β”‚          β”‚       β”‚
β”‚                                            β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”  β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”  β”Œβ”€β”€β–Όβ”€β”€β”€β”€β”  β”‚
β”‚                                            β”‚Target β”‚  β”‚Target β”‚  β”‚Target β”‚  β”‚
β”‚                                            β”‚10.1.1xβ”‚  β”‚10.1.2xβ”‚  β”‚10.1.3xβ”‚  β”‚
β”‚                                            β””β”€β”€β”€β”¬β”€β”€β”€β”˜  β””β”€β”€β”€β”¬β”€β”€β”€β”˜  β””β”€β”€β”€β”¬β”€β”€β”€β”˜  β”‚
β”‚                                                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜       β”‚
β”‚                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚                                            β”‚  Bedrock VPC Endpoints        β”‚  β”‚
β”‚                                            β”‚  β€’ bedrock-runtime            β”‚  β”‚
β”‚                                            β”‚  β€’ bedrock-agent-runtime      β”‚  β”‚
β”‚                                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                            β”‚
                                                            β–Ό
                                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                               β”‚   Amazon Bedrock       β”‚
                                               β”‚   (US CRIS Routing)    β”‚
                                               β”‚                        β”‚
                                               β”‚   us-east-1 / us-east-2β”‚
                                               β”‚   / us-west-2          β”‚
                                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Cost Attribution Flow (Gateway Pattern)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Web UI     │────▢│  Lambda         │────▢│  STS AssumeRole      │────▢│  Bedrock    β”‚
β”‚  (team      β”‚     β”‚  (Gateway)      β”‚     β”‚  per-team role       β”‚     β”‚  (invoked   β”‚
β”‚  selector)  β”‚     β”‚                 β”‚     β”‚                      β”‚     β”‚  as team)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                      β”‚
                                                      β–Ό
                                            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                            β”‚  CUR 2.0 shows:      β”‚
                                            β”‚  iamPrincipal/team   β”‚
                                            β”‚  = ml-platform       β”‚
                                            β”‚  = data-science      β”‚
                                            β”‚  = product-eng       β”‚
                                            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Incident β†’ DevOps Agent Investigation Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Error      │────▢│  CloudWatch │────▢│  SNS Topic  │────▢│  Webhook    │────▢│  DevOps     β”‚
β”‚  Occurs     β”‚     β”‚  Alarm      β”‚     β”‚             β”‚     β”‚  Lambda     β”‚     β”‚  Agent      β”‚
β”‚             β”‚     β”‚  (10s)      β”‚     β”‚             β”‚     β”‚  (HMAC)     β”‚     β”‚             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                                                                        β”‚
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     β”‚
     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  DevOps Agent Investigation:                                                 β”‚
β”‚                                                                              β”‚
β”‚  1. Checks CloudWatch Logs (Lambda errors, Bedrock invocation logs)          β”‚
β”‚  2. Checks CloudTrail (recent deployments, config changes)                   β”‚
β”‚  3. Inspects Lambda code (GetFunction)                                       β”‚
β”‚  4. Checks NLB health, VPC Endpoint status                                  β”‚
β”‚  5. Correlates timeline (error start β†’ deployment β†’ config change)           β”‚
β”‚  6. Posts findings to Slack (#meta-bedrockdevops-agent-investigation)        β”‚
β”‚                                                                              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CloudFormation Stacks

Stack Account Resources
bedrock-devops-demo-spoke-vpc Spoke VPC, 3 subnets, IGW, SSM/STS/S3 endpoints
bedrock-devops-demo-hub-vpc Hub VPC, 3 subnets, IGW
bedrock-devops-demo-hub Hub Bedrock VPCEs, NLB, VPCE Service, Invocation Logging
bedrock-devops-demo-spoke Spoke VPCE Interface, STS endpoint, Test Lambda
bedrock-devops-demo-cost-attribution Hub Per-team IAM roles (ml-platform, data-science, product-eng)
bedrock-devops-demo-monitoring Hub NLB/VPCE alarms, CloudWatch dashboard
bedrock-devops-demo-observability Hub Metric filters, Bedrock alarms, VPC Flow Logs, Ops dashboard
bedrock-devops-demo-web-ui Spoke CloudFront, S3, API GW, Lambdas, DynamoDB, Alarms
bedrock-devops-demo-agent-space Spoke DevOps Agent Space, IAM roles, Associations