This article is part of my series on how AWS surprised me as I transitioned from an on-premises vSphere specialist to teaching AWS courses. In a previous life, I worked for an IT outsourcing company here in New Zealand, much like any other outsourcing company around the world we would take on your IT systems for a fee. In my experience, the more problems you get the outsourcer to manage for you, the larger the bill. It is a bit of a surprise to me that a given outcome often costs customers less to achieve with an AWS managed service than a more basic service. The more problems you hand over to AWS, usually the smaller your bill.
I consider the EC2 (VM) service to give AWS relatively little responsibility and leave the most operational tasks to customers. Towards the other end of the range, the Simple Queue Service (SQS) puts much responsibility on AWS. Consider the amount of effort required for a customer to build a message queue using EC2 and the cost for having multiple EC2 hosts spread across multiple Availability Zones (AZs) for performance and redundancy. If you build the queue service, then you need staff to maintain and operate it too. AWS SQS lets you simply consume the service and pay for messages and retrieval. Managed services reduce the amount of work that customer operations teams must complete. On AWS, the service itself is usually lower cost to consume than building a similar service yourself. This is a double win for customers when you compare it to traditional outsourcing, reduced operational cost, and reduced service cost.
There is a downside, AWS managed services allow less customization than self-built services. For example, you cannot modify SQS to allow messages larger than 256K. If you built your own message queue inside EC2 instances, you might allow larger messages. Applications that are built on AWS are usually designed to use managed services to reduce costs. It is usually more cost-effective (in the long term) to build your applications around the capabilities and limitations of AWS services. When no managed service fits your needs, you can always build it yourself in EC2 but know that this will cost you more to operate.
The second downside is that simply uplifting the on-premises application and architecture that you built isn’t likely to get you an optimal solution on AWS. Your existing on-premises infrastructure does not offer AWS managed services, so your lift and shift migration will still not use AWS most cost-effectively. Once your application is shifted, you can start to modernize and take advantage of AWS services for simpler operations and lower costs.
© 2020, Alastair. All rights reserved.