AWS ⇆ Bare Metal Multicast Flow with GRE Tunnel Overlay

As part of a crypto trading platform that was recently deployed between my trading firm and its partner company in Brazil, I was tasked with a nice little challenge of making multicast data flow between AWS EC2 instances and bare metal at our UK datacenter. AWS is notoriously convoluted as a black box of technology that works the way AWS sees fit, with no room for tweaks other than what is found on the GUI. Multicast is certainly no exception, and full stack multicast as network architects have learned it from the beginning simply does not apply in AWS land. Amazon’s implementation of multicast does not support protocol-independent multicast (PIM) routing or rendezvous points (RPs), thus relying heavily on layer-2 IGMP. So, then, if AWS EC2 instances are receiving market data from a set of venues and we need that data to propagate into our bare-metal colo environment onto physical machines, where do we even start? Conversely, if we have physical 10G cross connections at the colo to low latency vendors and need to transcode that market data into internal, proprietary multicast, how do we get that to propagate into AWS which has no knowledge of multicast routing?

Leave a comment