Organizations looking to adopt cloud computing often struggle with understanding the true cost of cloud adoption. Many CIOs believe that leveraging public cloud will automatically result in substantial cost savings. While many organizations do see savings around 20- 40 %, it is important to understand the “True cost” of cloud and compare this with your on-premise costs when developing a business case. Many organizations are surprised when they view their cloud bill, as they fail to account for several components of cloud costs. It is important to also note that cost-savings are just one of the many benefits such as agility, disaster recovery etc gained through cloud adoption. At Digitivy, we helped many organizations develop a comprehensive cloud strategy starting with a solid business case for cloud. We will share our insights around determining your all-inclusive “TRUE” cloud costs (primarily based on AWS list pricing) through this series.
This is part 1 of a 5 part series on cloud economics: determining the “True” total cost of ownership for your cloud environment which includes looking at various dimensions not just compute, storage and networking costs that most public cloud calculators support.
In this first part, we will discuss the basics for determining the compute, storage and networking costs for your public cloud. Many organizations purchase public cloud-computing services from vendors such as Amazon Web Services (AWS), Microsoft Azure etc. The cost for cloud computing services is mostly comprised of compute, storage, networking costs and is often determined as follows:
Determine the appropriate cloud instance mapping for your application and then identify the duration for which you need the compute resources on a monthly or annual basis (assuming you can shut down these instances when not in use). E.g. a development instance that is required for 10 hours/day for 20 working days, will amount to 200 hours/month. A typical Linux general purpose development instance- AWS t2.medium instance type with 2CPU, 4 GB RAM will cost $0.0464/hour resulting in a monthly bill of $9.28.
In addition, you will need to account for data transfer costs : for scenarios involving transfer of data into a public cloud environment (ingress) and data transfer out of a public cloud (egress). The costs will vary based on the specific cloud provider. As an example, when using Amazon RDS along with data replication across availability zones, you will need to account for data transfer charges (both ingress and egress) of $0.010 /gb.
Determine the total storage required across your application (in GB). You will need to decide if you need high performance storage or general purpose. For most dev/test environments, using a general purpose storage block should suffice. If you require for e.g 1000 GB for your dev/test environments, in an AWS environment, you will be charged $0.1/GB/month * 1000=$100.00/month for AWS-Elastic Block Storage. If you require high-performance storage and need to provision a certain throughput (e.g.10000 IOPS) for your workload (typical for perf or prod environments), for an AWS-Provisioned IOPS SSD storage you will be charged $0.125*1000=$125/month. In addition, AWS will charge, $0.065 per provisioned IOPS leading to an additional charge of $0.065*10000=$650.00. The total storage costs in this scenario will be : $125+ $650 = $775.00 per month.
Networking costs will typically include NAT Gateways, Elastic IPs and Load Balancing. If you require, dedicated connectivity to a public cloud, a service such as Amazon’s Direct connect would be required. We will discuss this option in a future post.
- Elastic IPs: Determine the number of compute instances that require a dedicated IP address. In case of Amazon AWS, you will only need to budget for scenarios where you need more than one elastic IP address per instance (currently @ $0.005 per IP) , as the first IP is free (as long as the IP is associated with an instance). For budgeting purposes, assume that 10 % of your instances will be un-assigned at any point. So if you have 10 instances running, assume, 1 instance will be un-assigned at any point for maintenance or other reasons. AWS currently charges $0.005 per un-assigned IP. You may also want to budget for 10-15 % of your instances being remapped per month (especially for dev/test environments). In small-medium dev/test environments you may get away with no “Re-map” costs as AWS doesn’t charge for the first 100 re-maps.
- Load balancing: Using a cloud-based load balancer such as AWS – Elastic Load Balancer (ELB) offers tremendous value. AWS currently charges $0.0225 per hour (~ $16/month) for both Application Load balancer and Network load balancer. In addition, you will need to budget for additional charges termed by AWS as load balancer capacity units (LCUs) @ $0.008 per LCU hour. LCU’s are determined based on 4 dimensions: Number of new connections (25 included), active connections (3000), bandwidth (2.22 mbps or 1GB/hour ) and 1000 rule evaluations and you are only charged for the highest LCU unit across these 4 dimensions. So, if you have an application that receives 100 new connections per second (=4 LCUs), 9000 active connections per minute (3 LCUs), consumes 2 GB/hour bandwidth (2 LCUs) and has 1000 rule evaluations (1 LCU), you will be charged for 4 LCUs for (new connections) @ $0.008 per LCU hour.
- NAT Gateways : Network-address-translation (NAT) gateways should be accounted for ALL production environments and ideally ALL dev/test environments as well. You will have one NAT gateway per private subnet and AWS typically charges $0.045 per hour or $32.85 /month for the NAT gateway. In addition, you will need to budget for data processing costs of $0.045/GB so if you transfer 1 TB through a NAT gateway in a month your data costs will be $4.50.
In part 2, we will discuss how to budget costs for add-on (e.g. Backups/Snapshots, Direct connect, Security) cloud services and platform-as-as-service (e.g. AWS DynamoDB) solutions.
In part 3, we will look into discounting techniques and how to lower your cloud-costs through use of pre-purchased cloud instances.
In part 4, we will account for additional costs such as software licensing, cloud management and software licensing costs that must be accounted for.
In part 5, we will discuss determining cloud-costs in a multi-cloud environment.
(Note: All pricing examples are based on Amazon Web Services (AWS) pricing as of the date of publishing this post and are based on the US-East-Northern Virginia region)
Need Help with determining your cloud-costs and developing a business case? SIGN UP for a FREE 1-Hour Consult with us today.