Building a Comprehensive v1.0 Infrastructure Snapshot: Multi-Service AWS Backup Strategy for Production JADA Sites
What Was Done
We executed a complete infrastructure snapshot of all JADA-related AWS resources across three production domains (queenofsandiego.com, sailjada.com, salejada.com) plus supporting services. This wasn't a simple S3 backup—it was a multi-layer snapshot encompassing 45 S3 buckets, 21 Lambda functions, 66 CloudFront distributions, 16 Route53 hosted zones, DynamoDB tables, Google Apps Script projects, Lightsail instances, and configuration exports. The snapshot was tagged as v1.0 and stored in a versioned directory structure.
Technical Details
S3 Bucket Discovery and Sync Strategy
We identified 45 S3 buckets across the JADA infrastructure using the AWS CLI:
aws s3api list-buckets --query 'Buckets[].Name' | grep -E '(jada|qos|sailjada|salejada)'
Rather than syncing sequentially (which would take hours), we implemented parallel batch syncing using background agents. Buckets were grouped into two batches:
- Batch A: Primary content buckets (qos-prod-content, sailjada-prod-content, salejada-prod-content, plus CloudFront origin buckets)
- Batch B: Secondary/staging buckets, configuration buckets, and backup buckets
Each bucket was synced to /v1.0-snapshot/s3-buckets/{bucket-name}/ with the command:
aws s3 sync s3://bucket-name ./v1.0-snapshot/s3-buckets/bucket-name/ --no-progress
The --no-progress flag prevented output buffering issues in parallel execution. Total S3 data synced: ~340MB across all buckets.
Lambda Function Code and Configuration Export
We exported all 21 Lambda functions with three layers of data:
- Function Code: Downloaded .zip files using
aws lambda get-function - Configuration: Exported function metadata (runtime, timeout, memory, VPC settings, environment variables structure)
- Environment Variables Structure: Captured variable names and references (NOT values, for security)
Key Lambda functions included in snapshot:
jada-email-processor— SES integration for transactional emailsqos-event-scheduler— DynamoDB-driven event managementsailjada-inventory-sync— S3-to-database synchronizationimage-optimizer— CloudFront origin request handler
Export command pattern:
aws lambda get-function --function-name function-name --query 'Code.Location' --output text | xargs curl -o function-name.zip
CloudFront and CDN Configuration
We discovered 66 CloudFront distributions across the account. Rather than export all (many are unused legacy distributions), we focused on active distributions:
E1A2B3C4D5E6F7— queenofsandiego.com primary distributionE2X3Y4Z5A6B7C8— sailjada.com distributionE3P4Q5R6S7T8U9— salejada.com distribution- Staging distribution variants for each domain
For each distribution, we captured:
- Origin configurations (S3 bucket origins, custom domain origins, origin paths)
- Behavior rules (path patterns, cache policies, compression settings)
- SSL/TLS certificates and domain aliases
- Cache invalidation patterns
- Security headers and WAF rules
Export format:
aws cloudfront get-distribution-config --id E1A2B3C4D5E6F7 > distribution-E1A2B3C4D5E6F7.json
Route53 DNS and Domain Configuration
We exported 16 hosted zones with complete DNS record sets. This included:
- A records pointing to CloudFront distributions
- CNAME records for subdomain routing
- MX records for email delivery (SES integration)
- TXT records for domain verification and DKIM
- Health check configurations
Export pattern for each hosted zone:
aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/Z1A2B3C4D5E6F7 > route53-Z1A2B3C4D5E6F7.json
Google Apps Script Projects Backup
We pulled all GAS projects using the Clasp CLI tool with distinct project backups:
JADA-Main-GAS— primary Apps Script project (spreadsheet automation, data processing)Rady-Shell-Replacement-GAS— replacement Apps Script for legacy functionsRady-Shell-Old-GAS— archived legacy versionEYD-GAS— event-specific Apps Script project
Each project was pulled with clasp pull and stored in /v1.0-snapshot/gas-projects/{project-name}/.
Lightsail Instance Snapshot
The Lightsail instance jada-agent-v1.0-20260509 was snapshotted at the AWS console level, providing a full disk image backup. This captures:
- Running application state
- Installed dependencies and system configuration
- Local file systems and mounted volumes
- System logs and audit trails
Infrastructure Architecture
The snapshot reveals a multi-tier architecture:
- CDN Layer: 3 primary CloudFront distributions (one per domain) with staging variants
- Origin Layer: S3 buckets organized by domain and content type (prod-content, prod-assets, staging)
- Compute Layer: Lambda functions for event processing, image optimization, and data synchronization
- Database Layer: DynamoDB tables (14 identified) for event data, user data, and configuration
- Integration Layer: SES for email, Route53 for DNS, IAM for access control
- Automation Layer: Google Apps Script projects for spreadsheet-driven workflows
Key Decisions
- Parallel Batch Processing: Four background