Skip to main content

Overview

The Resilient pattern targets mission-critical applications that need high availability, data durability, and disaster recovery. It deploys across 3 Availability Zones with KMS encryption, an Aurora PostgreSQL database, RDS Proxy, and enhanced monitoring.

What’s Included

Creates:
  • ECS Fargate with auto-scaling across multiple AZs
  • Aurora PostgreSQL database with automatic failover
  • KMS encryption for data at rest (customer-managed keys)
  • RDS Proxy for connection pooling and failover handling
  • Enhanced monitoring with Database Insights (advanced mode)
  • 30-day backup retention with point-in-time recovery

Architecture

Generated Infrastructure

Specifications

Compute (ECS Fargate)

Database (Aurora)

Security

High Availability Features

Multi-AZ Deployment

  • ECS tasks spread across 3 AZs
  • Aurora with automatic failover
  • ALB routing across AZs
  • 3 NAT Gateways (one per AZ)

Auto-Scaling Policies

Database Features

  • Automatic failover: Aurora promotes a reader on writer failure
  • Reader instances: 2 readers for read scaling and redundancy
  • Fast cloning: copy-on-write database copies for testing
  • RDS Proxy: pooled connections survive failover with minimal disruption

Disaster Recovery

RTO and RPO Targets

Backup Strategy

  1. Continuous backups: Aurora to S3 with point-in-time recovery
  2. Cross-region snapshots: daily
  3. Application state: S3 with versioning
  4. Configuration: AWS Systems Manager

Monitoring and Alerting

CloudWatch Dashboards

  • Service health overview
  • Database performance metrics
  • Application business metrics
  • Cost tracking dashboard

Alarms Configuration

Cost Estimation

Costs vary with traffic and database load.

Security Hardening

KMS Encryption

  • All data at rest encrypted with customer-managed KMS keys
  • Aurora storage encryption
  • S3 bucket encryption
  • EBS volume encryption

Compliance Features

When to Use

Choose Resilient for:
  • E-commerce platforms
  • Financial services
  • Healthcare applications
  • SaaS platforms
  • Government systems
  • Any mission-critical application
Consider alternatives if:
  • Low-traffic application (use Standard)
  • Cost is the primary concern (use Lightweight)
  • Development only (use Tinkerer)

Migration from Standard

  1. Switch from an RDS Instance to Aurora
  2. Raise the minimum task count to 4
  3. Add KMS encryption
  4. Configure enhanced monitoring
  5. Set up cross-region backups

Best Practices

  1. Test failover procedures regularly
  2. Monitor costs closely, as they scale with traffic
  3. Document runbooks for incidents
  4. Practise chaos engineering
  5. Run regular security audits
  6. Performance-test at scale
  7. Apply cost-allocation tags for tracking

Next Steps

Deploy your application

Push the Resilient stack to AWS.

Add resources

Extend the infrastructure with storage, messaging, and more.

Compute Factory

Customise the ECS Fargate compute layer.

Load balancer

Configure CloudFront and ALB routing.