GoBubble migrates 21 workloads from GCP to Amazon EKS with zero downtime
GoBubble’s public inference API fronts GPU-served moderation models — Triton multimedia moderation, spam detection, and the EmoAI dispatcher on Amazon EKS. VeUP protected that surface as a delivered control of the GCP-to-AWS build: an AWS WAF web ACL on the inference API, fronted by Amazon CloudFront with Lambda@Edge for EMEA/MENA delivery, operated inside a multi-account landing zone with GuardDuty, Security Hub, and AWS Config watching the whole estate.
The challenge
An ML inference API is a uniquely attractive target: every request an attacker sends costs the platform real GPU time, making unfiltered abuse a denial-of-wallet attack even when it never breaches anything. GoBubble’s moderation endpoints are public by design — customers integrate them directly — and the migration’s fixed 12-week window meant edge protection had to ship with the platform, not follow it. The inference plane needed a filtered, observable front door that could tell legitimate integration traffic from floods, probes, and malformed abuse before any of it reached a GPU.
The solution
VeUP implemented AWS WAF as a delivered control in the production build. The web ACL sits on the public inference API path — Amazon CloudFront at the edge (with Lambda@Edge handling EMEA/MENA delivery logic), AWS WAF filtering behind it, and the EKS-served GPU inference plane only ever seeing traffic that passed both. The control operates inside the platform’s multi-account AWS Organizations landing zone with IAM Identity Center for workforce access, and its context is continuously verified: AWS Config conformance packs hold the estate’s baseline, GuardDuty watches for threat activity, and Security Hub aggregates findings — including the edge’s — into one queue. Amazon CloudWatch custom metrics and composite alarms tie the WAF’s behavior to the inference plane’s health, so a spike in blocked traffic and a spike in GPU latency are read together.
Production outcomes
| KPI | Result |
|---|---|
| Edge control delivered | AWS WAF web ACL live on the public ML inference API from the production cutover — shipped as part of the migration build itself, not deferred to a hardening phase. |
| GPU economics protected | CloudFront + WAF filtering ahead of the GPU node groups — abusive and malformed traffic stopped at the edge, so paid inference capacity serves customers, not attackers. |
| Operated, not installed | The control runs inside a governed landing zone with GuardDuty + Security Hub + Config continuously evaluating posture, and composite CloudWatch alarms correlating edge behavior with inference-plane health. |
| Lessons & continuation | For AI platforms, WAF is cost control as much as security — every blocked request is GPU time recovered; and edge protection belongs in the migration’s definition of done, because the public API is public from minute one. |