Cloud computing is becoming a major part of IT expenditure at many organizations. If you use Amazon Web Services (News - Alert) (AWS), you’re probably already looking for ways to cut your costs. In this article, I’ll explain the basics on Amazon pricing, present free services offered by Amazon that can help you optimize costs, and show five little-known best practices that can help you reduce your Amazon bill.
AWS Pricing in a Nutshell
AWS’s compute resources model allows you to pay for resources from the moment you launch one until you terminate it. If you reserve ahead of time using reserved instances, you can receive discounts of up to 75% on regular pricing.
You can pay by compute resources for the following services:
- Amazon Elastic Compute Cloud (EC2) (learn about EC2 pricing in-depth)
- Amazon Virtual Private Cloud (VPC)
- Amazon EC2 Container Registry
- Elastic Load Balancing
- Amazon Lightsail
- AWS Lambda (learn more about AWS Lambda pricing)
Data Storage and Transfer
For most storage, data services and AWS database services, Amazon charges by volume (measured in gigabytes), with tiers that grant discounts for large scale use. There may be different pricing per unit for data storage, transfers, and requests, but in general, the more you use, the lower the price per gigabyte.
You can pay by data storage and transfer for the following services:
- Amazon Simple Storage Service (S3)
- Amazon Elastic Block Storage (EBS)
- Amazon Elastic File System (EFS)
- AWS Storage Gateway (News - Alert)
- AWS Snowball Edge
- AWS Snowmobile
- Amazon Glacier
- AWS Snowball
AWS provides a 12-month free tier trial service from the moment you sign up. Get free hosting and, most important, some hands-on familiarity with the Amazon Web Service cloud. You can access a variety of services for a limited time, and you can continue using some services at a limited capacity after your trial period is over (the free forever tier).
AWS Cost Management Tools
Amazon provides several tools designed to help you save money when using their cloud services. Some tools are for pure cost management, others for optimization.
Billing and cost management console
Monitor what services you use with Amazon console’s billing section. You can optimize their structure, tag (News - Alert) services by department or project, and consolidate AWS accounts. Assign projects to their own billing entity to separate organizational budgets.
AWS Cost Explorer
The cost explorer interface presents up to 13 months of past usage, costs, and the return on your investment in Amazon services. Use it to calculate your future spending and pinpoint potential cost cuts. VIews are customizable, and there is even an API for accessing the data on your own analytics platform.
Like the Cost Explorer, AWS’s Budgets dashboard shows what services are being used and how they compare to their predetermined budgets. To determine and enforce budgets for specific services, simply define your overall budget or connect your budget to specific data points, like data usage or instances. The platform will notify you when you are about to exceed your budget. You can receive notifications by email or simple notification services (SNS).
AWS Trusted Advisor
Trusted Advisor is a unique tool that guides you through best practices when using Amazon services. One of its options—cost optimization—provides automated recommendations regarding:
- Underutilized EBS volumes and Amazon Redshift clusters
- Idle DB Amazon RDS instances and load balancers
- Low EC2 instance utilisation
- Unassociated elastic IP addresses
- Redundant Route 53 latency resource record sets
- EC2 reserved instance optimization and lease expiration
Amazon CloudWatch is a commonly used cost optimization tool that provides alarms for a wide variety of captured metrics from your Amazon services account. It can, for instance, notify you when an EC2 instance runs below 30% utilization. It will then pinpoint the reason and take effective measures to either right size the instance or combine workloads.
5 Little-Known Best Practices for Reducing AWS Costs
Stop or Rightsize Instances with Low Utilization
Reduce costs with AWS cost resource optimization—AWS reports idle or low-utilizing EC2 instances. Choose to either terminate the instance, using AWS instant scheduler, or resize it with AWS operations conductor, based on AWS Cost Explorer recommendations.
Remove bottlenecks with AWS Compute Optimizer—Beyond instance family downsizing, the optimizer provides instance type recommendations within or across instance families that are included in an autoscaling group.
Snapshot and Delete Unused EBS Volumes
The Trusted Adviser checks for under-utilized Amazon EBS volumes, and alerts you to volumes with activity counts of under 1 IOPS per day. It can then automatically create a snapshot using Amazon’s data lifecycle manager before you delete the volume. In any case, snapshot the volume for possible future use before deleting it.
Reduce Amazon DynamoDB Costs with Autoscaling
If you are using DynamoDB, use CloudWatch to monitor ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits. The autoscaling feature allows you to scale your DynamoDB table automatically. Enable autoscaling following these steps, or else, select the on-demand option. This way, you will be paying separately for each read and write request, thereby balancing performance and cost.
Review Networking and Reduce Costs by Deleting Idle Load Balancers
Amazon’s Trusted Advisor provides the Idle Load Balancers report, showing underutilized load balancers—those with a RequestCount under 100 for the previous seven-day period. You can then follow these steps to reduce costs by deleting load balancers.
You can also use Cost Explorer to review data transfer expenses created by load balancers. If the cost is significant, you may want to use Amazon CloudFront for transferring data from EC2 to the internet. CloudFront’s content delivery network (CDN) can cache images, videos, or static content at Amazon edge locations around the world, eliminating the need to over-provision capacity for the sake of potential traffic spikes.
Use Compute Savings Plans to Reduce EC2, Fargate and Lambda Costs
Sign up for a one-year, no upfront compute savings plan and get an immediate discount of up to 54%, on regular on-demand pricing. Amazon will automatically charge you for discounted savings plan prices.
Compute Service Plans apply across tenancies, operating systems, availability zones, instance sizes, and instance families. You commit to a certain quantity of usage of Amazon resources, and get a discounted rate for EC2, Fargate and Lambda. Amazon charges for usage beyond your commitment at regular on-demand rates.
In this article I introduced AWS pricing and cost optimization tools, and shared five secrets that can help you substantially reduce your cloud costs:
- Identify instances with low utilization, and stop them, right size them, or use them for more demanding workloads
- Delete unused EBS volumes, which exist in almost every AWS deployment and add up to a large, ongoing cost
- Auto scale DynamoDB to automatically react to loads and reduce computing costs
- Delete idle load balancers, and reduce data transfer costs by using Amazon CloudFront
- Leverage Savings plans to dramatically reduce EC2, Fargate and Lambda expenditure
I hope this will be of help as you set out to optimize and economize your AWS deployment.