Deploying Lightsail Twins: Autonomous Peer-Sync Architecture for Queen's Fleet Infrastructure
What Was Done
We deployed a dual-Lightsail instance architecture paired with autonomous peer-sync and stall-watchdog monitoring for Queen's Fleet. This represented a significant infrastructure consolidation, replacing a rejected DevOps toolchain proposal with a leaner, focused Terraform-managed approach that prioritizes operational simplicity and reliable state synchronization.
Architecture Overview
The deployment established two Lightsail instances in a primary-replica configuration, eliminating single-point-of-failure risks while maintaining minimal operational overhead. The core innovation was the autonomous peer-sync mechanism—a lightweight background process that continuously monitors and harmonizes state between the two instances without manual intervention.
- Lightsail Twin Instances: Both configured identically via Terraform, deployed in separate availability contexts for fault tolerance
- Autonomous Peer-Sync: Bidirectional state synchronization that detects divergence and applies corrections automatically
- Stall-Watchdog Monitor: Detects and alerts when peer-sync processes become unresponsive; triggers recovery actions without human intervention
- Terraform State Management: Single source of truth for infrastructure configuration, versioned and auditable
Technical Decision: Why Not Full DevOps Toolchain
An earlier proposal recommended adopting a comprehensive DevOps toolchain, but after board review, we adapted the Terraform principle specifically and rejected the broader toolkit. The rationale: Queen's Fleet's operational profile—moderate scale, predictable workloads, dedicated ops team—didn't justify the complexity tax of a full orchestration platform. Terraform alone provided configuration-as-code rigor without the learning curve, debugging overhead, and maintenance burden of container orchestration or advanced CI/CD abstractions.
This decision reduced time-to-deployment by eliminating toolchain onboarding, improved MTTR by keeping the failure surface smaller, and freed engineer cycles for domain-specific work rather than infrastructure plumbing.
Infrastructure Components
The Lightsail instances run identical application stacks with the following architecture:
- Compute: Lightsail burstable instances (2GB RAM base) with auto-scaling headroom for peak load
- Networking: Static IP assignment for both instances; Route53 weighted routing distributes traffic across the pair
- Storage: Application data stored in instance-local volumes with peer-sync replication to maintain consistency
- Monitoring: Stall-watchdog deployed as a systemd service on both instances; logs streamed to CloudWatch Logs
Peer-Sync Implementation
The autonomous peer-sync process runs every 30 seconds (configurable) and performs three critical checks:
# Pseudo-code: peer-sync reconciliation loop
for each monitored_path in SYNC_PATHS:
local_state = read_file(monitored_path)
remote_state = http_get(peer_endpoint/state?path=monitored_path)
if hash(local_state) != hash(remote_state):
if remote_timestamp > local_timestamp:
apply_remote_state(monitored_path, remote_state)
log("recovered from stale local copy")
else:
push_state_to_peer(monitored_path, local_state)
log("peer caught up")
record_sync_timestamp()
The stall-watchdog monitors the last successful sync timestamp on each instance. If 90 seconds pass without an update, it:
- Attempts peer-sync restart via systemctl
- Checks instance connectivity and disk space
- Publishes alerts to CloudWatch (no PagerDuty noise—requires manual triage threshold)
- Logs detailed diagnostic snapshots for post-incident analysis
Terraform Infrastructure Pattern
The infrastructure-as-code lives in /Users/cb/dablio/peer/terraform/ with this structure:
main.tf— Lightsail instances, static IPs, security groupsroute53.tf— DNS weighted routing policy (50/50 split across both instances)variables.tf— Region, instance type, sync interval, stall timeoutoutputs.tf— Instance IPs, endpoint URLs for peer-sync configuration
Deployment is idempotent: terraform apply ensures both instances remain in the declared state and reinstantiates missing components without downtime.
Monitoring and Observability
Stall-watchdog publishes metrics to CloudWatch:
peer_sync_latency_ms— Time taken for full reconciliation cyclesync_stall_count— Number of detected stalls (counter only; reset on restart)last_successful_sync_epoch— Timestamp of most recent clean state reconciliationpeer_reachability_status— 1 if peer HTTP endpoint responsive, 0 if not
These metrics feed into CloudWatch dashboards (accessible at the Queen's Fleet ops console) and trigger alarms if stall count exceeds 3 in a 5-minute window.
What's Next
Future iterations will explore:
- Persistent Volume Snapshots: Automate backup of synced state to S3 for disaster recovery
- Cross-Region Failover: Extend peer-sync across AWS regions for geographic resilience
- Upgrade Orchestration: Implement rolling deployment logic so one instance updates while the other handles traffic
The immediate validation metric is mean-time-to-recovery from instance failure. Our target: <2 minutes from failure detection to full traffic restoration via the healthy peer.
``` Saved the technical blog post to your deliverables. This post covers the Lightsail dual-instance architecture, autonomous peer-sync mechanism, Terraform infrastructure patterns, and the board decision to use focused Terraform rather than a full DevOps toolchain—providing developers with concrete technical context for the infrastructure decisions behind Queen's Fleet deployment.