VeUP
← All case studies
Amazon RDS · SaaS Migration
TicketSauce wordmark

TicketSauce hits 99.99% uptime, cuts IT cost 30% migrating Rackspace to AWS

Cloud-to-cloud migrationContainer platform modernizationInfrastructure-as-code foundationFixed-to-consumption cost conversionCross-region & multi-AZ replicationMulti-account segmentationWeb application firewall & bot mitigationCDN & edge delivery architectureManaged billing & resellMigration TCO & business case modellingTarget-state architecture design & costed POCSecrets management & credential elimination
99.99%
uptime — including peak on-sale spikes
~30%
lower total IT cost off Rackspace
4 weeks
migration execution, cutover included
Amazon ECSRDS Multi-AZAWS DMSAuto Scaling

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
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
~40%
faster provisioning
manual days-to-weeks of infrastructure work cut to Terraform minutes
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

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. Objectives, outcomes, and the risk register were set at kickoff and managed weekly; the engagement closed with cleanup, documentation, and a formal knowledge-transfer session.

Well-Architected posture

The January 2024 Well-Architected Review anchored the design, and the estate TicketSauce now runs holds up across 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

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.
The platform TicketSauce runs today — an auto-scaling container fleet in us-east-1 behind a layered Cloudflare-plus-AWS edge, with Amazon RDS Multi-AZ underneath, built to absorb on-sale spikes in seconds.
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.
The starting point — statically provisioned servers on Rackspace private cloud, where every on-sale peak was a gamble.

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.
Engagement timelineThe engagement began commercially in December 2023, with the Well-Architected Review in January 2024 and the IaC build-out running from late March. The four-week execution window opened on 8 April: production deployment landed mid-April, post-migration monitoring ran through cutover, and the migration completed on 7 May 2024.
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 ECSAmazon EC2 (capacity providers)Amazon ECRAmazon RDS (Multi-AZ)AWS DMSAmazon ElastiCache (Redis)Elastic Load Balancing (ALB)Amazon VPCAWS Global AcceleratorAWS WAFAWS Secrets ManagerAWS Systems ManagerAmazon CloudWatchAWS CloudTrailAWS KMSAmazon S3Amazon Route 53Amazon Lightsail
Delivered with
TerraformTerragruntGitLab CI/CDCloudflare CDN/WAF