Table of contents of the article:
AWS Cost Optimization, as a topic, is very broad and there are many resources on the web. However, most of them are theoretical. How much money can you really save by following the advice given? In this article, we will take a different approach to AWS cost optimization. We'll provide a hands-on approach to saving money, as well as real-world examples of how to reduce cloud costs for your business.
AWS Cost Optimization is an ongoing process of identifying and eliminating wasted resources. In this article, you will learn how to optimize cloud costs in the following areas: Planning and forecasting. Resource allocation optimization. Cloud Cost Optimization Best Practices. Steps to Optimize AWS Costs. AWS Cost Optimization Checklist.
This article will detail how Back4App reduced their AWS bill from $ 55.492 / month to $ 20.074 / month and achieved annual savings of over $ 500.000. We will provide practical guidelines based on our experience in AWS cost management and share some tips that have worked well for us.
AWS continues to innovate and dominate the cloud market. It has grown so much that it has become a key component of Amazon's strategy. I am an enthusiastic user of AWS, but my concerns about its complexity and cost have led me to explore ways to optimize cloud usage. While it offers an increasingly sophisticated range of services for many types of development requirements, it's not always the easiest, fastest, or most affordable option. Ideally, you need to design your architecture to optimize costs as soon as you move to the cloud. This guide will help you accelerate your AWS cost optimization with real lessons learned on our cloud cost savings journey.
Here is a summary of what you will find by reading this article:
- Apply for AWS Credits and Receive Up to $ 100.000;
- Move data transfer to Cloud Front and save up to 75%;
- Use private IP (not elastic IP) and stop paying for data transfer between AZ;
- Reduce data transfer costs with GraphQL API implementation;
- Save up to 90% with the use of Spot instances;
- Save up to 75% by purchasing Reserved Instances on AWS Marketplace;
- Buy reserved Elastic Cache nodes and save up to 77%;
- Backup your data in S3 and not in EBS and save 75%;
- Implement autoscaling for inactive resources;
- Go to the Northern Virginia region and get away from Sao Paulo;
- Switch to new generation families and save up to 20%;
- Place an S3 endpoint in your VPC and enable Enhanced Network on EC2.
- Eliminate inactive Load Balancers.
- Use the new AWS Savings Plan and save up to 72%.
Here's what our AWS bill looked like in January 2019. A total cloud cost of $ 55.492.
Here's what our AWS bill looked like in May 2019. The total cost was $ 20.074.
These are 10 ways to reduce AWS costs
1. AWS Credits
Starting from the beginning! Before doing any other business, check if your company is eligible for AWS Credits! This is how you can get AWS credits.
Apply for AWS Credits
This was our case! It was in 2016 and we expanded the business quite quickly. Our AWS bill was starting to rise and we had no idea or time to optimize AWS costs. The company still had no funds and we would have earned AWS credits or would have died. We prepared a business case for our account manager that shows how far we were growing and the benefits of AWS by keeping our account. We showed him that we had no funds and that we would have to move to Google Cloud (they offered us $ 100.000 in credits to migrate from AWS) unless we got the credits. The response took about a week, and AWS provided us with $ 100.000 in credits to use for 12 months. This was also a great deal for AWS! As the credits have expired, we have spent more than $ 750.000 with them.
Credits for POC testing and implementation
If you are testing a new AWS service or instance type, ask your AWS account manager for credits. The number of credits varies depending on the monthly expenditure and the total effort to implement the POC. These credits usually only last three months and you need to make sure you speed up the POC. In our case, we were able to get $ 3.000 in credits to test it with the i3 instance family.
Credits for startups
If you are starting your own business or have a startup, this is a great way to move forward. The amount of credits ranges from $ 1.000 to $ 100.000 depending on how you submit your application to AWS. There are a couple of ways to get these credits.
One of the main benefits of a Startup Accelerator is the benefits they provide. As part of the benefits are the credits of the cloud service providers. The amount you can get here varies based on the accelerator you are approved for. The best like YC, Alchemist, Wayra and 500 Startups will offer you $ 100.000 in AWS credits. In our case, we were accepted by Alchemist Accelerator and were entitled to $ 100.000 in credits. Unfortunately, we were unable to use the credits because we had previously used other credits. AWS does not allow you to add credits. For example, if you get accepted on two accelerator programs and get $ 100.000 in credits on each, you won't be able to use $ 200.000, only $ 100.000.
Funds VC and Angel Groups
Some VC / Angel Groups will provide cloud credits as part of the benefit package. In our case, we were able to get $ 10.000 promotional credits valid for two years from one of our investors. Unfortunately, we were unable to use the credits. Businesses are not eligible for AWS Promotional Credits if they have previously received a similar or greater amount of credit.
All major cloud players provide startup credits
All major cloud players will offer credits to startups. In AWS / Google, the credit amount will go up to $ 100.000, and in Azure, you could get $ 360.000 to use for three years.
2. Implement an AWS cost-saving routine
The easy part is over and now let's go for the hard work! There is no magic pill and to cut AWS costs, you'll need to work hard and have a regular cost tracking routine! Cloud cost reduction must be part of your daily routine! Imagine how much you can save after 365 days! The amount of time you invest depends on the size of your organization and your AWS spend. I invest around 30 minutes a day to monitor the account and prioritize cost reduction actions. In addition to that of Back4App engineers, they spend at least 1 hour / day implementing cost reduction initiatives.
The first action we implemented was to create a simple Excel spreadsheet (download below) and prioritize cost saving initiatives.
The main variables we used to determine the savings were:
- Cost Saving Potential: Maximum earnings per cost saving action
- Complexity: How difficult it is to implement the required work and effort
- Owner: Who will perform the action
3. EC2 - Elastic Compute Cloud
Here are some guidelines on how to optimize your EC2 spending.
Stop unused instances
The first thing you need to do when reducing EC2 spending is to close unused instances. There is no rocket science here, and most of the work is pretty straightforward. All you have to do is list all your instances, download a free Excel sample, and rank each of them. In our case, we have classified our instances into 3 main categories:
- Instances that must remain active
- Instances that can be stopped
- Instances that can be terminated
Terminate unused instances whenever possible! If you interrupt it, you'll keep EBS costs running!
Reduce large resources
This action is a bit complex and is essential to correctly evaluate the instance size. Make sure you evaluate at least a week of data to increase the likelihood of properly sizing the instance. The way we checked it was to categorize the instances into 3 main categories (download excel below)
- Correct size
- Reduce the size of the instance
- Increase the instance size
Reduce the instance size incrementally
Reduce the instance size step by step. For example, don't reduce the size from t2.xlarge to t2.medium. First reduce it from t2.2xlarge to t2.xlarge. Monitor for a week, check the amount of resources used and re-implement the reduction cycle. By doing this, you will decrease the likelihood of having downtime or making mistakes.
Use Reserved Instances
Booking an instance can save you up to 70%. Please note that when you book an instance, you will pay for usage 24/24 for the entire booked period. You will pay regardless of whether or not the resources are used.
There are two types of Reserved Instances that offer classes:
- Standard - You can sell on AWS Marketplace, you can't convert to another instance type, it's cheaper than convertible instances.
- Convertible: Cannot sell on AWS Marketplace, can be converted to another instance type, which is more expensive than standard instances.
Convertible instances are very complicated! Whenever you convert an instance, you can only update usage. For example, let's consider the following situation.
- You have acquired a t3.medium Convertible Reserved Instance.
- You have decided to convert the t3.medium instance to an m5.large instance.
It is no longer possible!
It is not possible to downgrade a convertible instance, only to increase the amount spent with it. So, make sure you start with small convertible instances and scale them up over time. Don't start with a large instance because you can't downgrade or sell it on the AWS Marketplace. If you make a mistake with Convertible RIs, you commit to a monthly payment for 12 or 36 months. In Back4App, the way we manage convertible instances is always acquiring t2.nano and updating when needed.
I prefer standard Reserved Instances to editable Reserved Instances. The reasons are:
- They are cheaper
- They have liquidity - you can sell on the AWS Marketplace at any time
- You can purchase it on the AWS Marketplace at a discount
AWS released this new flexible pricing model on November 6, 2019, and it seems like a much easier way to save on computing power.
Savings plans are a flexible pricing model that offers low prices on using EC2 and Fargate, in exchange for a promise of a constant amount of use (measured in $ / hour) over a one- or three-year cycle. When you sign up for savings plans, you will be assigned the discounted savings plan price for your use up to your commitment. For example, if you commit to $ 100 of EC2 usage per hour, you will get savings plan prices on that usage up to $ 100 and AWS will charge for any usage in excess of the commitment at On Demand rates.
Here's how the process works:
- Go to the billing management console
- On the left side look for Savings Plan and click on it.
- The following page will open:
At the top right, click Buy a savings plan. Now you have to choose between Compute and EC2 Savings Plan.
For this purchase, I will choose Compute because it offers more flexibility. The next step is to choose the commitment term: Two options: (I) 1 year (II) 3 years For this purchase, I will choose a 3 year commitment to get the best savings rates. Now you have to choose the hourly commitment. I will choose a $ 0,01 / hour commitment for 3 years. It will incur an initial cost of $ 262,80.
Click Add to Cart. A new page will open with purchase information.
Click Submit Order.
Consider that you have an account running an m5.large Linux instance in the Northern Virginia region. The account will have the following processing fees upon request:
- Hourly cost: $ 0,096
- Daily cost: $ 2,304
- Annual cost: $ 840,96
How Much Savings Plans Should You Buy?
Should you buy $ 840,96? The answer is no! This is the full price on request! This way, you will exceed the purchase and a percentage of your savings plan will not be used. The way the Savings Plan operates is different from Reserved Instances and please be cautious in purchasing it.
Let's do the math here. According to the AWS Savings Plan pricing page, the Savings Plan for the m5.large Linux instance will have a 31% discount on the on-demand rate.
- Savings Plan = Price On Demand x (Discount Rate 1)
- Savings Plan = $ 840,96 * (1–31%)
- Savings Plan = $ 580,26
Keep in mind that You cannot sell Savings Plan on the AWS Marketplace . As soon as you buy it, the commitment is for the entire period and you do not have the option to cancel the purchase . If you want the flexibility to sell instances on the AWS Marketplace, purchase Standard Reserved Instances. Read the following paragraph for more information on how to buy and sell on the AWS Marketplace.
Use AWS Marketplace for Reserved Instances
Reserved Instances are great, but Reserved Instances purchased on AWS Marketplace are even better!
AWS Marketplace can be much cheaper
AWS Marketplace looks like a stock market! Sometimes you can purchase Standard Reserved Instances at much cheaper prices than buying directly from AWS. The reason is simple; companies sometimes have unnecessary cases that are no longer used and continue to pay for it. Lowering the list price is a great way to speed up the sales process.
I will now give a real example that happened with Back4App. I was looking for four r4.large Reserved Instances. I was able to find instances on AWS Marketplace with actual rates at a 75% discount over on-demand pricing. AWS was selling the same type of Reserved Instance at a 62% discount.
AWS Marketplace has flexible purchase terms
The other benefit of AWS Marketplace is that you can purchase instances with flexible term terms. AWS only provides 12 months / 36 months of options to acquire Reserved Instances. The AWS Marketplace is much more flexible! For example, you can buy Reserved Instances with a duration of 15 months for the same price of 36 months. Some companies acquire long-term bookings (36 months) and, before the booking expires, sell instances on the AWS Marketplace. The new buyer will only use the instance for the remainder of the term. For instance:
- Total booking period: 36 months
- Original Byer: Use the instance for 21 months
- Second time buyer: Buy on the Marketplace and use it for another 15 months.
- Step 1: Go to the Reserved Instances dashboard
- Step 2: Click Buy Reserved Instances
- Step 3: In the offer class select Standard
- Step 4: At the top right of the pop-up window, select “Show only offers with spare capacity”.
- Step 5: Click Search
- Step 6: Purchase an instance from Availability Zone 1b
- Step 7: Wait for the instance to be active
- Step 8: Select the captured instance
- Step 9: Click the Actions button
- Step 10: Click Edit Reserved Instances
- Step 11 - Scope: Edit AZ or select Region
- Step 12: Click Continue
- Step 13: Click Submit Changes
AWS Marketplace for Non-US Businesses
Here is a valuable guide for users who do not have a US legal entity. You will NOT be able to sell Standard Reserved Instances on the Marketplace unless you have a US legal entity. If you run your business outside of the US, you will only be able to buy instances on the Marketplace, but you won't be able to sell it.
Use Spot Instances
I love Spot instances! You can save up to 90% by using it and it doesn't require a long-term commitment! The only downside to Spot Instances is that AWS can terminate these instances with little or no notice (maximum 2 minutes). Therefore, this instance type should only be used for flexible or fault tolerant workloads.
Use SpotInst to run Spot Instances
A surefire way to run Spot Instances and minimize the risk of downtime is to use the SpotInst platform. This service will connect to your AWS account and manage the allocation of Spot Instances. In the event that AWS terminates an instance, this service will replace the instance with an On Demand instance and prevent downtime. Pricing is also pretty smart and they charge 20% of the net savings (between price on request and spot price).
A great use case for Spot Instances is running secondary database servers and also autoscaling applications. Use SpotInst to manage the allocation of spots and, most likely, you will never face downtime associated with using this offering class.
Automatic scaling (resources inactive, automatic start / stop of EC2 instances)
AWS Auto Scaling monitors your applications and automatically adjusts capacity to maintain stable and predictable performance at the lowest possible cost. You can configure automatic scaling to automate starting and stopping EC2 instances. Autoscaling groups take into account resource usage such as CPU, API requests, or start / end times.
To minimize costs, you need to use Autoscaling + Spot Instances + Reserved Instances. Let's see this real situation we faced here on Back4App. The workloads on our application servers vary throughout the day. The amount of requests we receive is not fixed and has peaks in use at specific times of the day. The way we deal with this is by allocating reserved instances for usage baseline (minimum level) and scaling with spot instances. The image below is useful for understanding the configuration we use.
Here's how much you can save:
- Reserved Instances: In Back4App, we have a combination of standard 12 month / 36 month Reserved Instances. Our average savings are 50% compared to costs on request.
- Autoscaling: We start / stop instances based on the total API requests received by each instance. We have three peak usage periods throughout the day, and the savings compared to keeping idle resources running 24/24 with maximum workload is around 75%.
- Spot Instances - We have a combination of two family types running on Spotinst to maximize uptime. Our net savings are 55% compared to the prices on request. This is our net savings and takes into account the full amount we have to pay to SpotInst. Running spot instances directly on AWS would save us around 70%, but would increase the availability risk. We like to play it safe and have decided to allocate part of the savings to SpotInst.
Optimize scaling with vertical / horizontal scaling (Cloudformation)
Select the correct AWS Region to minimize costs
The cost varies by region! Choose the wrong one and you will end up paying a lot more.
- 4 x t3.medium instances
- 30 GB EBS allocated for each instance
- 1 TB total data transfer
- $ 221,65 / month in North Virginia
- $ 449,05 / month in Sao Paulo
Centralizing operations in a single region offers additional benefits.
- It will be much easier to manage the allocation of Reserved Instances
- You will not incur regional data transfer.
Upgrade previous generation resources
AWS launches new instance types from time to time. Next generation instances are more affordable and have more processing power.
Older generation instance
3,75 GiB of memory
$ 0,100 / hour
New generation instance
4 GiB of memory
$ 0,085 / hour
The next generation instance costs 15% less and has 6% more processing power!
Enable advanced networking
Enable an enhanced networking for better instance performance!
Select the correct instance family
AWS provides several instance families optimized to suit multiple use cases.
- General purpose
- Optimized storage
- Optimization of the calculation
- Optimized memory
- Accelerated calculation
You can compare the pros and cons of each instance family using this EC2 price comparison tool.
Eliminate Idle Elastic Load Balancer
The load balancer charges are a function of the requests processed and the running hours. So, if you have any inactive load balancers, be sure to delete it. Otherwise you will still pay $ 0,025 per hour (Classic LB in North Virginia). Please see pricing details here.
4. EBS - Elastic Block Store
EBS provides persistent block storage volumes for use with EC2 instances in the AWS Cloud. Each Amazon EBS volume is replicated within its Availability Zone to protect you from component failure, providing high availability and durability. The cost per GB stored depends on the type of volume where the data will be stored. The most commonly used volumes are General Purpose SSD and Magnetic.
General purpose SSD
$ 0,10 / GB per month
$ 0,05 / GB per month
EBS type: SSD x magnetic
Start mapping your EC2 instances e download this leaflet di work to help you. For each instance, determine whether the volume is Magnetic or SSD.
- Choose Magnetic on SSD whenever possible.
- Replace SSD volumes whenever possible.
The second action to save on EBS costs is to determine the size of each attached volume. It is common to have large volumes and unused capacity. Download this worksheet to learn more.
End Instances: Stop will keep the EBS costs
Stopping an instance won't stop you from having EBS costs! Your volume will continue to be stored and the bill will come! If you no longer need the instance and data, terminate the instance! This action will stop both EC2 and EBS costs.
AWS will incrementally allow you to increase the EBS size, but will not allow you to reduce it. So in general it is better to have smaller volumes rather than large ones and to use EBS volumes only when needed.
Let's simulate how expensive it can be. Let's say you are running 10 x t3.small instances and each instance has 50GB EBS SSD storage. The monthly price will be as follows:
- EC2 monthly cost = 10 x $ 15,23 = $ 152,30
- Total EBS size: 10 x 50GB = 500GB
- Cost / GB: $ 0,10 per month
- EBS monthly cost: $ 50,00
- Total cost: $ 182,30
Consider ephemeral storage
Also evaluate the pros / cons of ephemeral storage. Professionally, you won't have to face the hidden costs of EBS, you'll have lower latency, and you can get discounts on Reserved Instances. On the downside, you may not be using all of the available internal storage (and still pay for it), and implementing spot instances will be more complicated.
Delete unattached volumes
Another action that will save you money is simply deleting the unattached and unused volumes.
Use S3 to backup your data
EBS costs at least twice as much as S3! In general, you should preferably backup your data to S3 and not EBS. Make sure your backups also run incrementally and are deleted periodically.
5. Elastic Cache - Reserved nodes
What very few people know is that you can purchase Reserved Instances for Elastic Cache. The savings are pretty good and detailed below:
- Booking for 1 year - 65% discount
- Booking 3 years - 77% discount
- Go to Elastic Cache (not EC2 Reserved Instances)
- Go to Reserved Nodes
- Click the blue Buy Reserved Node button on the top right
- Select Redis or Memcached
- Select the type of node
- Select period (1 or 3 years)
- Offer type (light, medium, heavy)
- Click Next
There is no AWS Marketplace for Elastic Caching
Please note that there is no Marketplace for Reserved Nodes! Before purchasing, be sure to use the knot for at least one year.
6. Data transfer
This cost variable can get out of control pretty quickly! It is very complex to manage and difficult to find out where the data is flowing from. In addition, there are different types of data transfer. For example, data transfer out, transfer between regions, transfer between AZ, transfer S3, etc.
I will describe in detail how Back4App has reduced data transfer costs and also how to monitor them.
How to reduce AWS data transfer costs?
Here are some practical procedures that will help you reduce your relocation costs.
Connect your S3 endpoints to Cloudflare or other CDN services.
This simple action can reduce your S3 data transfer costs by 5x depending on how much cache you have.
Elastic IPs: Choose private IP whenever possible
That's a good one! The AWS Pricing Calculator states that the data transfer is free for EC2 instances, but it also has an input box for “Public IP / Elastic IP Data Transfer”. If you choose to communicate using your public or Elastic IP address or Elastic Load Balancer within on the Amazon EC2 network, you will pay intra-regional data transfer rates even if the instances are in the same Availability Zone. For data transfer within the same Availability Zone, you can easily avoid this charge (and get better network performance) by using your private IP whenever possible.
Use a single AZ - Availability Zones
Use a single AZ instead of multi-AZ for another significant savings. Avoid or stop data transfer between regions.
Data transfer between regions
Here are some ways that will allow you to reduce data transfer between regions:
- Store your files locally on S3. Storing in another region will incur you in the transfer of regional data.
- Back up your data in the same AWS Region.
One of the significant benefits of GraphQL is the reduction of over-fetching and, consequently, of data transfer. Replacing REST can be a challenging task depending on how your app is structured, and it's essential to estimate the potential for cost savings before proceeding. Another alternative is to implement GraphQL incrementally for new projects or features. Please read the tutorial below for details on how to implement the GraphQL APIs.
Data transfer volume discount
It is quite difficult and the volume you need is incredibly loud. This action can only be applied to companies or large accounts.
You can get huge savings by implementing this action! This action will also improve the performance of your application and reduce overall latency. It's a win-win implementation. Refer to the Cloudfront topic to read more about it.
How to monitor data transfer costs?
There are two simple ways to track data transfer costs.
- Cost Explorer
To access the Cost Explorer report, you need to go to My Billing Dashboard and click on Cost Explorer. Select the Spend by Service View report and a new window will open. A default report with the last six months will open and let's start with it. Please note that there are NO data transfer costs on the service column! These costs lurk inside the filters, and you have to dig deeper to find them.
To find the data transfer costs, you need to filter as follows:
- Click More Filters and the filters expand
- Select Usage Type Group
- Now the data transfer starts to appear
- Select Data Transfer - Inter AZ
- Select Data Transfer - Internet Out
- Select Data Transfer - Region to Region Outside
- Select S3 Data Transfer Out
- Click Apply Filters
Now you have the breakdown of the costs for the data transfer and can determine where the data is coming from, S3 or EC2. If you wish, you can implement a similar process and further break down the costs for each region and AZ.
Another way to view data transfer costs via the billing report. Go to My Billing Dashboard and click on Bills on the left hand side.
The report will look like this:
Please note that this already has a default breakdown showing EC2 data transfer costs. By clicking on Data Transfer, you will have an analysis by region.
By selecting the region, you will have a subdivision of the bandwidth according to the type of data transfer (outgoing transfer, between AZ, interregional).
7. Cloud Front
The on-demand costs for Cloudfront are reduced fairly quickly as you increase the
Private Cloud Front contract and volume pricing
Here is the best way to reduce your data transfer costs! AWS is willing to take advantage of its CloudFront service, and depending on the volume, you can minimize the CloudFront transfer for a fee of $ 0,02 / GB. This will most likely take a two-year commitment, and if you plan to use AWS for a while it's a great path to take. To move forward, you need to contact your account manager and ask for a CloudFront private agreement.
Amazon CloudFront SSL-Cert-Custom
Check if you are using this certificate. It costs $ 20 a day (yes, you read that right, $ 20 a day, or $ 600 a month) and you can get the same certificate with Cloudflare for $ 20 per month. With the Private & Volume Pricing agreement, you will not be allowed to connect to other CDN services and this action will not be possible.
8. S3 - Simple Archiving Service
Here are some useful guidelines for reducing S3 costs.
VPC S3 endpoint
An excellent cost-saving initiative that most people fail to utilize is the S3 VPC endpoint. Placing an S3 endpoint in the VPC gives traffic to S3 its internal path, and AWS won't charge you like public traffic. Depending on the volume, reductions of thousands of dollars per month can be achieved with this method.
Use the correct storage model and the appropriate storage class
There are five five storage models:
$ 0,023 / GB
- Redundancy between AZ
- Low latency and high performance
- Resilient against events affecting an entire Availability Zone
$ 0,0125 / GB
- Ideal for long-term archiving, backups and as a data repository for disaster recovery files.
- Redundancy between AZ
- Less frequent access
$ 0,010 / GB
- Less frequent access
- An excellent choice for storing secondary backup copies
$ 0,004 / GB
- A secure, durable, low-cost storage class for data storage
- Redundancy between AZ
- Recovery options ranging from minutes to hours
$ 0,00099 / GB
- Low-cost storage class and supports long-term retention and digital retention for data that can be accessed once or twice a year.
- Recovery time within 12 hours
- Redundancy between AZ
Note that every time you move items from one storage class to another, you will be billed based on the number of requests. It can be very complicated! I will share a situation that happened on Back4App. One of our customers stores millions of small objects and data is rarely recovered. We initially archived these objects on the S3 standard and decided to move them to S3 Glacier to reduce costs. So far, so good! What we didn't realize was that AWS charges $ 0,05 for every 1.000 Glacier requests! In this situation the number of objects was huge and the size of each object was quite small. So, the initial cost we had to face didn't pay off! Before moving objects between storage classes, it is essential to consider the costs related to S3 requests and conduct reimbursement analyzes.
Delete unused S3 data
The simplest and most effective way to save costs on S3 is to simply delete old and unused data. Look for old backups and unused S3 buckets. Perform analyzes and delete data if possible.
Software development company? Join our partner program now!
9. Choose your AWS support type wisely
There are four types of support levels:
- Basic - Free
- Developer - $ 29 / month or 3% of the monthly bill
- Business - $ 100 / month or 10% -3% of the monthly bill depending on the volume
- Company → $ 15.000
Use your AWS regional account manager
Use your regional account manager and solution architect as much as possible! They are separated from the central support team and will be able to provide a much more personalized service. The AWS team is very knowledgeable and helpful! The guidance they gave us in terms of advanced security settings and GDPR implementation was best in class! I was impressed with the technical knowledge and commitment of the team to help us achieve better results. This type of support makes me think twice before moving on to other cloud service providers.
10. Monitoring and control
It is of the utmost importance to maintain a strict billing regime and to know your day-to-day expenses. You need to provide yourself with detailed tracking of your costs and take the time to review them every day. Imagine the volume of savings you can achieve after 365 days!
Daily monitoring will help you identify suspicious uptrends and take action as soon as possible. Best practices related to Monitoring and Control are described below:
- Regular monitoring.
- Some useful reports are:
- Billing and cost management dashboard
- Monthly bills
- Cost Explorer - Monthly Spend for Service View
- Cost Explorer - RI usage
- Cost Explorer - RI coverage
- Tag everything
- Measure baseline, monitor, alert on exceptions
- Establish a model of responsibility
- Use Cloudwatch and Trusted Advisor to track costs
- Consolidate your invoices and get volume discounts
Architectural redesign is commonly the most time-consuming step to implement. It could take weeks or months, depending on how large / complex your infrastructure is.
Our Back4app experience shows that there are many easier steps to take before this one. In general, incremental improvements will provide substantial short-term savings. First earn these savings and gain experience to implement a best-in-class architectural redesign.
There is no magic pill to reduce AWS costs! You need to establish a regular routine to track expenses, prioritize cost savings, and work like crazy to meet your AWS savings goals.
Here is a review of the actions that helped us reduce our AWS bill.
- Terminate unused EC2 instances
- Shrink large AWS instances
- Move the data transfer stream to CloudFront
- Upgrade to Next Generation Instances
- Implement best practices such as an enhanced network
- Backup data on S3
- Book instances on the AWS Marketplace and book elastic cache nodes
- Have the right combination of Spot, Reserved and On-Demand instances
- Automate autoscaling options
- Mix storage between S3 Standard and Glacier
So, what do you think of the results we have achieved? Did it help you understand how to reduce AWS costs?