VeUP
← All case studies
TicketSauce wordmark
Amazon ECSRDS Multi-AZAWS DMSAuto Scaling
Migration & Modernization · SaaS Migration

TicketSauce

VeUP migrated TicketSauce’s event-ticketing SaaS platform off Rackspace private cloud onto AWS — a Well-Architected Review and dependency discovery in the Assess phase, a Terraform-and-Terragrunt rebuild of the AWS estate in Mobilize, then a four-week execution window that containerized the application onto Amazon ECS, cut the database over to Amazon RDS Multi-AZ via AWS DMS, and wired Auto Scaling to the platform’s defining workload: sharp, revenue-critical on-sale traffic spikes.

Business impact

99.99%
uptime at peak
including peak on-sale events, versus frequent downtime on Rackspace — customer case study, May 2024
4 weeks
migration execution
8 April – 7 May 2024, containerization through cutover and post-migration monitoring
~30%
lower total IT cost
fixed Rackspace pricing replaced by AWS pay-as-you-go — case-study KPI table
~40%
faster provisioning
manual days-to-weeks of infrastructure work cut to Terraform minutes — case-study KPI table
Seconds
to scale for an on-sale
Auto Scaling replaced manual scaling that took hours on the private cloud
18
AWS services deployed
configured end-to-end in Terraform across a three-account structure — case-study service inventory

The challenge

TicketSauce operates a cloud-based event ticketing and management platform serving event organizers across North America — real-time ticket sales, payment processing, and attendee management. The defining characteristic of the workload is its traffic profile: when a popular event goes on sale, demand spikes sharply, and every minute of degraded service is lost revenue.

The platform ran on Rackspace private cloud with statically provisioned web, application, and database servers. There was no dynamic scaling, so peak on-sale events — exactly the moments that mattered most — brought frequent downtime. Static allocation forced a standing trade-off between over-provisioning (paying for idle capacity) and under-provisioning (failing at peak). Rackspace’s pricing was fixed regardless of utilization; provisioning new infrastructure took days to weeks; scaling existing capacity took hours of manual work. Left unaddressed, the risk was degraded customer experience and client loss to competitors. TicketSauce needed elastic, automated, cost-aligned infrastructure that could absorb on-sale spikes without manual intervention.

The migration

Assess: discovery, dependencies, and the Well-Architected baseline

The engagement opened with a structured Assess phase: a Well-Architected Review in January 2024 and discovery across the existing Rackspace infrastructure, application dependencies, and performance requirements. This was a migration with a head start — TicketSauce’s team had begun writing Terraform for AWS but could not get the SaaS platform deployed to production: the codebase carried broken module dependencies, legacy NGINX and Lambda resources, and entangled IAM policies. Discovery findings drove the central architectural decision: containerize on Amazon ECS with Amazon RDS and Amazon ElastiCache rather than attempt a simple lift-and-shift, and remediate the existing infrastructure code rather than discard it. Scope was refined with the customer through successive statement-of-work iterations before build began.

Mobilize: the Terraform and Terragrunt build-out

The AWS environment was defined entirely as code in Terraform with Terragrunt managing remote state and module dependencies. The VPC module was hardened to least-privilege security groups with VPC Flow Logs enabled and unused endpoints removed; the ECS module was cleaned of legacy NGINX and Lambda resources; ALB and target-group, Secrets Manager, Systems Manager, and WAF modules completed the estate. A dedicated three-account structure — management with consolidated billing, production, and staging — separated concerns from day one. Every change flowed through GitLab CI/CD from development through QA/UAT to production, with a disciplined change taxonomy: dependencies mapped first, every change categorized as destructive or non-destructive, non-destructive changes executed first in sandbox and staging, and production applied only through terragrunt plan and applyinside agreed change windows — never through the console.

Migrate and modernize: the four-week execution window

Execution ran 8 April to 7 May 2024. The application was containerized and moved onto Amazon ECS with EC2 capacity providers, replacing manually managed servers with an orchestrated, auto-scaling container fleet fed from Amazon ECR. The database was migrated to Amazon RDS, Multi-AZ, using AWS DMSfor the cutover — converting a single fixed-capacity database server into a managed, failover-ready engine with a synchronous standby in a second Availability Zone. Auto Scalingwas wired directly to on-sale traffic patterns, so capacity now expands in seconds instead of hours. Session state moved onto Amazon ElastiCache (Redis), keeping the application tier stateless. At the edge, Cloudflare CDN/WAF was layered with AWS WAF and AWS Global Accelerator. Cutover followed a pre-defined plan: load testing against the new environment, staged production deployment in mid-April, UAT verification, a knowledge-transfer and customer-validation session, and post-migration monitoring through completion on 7 May — after which the Rackspace source environment was exited. One concrete engineering example from delivery: IAM policies found tightly coupled to legacy NGINX components were decoupled and rebuilt to least-privilege best practice before production cutover.

Governance and delivery discipline

The project ran on a weekly status cadence with explicit status keys for budget, resources, timeline, and scope, hours-consumed tracking, and a risk register with owners and fixes. A Gantt plan sequenced the workstreams — planning, VPC/WAF modules, ELB/ECS modules, supporting modules, then testing and validation — against milestones for development deployment in early April, production deployment on 16 April, and knowledge transfer with customer validation on 19 April. A kickoff deck documented objectives, outcomes, and the risk register the engagement was managed against, and the engagement closed with documentation, cleanup, and a formal knowledge-transfer session.

Well-Architected posture

The January 2024 Well-Architected Review anchored the design, and the delivered estate evidences all six pillars. Operational excellence: everything defined as Terraform/Terragrunt code, promoted through GitLab CI/CD, with Amazon CloudWatch monitoring and alerting configured as part of post-migration validation. Security: defense-in-depth for a payment-processing platform — dual WAF layers (Cloudflare plus AWS WAF), least-privilege security groups with VPC Flow Logs, AWS KMS encryption, Secrets Manager for credentials, Systems Manager for operational access, and CloudTrail logging, with the IAM estate rebuilt to least privilege. Reliability: RDS Multi-AZ failover, stateless ECS tasks behind an ALB with Auto Scaling, session state externalized to ElastiCache, and load testing before cutover. Performance efficiency: per-service container scaling for on-sale bursts, Redis caching under peak load, and AWS Global Accelerator routing at the edge. Cost optimization: fixed private-cloud pricing converted to utilization-aligned pay-as-you-go — the realized ~30% IT-cost reduction. Sustainability: elastic capacity that scales with real demand in place of statically over-provisioned servers.

Architecture

From a static-capacity Rackspace private-cloud estate to a Well-Architected AWS target state in us-east-1 — Amazon ECS on EC2 capacity providers across Availability Zones, Amazon RDS Multi-AZ cut over via AWS DMS, ElastiCache session caching, and a layered Cloudflare-plus-AWS edge.

Previous state

Previous state: TicketSauce's Rackspace private-cloud estate with statically provisioned web, application, and database servers — no auto-scaling, downtime during peak on-sale events, manual infrastructure management, and fixed costs regardless of utilization.

Layer-by-layer build-up

Animated build-up of the target-state architecture layer by layer: VPC network foundation with public, private, and database subnets; ECS compute and application tier; RDS Multi-AZ and ElastiCache data tier; and the security and observability layer.

Target state on AWS

Target state on AWS in us-east-1: Cloudflare CDN/WAF and AWS Global Accelerator at the edge, an ALB with auto-scaling target groups in the public subnet, Amazon ECS on EC2 capacity providers in private subnets, Amazon RDS Multi-AZ in the database subnet, ElastiCache Redis session caching, and the AWS WAF, KMS, Secrets Manager, Systems Manager, and CloudWatch security and operations layer.

Full Well-Architected overview

AWS Well-Architected diagram: the Rackspace private-cloud previous state migrating to an AWS target state in us-east-1, with Amazon ECS on EC2 capacity providers across two Availability Zones, Amazon RDS Multi-AZ cut over via AWS DMS, Amazon ElastiCache for session state, a Cloudflare-plus-AWS-WAF edge with Global Accelerator, and the six Well-Architected pillars annotated with grounded evidence.

Outcomes

KPIResult
Production outcomes99.99% uptime including peak on-sale events, versus frequent downtime on Rackspace; ~30% decrease in total IT costs as fixed Rackspace pricing gave way to AWS pay-as-you-go; ~40% reduction in provisioning time as manual days-to-weeks became Terraform minutes; scaling response cut from manual hours to Auto Scaling seconds, with manual deployments replaced by automated, repeatable container releases on Amazon ECS. Each KPI is baselined against the pre-migration Rackspace operating model documented in the customer case study.
Engagement timelineCommercial onboarding December 2023 → Well-Architected Review January 2024 → IaC build-out and CI/CD promotion from late March → migration execution 8 April – 7 May 2024, with production deployment mid-April and post-migration monitoring through cutover completion. Presented here as a historical example implementation.
Cost / TCO postureThe migration converted a fixed Rackspace cost base into a utilization-aligned AWS pay-as-you-go model — the realized ~30% IT-cost reduction was itself a headline KPI for an event-driven, spiky workload, not just an efficiency note, and client onboarding is no longer infrastructure-constrained.
Lessons & continuationInvest in deeper discovery early to lock scope; map inter-resource dependencies before changing an inherited IaC codebase, and categorize every change as destructive or non-destructive with non-destructive changes staged first; design explicitly for event-driven traffic spikes. These lessons are codified in VeUP’s standard migration playbooks.
AWS services in production

Amazon ECS · Amazon EC2 (capacity providers) · Amazon ECR · Amazon RDS (Multi-AZ) · AWS DMS · Amazon ElastiCache (Redis) · Elastic Load Balancing (ALB) · Amazon VPC · AWS Global Accelerator · AWS WAF · AWS Secrets Manager · AWS Systems Manager · Amazon CloudWatch · AWS CloudTrail · AWS KMS · Amazon S3 · Amazon Route 53 · Amazon Lightsail — 18 AWS services configured and operational, delivered with Terraform, Terragrunt, GitLab CI/CD, and Cloudflare CDN/WAF at the edge.