Table of Contents
- Amazon Web Services
- EC2: what, why, and how?
- The EC2 cost model
- EC2 cost savings: Tips on how to significantly reduce computing costs
- Final thoughts
Amazon Web Services
The best way to reduce your EC2 costs is to integrate MetricFire with CloudWatch. So let us first read what is AWS all about! Amazon Web Services (AWS) is a secure cloud storage and computing services platform that offers a variety of combinations for file storage, database storage, computing options, and content delivery networks.
The AWS package is designed to provide NGOs, governments, small, medium, and large corporate, organizations with what they need to achieve optimum performance and operational efficiencies.
According to 2018, Forbes statistics, nearly 77% of all enterprises across the world had at least one of their enterprise computing infrastructure located in the cloud in 2018. Presently, results have shown that more enterprises are embracing this trend and have adopted multi-cloud strategies.
Forecast statistics show that the hosting, storage, and cloud services market is expected to grow to $163 billion (USD) in 2021 compared to $126 billion in 2017. With these statistics, it is safe to assume that cloud computing will drive enterprises to pursue multi-cloud strategies that drive revenue growth.
Let us consider Amazon’s EC2 web service, and how one can benefit from its cost-saving features.
If you are interested in getting a thorough understanding, you can enjoy some light reading on our MetricFire blog about EC2 CloudWatch metrics. Sign up for the MetricFire free trial and explore what MetricFire has to offer. You can also book a demo with us and talk to one of our MetricFire engineers!
EC2: what, why, and how?
Apart from having file storage and database storage facilities, the most significant and important aspect of the AWS model is Amazon EC2 (Elastic Compute Cloud). AWS documentation notes that EC2 is a part of the AWS model that “provides scalable computing capacity in the Amazon Web Services (AWS) Cloud.”
The fundamental aim of EC2 is to provide software developers with a powerful, easy-to-use web service interface that facilitates the development and implementation of cloud computing models for optimal organizational decision-making.
EC2 offers various virtual computing environments, known as instances, made up of different operating systems and resource configurations, including CPU processing power, memory, networking, and storage.
These instances are available as a selection of pre-configured environments users can choose from. Additionally, there is the option to configure a custom computing environment to suit the user’s unique requirements.
The EC2 cost model
The Amazon EC2 model is arguably the deepest and broadest global cloud computing model having the fastest processors, 100 Gbps ethernet networking, and the widest variety of computing instances. So, you’re probably wondering what the cost of running a virtual instance on the AWS cloud computing platform is.
Amazon states in their AWS online documentation that their EC2 scalable computing platform is “the lowest cost-per-inference instances in the cloud.” However, as these calculations will demonstrate, running even the simplest EC2 instance translates to a substantial cost.
It’s also important to note that users can acquire and configure EC2 instances almost immediately (within seconds) when using Amazon’s EC2 service. This fact is one of the justifications for the EC2 costs.
Amazon offers four pricing models for EC2 instances which we will go into more detail below. These are; dedicated host or dedicated instance, on-demand instance, reserved instance, and spot instance:
1. Dedicated host or dedicated instance
The dedicated cloud computing host and instance provide a solution to companies that cannot share server space with other companies due to regulatory requirements. Other organizations might not want to share server space with their competition. Thus, the dedicated host or instance model fits their unique needs perfectly.
Both of these options run on dedicated hardware in one of the AWS data centers. Therefore, each customer who signs up for one of the dedicated options is assigned an individual physical server that is not shared with any other company's data.
There are several fundamental differences between the dedicated host and the dedicated instance. However, the most significant difference between these two models is pricing. Dedicated instances are charged as per the on-demand instance model for the time and computing power used.
Users do not need to sign a long-term contract. There is also the option of purchasing the use of a dedicated reserved instance. The cost of this model drops by up to 75% of the pay-on-demand price. The services are paid for in advance, which explains the cost savings.
Dedicated hosts are not invoiced in the same way. Users pay per hour for each active, dedicated host, with charges ranging between $1 and $2 per hour. In contrast to dedicated hosts, dedicated instances only cost a few US cents per hour.
2. On-demand instance
This model is based on the “pay for computing capacity per hour or second” model; (Only for Linux instances). No upfront payments are required and the on-demand instance is deemed the most flexible. Users can increase or decrease the actual computing capacity as per their requirements over time.
This model is preferably used by companies with short-term or unpredictable workloads and those that need to develop and test enterprise-level software applications. It is essential to note that the pay-per-hour on-demand model’s pricing depends on the instance architecture or capacity.
For example, an entry-level instance based on a Linux server with 1 CPU and 2GB memory will cost $0.0255 per hour. While, a virtual instance, based on a Linux server with 16 CPUs and 32GB memory will cost $0.408 per hour.
To break it down:
An entry-level instance for Linux costs $0.0255 per hour. The total number of hours in an average month is 730 hours.
- Cost of entry-level instance: $0.0255 per hour
- Monthly Cost: $18.62
- Annual fees: $223.44
- For 16 CPUs (32 GB memory): $0.408 per hour
- Monthly Cost: $297.84
- Yearly fees: $3.574.08
To run this instance 24 hours per day for a month translates into $18.62. Finally, the cost of running this instance for a year is $223.44. The instance with 16 CPUs and 32GB memory costs $0.408 per hour. The monthly cost is $297.84, and the annual fee is $3 574.08.
While these per-hour costs for the On-demand instance service, initially seem low, they do add up over time.
3. Reserved instance
The difference between an on-demand instance and a reserved instance is that the reserved instance is a pre-paid model, therefore, Amazon offers a 75% discount on the hourly price per instance. Accordingly, the entry-level instance described above will cost 25% of $223.44 per year, which equals $55.86.
Whereas, the high-end instance described above will cost 25% of $3 574.08 per year, translating into $893.52. The reserved instance model availability is also higher than the on-demand instance.
Why? In short, it is because its usage is pre-paid. Ergo, it is pre-booked, allowing Amazon to factor the time needed into their calendar. Finally, customers can also commit to using the EC2 reserved instance for either a one-year or three-year term.
4. Spot instance
Finally, a spot instance is a virtual instance that utilizes AWS's unused EC2 capacity. These virtual instances cost up to 90% less than the on-demand price, or in other words, only 10% of the on-demand price. However, the caveat is that they are only available for use when there are idle instances.
The availability of spot instances is based on the economics of supply and demand. The AWS platform comprises a finite number of computer services used to create virtual EC2 instances. This is known as the EC2's total capacity or supply. The demand is the number of customers who require cloud computing instances to run their enterprise software.
The ultimate goal is economics 101, for the supply to equal the demand and vice versa. Most of this server space is taken up by dedicated hosts and instances, on-demand instances, and reserved instances. But there is often an extra supply that is used up by spot instances.
EC2 cost savings: Tips on how to significantly reduce computing costs
The EC2 cost only includes the compute time, per instance specification, and per hour. It does not include the cost of data transfer, storage, Amazon CloudWatch monitoring, and other sundry elements such as elastic IP addresses. In other words, the EC2 cost is only one small part of the total AWS usage cost.
AWS bandwidth is costly. For example, data transferred across the different EC2 instances costs $0.01 per GB for ingress traffic and $0.01 per GB for egress traffic. Consequently, any workload that has high bandwidth demands is going to cost a lot. As a result, 10TB of data traffic per month will cost about $200: $100 for ingress traffic and $100 for egress traffic.
Thus, are there any alternatives to AWS and EC2? Is it perhaps possible to implement cost-saving measures?
There are always cheaper alternatives. The question that should be asked is not whether there are cheaper alternatives. Instead, it should be whether there are more cost-effective alternatives that offer similar functionality.
As highlighted above, the Amazon EC2 model offers the widest and deepest variety of computing instances and tools to run enterprise-level software that primarily manipulates Big Data or massive amounts of data.
Thus, it is reasonable to assume that there are no cheaper options that offer the same functionality. Therefore, we must find ways to reduce EC2 costs. One major way you can save money on EC2 is by reducing your monitoring costs.
Sign up for the MetricFire free trial and explore what MetricFire has to offer. You can also book a demo with us and talk to one of our MetricFire experts! You can also read about CloudWatch pricing here.
1. EC2 monitoring
The most important aspect of reducing EC2 costs is understanding what the costs are. Understanding spending patterns provides the answers to the "how" and the "why". So how do you determine what your company's spending costs are?
The quickest and easiest way to determine this is by implementing a monitoring tool like CloudWatch, AWS's leading monitoring and visibility tool. Data derived from this monitoring tool will provide the answers to the "how" and "why" questions. But it’s also essential to keep in mind that CloudWatch can be expensive.
So can you But what if you could also reduce your monitoring costs as part of the cost reduction exercise? Of course, you can!
In fact, one of the most significant ways you can save money on EC2 costs is by reducing your monitoring costs.
MetricFire integrates with CloudWatch to provide a more flexible, customizable monitoring dashboard option. All in all, this provides a greater data set, improving your decision-making ability, especially in terms of cutting EC2 costs.
EC2 monitoring with MetricFire achieves two aims:
- Firstly, it increases data availability and information generation from the stated data; thereby, allowing for improved decision-making.
- Secondly, it directly facilitates the reduction in monitoring costs.
2. Optimize EC2 instance configuration
The EC2 monitoring process will answer whether the instance configuration is precisely what is required to process the data it has to process. For example, let’s say you have an EC2 instance with 16 processors and 32GB of memory.
However, the amount of data that needs to be processed at any given moment only needs half the processing power and memory. Reducing the instance configuration by half will cut your costs in half.
The converse is also true. You can cut costs by increasing the virtual instance configuration to reduce data processing time. Suppose your instance’s current configuration is 8 processors and 16GB of memory, and the data processing mechanisms are resource-intensive.
In this scenario, it will take much longer to process the data, than to simply increase the EC2 instance capability to 16 processors and 32GB memory. The reduced time costs will make up for the increased processing costs and most likely reduce the overall costs. Doubling the processing speed should reduce the time by up to 50%.
3. Utilize reserved instances or spot instances
The EC2 cost model section above highlights that utilizing reserved instances and spot instances (instead of on-demand instances) will reduce your EC2 costs by up to 75% and 90%, respectively.
Therefore, an excellent way to dramatically reduce EC2 costs is to either pre-pay for computing time or process your company’s data when spot instances become available. There can be several negatives to using reserved instances and spot instances, the most significant one being that you won’t always be able to process the data in real time.
There is no doubt that the on-demand model is the premier version with access to unlimited time and resources. The focus ultimately comes down to deciding whether on-demand processing is something your organization needs or not. And the best way to determine the answer to that question is by examining use cases.
The ultimate goal is to determine what processing model is the optimal solution for your business requirements.
The cost of an EC2 instance is dependent on the instance configuration in relation to data processing requirements. Successfully reducing EC2 costs is entirely based on the balance between the cloud computing requirements to process company data and the size of the data that is being processed.
The starting point for reducing your EC2 costs is implementing the MetricFire CloudWatch monitoring integration. With the information it provides, you will not be in a position to make the right decisions.
The good news is that MetricFire offers a 14-day free trial to get you started with your Amazon EC2 CloudWatch integration. It is worth signing up for the free trial and booking a demo to speak with an expert to help you find the best solution to your problems. Both will get you started and provide evaluation opportunities backed by data to back up your decision-making process.