We do get the promised throughput, but it depends on the destination as you've discovered. AWS actually has some docs on this[0]:
- For instances with >= 32 vCPUs, traffic to an internet gateway can use 50% of the throughput
- For instances with < 32 vCPUs, traffic to an internet gateway can use 5 Gbps
- Traffic inside the VPC can use the full throughput
So for us, that means traffic outbound to the public internet can use up to 5 Gbps, but for things like our distributed cache or pulling Docker images from our container builders, we can get the full 12.5 Gbps.
[0] https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-inst...