AWS, Data Transfer Costs, and Options

I’ve written about Data Transfer Costs in the past, and how they’re probably the premier source of unpleasant surprises when the AWS bill shows up. There are many many sources for these, but, in my experience, the vast majority of them come down to
  • • Traffic to public IPs, and forgetting that any traffic to them, even from your own instances, counts
  • • Static assets on EC2 which you haven’t moved to Cloudflare. Especially when you’ve got videos (ouch!)
  • • Multi-AZ deployments, and in particular, multi-AZ RDS, where every damn write involves data-transfer costs.
So fine, you know the above, what’re you going to do about it? You could stay on top of it with Cloudability or CloudCheckr or some such, but this really requires you to seriously stay on top of it. And the issue with this is that relying on always doing the right thing to keep your costs down will end up ‘sploding in your face, and probably at the worst possible moment at that!
Alternatively, you could just migrate out from AWS. Now yes, this may not be an option for you, because you are heavily invested in ElasticBeanstalk, or Aurora, or ECS/ECR (why?), etc. Then again if you are are heavily invested, do you really need them? Quite a few of you probably are using it because, well, StackOverflow or some such.
For the rest of you, you’re probably not invested (even if you think you are. It’s probably inertia and/or not wanting to know you have options). In which case you really should think about moving.
The thing is, quite a bit of AWS is actually harder to use than the alternatives — it’s its own type of lock-in. And that leads us to the key when it comes to moving — you need to know what it is that you actually do, and where you spend your money. After all, Data Transfer Costs don’t really matter if you don’t transfer all that much data, y’know? That’s where tools like Cloudabilityand CloudCheckr really come in useful.
Anyhow, when it comes to migrating, you need to look at providers that bundle data usage (ergo, not Azure / Google), providers like Digital OceanLinodeVultr, and others. Identify a few of them, and figure out what your equivalent costs would be on them.
How? Basically, grab a benchmarking utility (I recommend cloud-bench), and use it to get a handle on what the configurations on the target platforms are that match your AWS setup close enough. XXX on this provider maps to an m3.large on AWS, etc. (•)
Once you’ve got this information, the rest is simple math, with the caveat that you are not paying for bandwidth on the target platform — a gift that will keep on (increasingly!) giving as time goes on .
The bottom line here is that you have options, especially if money is an issue!
(•) For more on this, check out this excellent writeup by the folks at GoldFire.

Comments

Popular posts from this blog

Cannonball Tree!

Erlang, Binaries, and Garbage Collection (Sigh)

Visualizing Prime Numbers