AWS Cost Optimization - How AWS Pricing Works

AWS Cost Optimization

AWS enables you to take control of cost and continuously optimize your spend, while building modern, scalable applications to meet your needs. AWS's breadth of services and pricing options offer the flexibility to effectively manage your costs and still keep the performance and capacity you require. AWS is dedicated to helping customers achieve the highest savings potential. Get started with the steps below that will have an immediate impact on your bill today.

Choose the right pricing models

Use RIs to reduce Amazon RDS, Amazon Redshift, Amazon ElastiCache, and Amazon OpenSearch Service costs

For certain services like Amazon EC2 and Amazon RDS, you can invest in reserved capacity.

With Reserved Instances, you can save up to 72 percent over the equivalent on-demand capacity. RIs are available in three options: All up-front (AURI), partial up-front (PURI), and no upfront payments (NURI). Use the recommendations provided in AWS Cost Explorer RI purchase recommendations, which is based on your Amazon RDS, Amazon Redshift, ElastiCache, and OpenSearch Service usage.

Amazon EC2 Cost Savings

Use Amazon Spot Instances to reduce Amazon EC2 costs, use Compute Savings Plans to reduce Amazon EC2, Fargate, and Lambda costs, and use SageMaker Savings Plans to reduce SageMaker costs.

Match capacity with demand

Identify Amazon EC2 instances with low-utilization, and reduce cost by stopping or rightsizing.

Use AWS Cost Explorer Resource Optimization to get a report of Amazon EC2 instances that are either idle or have low utilization. You can reduce costs by either stopping or downsizing these instances. Use AWS Instance Scheduler to automatically stop instances. Use AWS Operations Conductor to automatically resize the Amazon EC2 instances (based on the recommendations report from Cost Explorer).

Identify Amazon RDS and Amazon Redshift instances with low utilization and reduce cost by stopping (RDS) and pausing (Redshift).

Use the Trusted Advisor Amazon RDS Idle DB instances check to identify DB instances which have not had any connection over the last seven days. To reduce costs, stop these DB instances using the automation steps described here: Implementing DB Instance Stop and Start in Amazon RDS. For Redshift, use the Trusted Advisor Underutilized Redshift clusters check to identify clusters which have had no connections for the last seven days, and less than 5 percent cluster wide average CPU utilization for 99 percent of the last seven days. To reduce costs, pause these clusters using the steps in: Lower your costs with the new pause and resume actions on Amazon Redshift.

Analyze DynamoDB usage and reduce cost by leveraging AutoScaling or on-demand.

Analyze your DynamoDB usage by monitoring two metrics, ConsumedReadCapacityUnits and ConsumedWriteCapacityUnits, in CloudWatch. To automatically scale (in and out) your DynamoDB table, use the AutoScaling feature. Using the steps at Enabling DynamoDB auto scaling on existing tables, you can enable AutoScaling on your existing tables. Alternately, you can also use the on-demand option. This option allows you to pay-per-request for read and write requests so that you only pay for what you use, making it easy to balance costs and performance.

Implement processes to identify resource waste

Identify Amazon EBS volumes with low-utilization and reduce cost by snapshotting, then deleting them

Amazon EBS volumes that have very low activity (less than one IOPS per day) over a period of seven days indicate that they are probably not in use. Identify these volumes using the Trusted Advisor Underutilized Amazon EBS Volumes Check. To reduce costs, first snapshot the volume (in case you need it later), then delete these volumes. You can automate the creation of snapshots using the Amazon Data Lifecycle Manager. Follow the steps at Delete an Amazon EBS volume to delete Amazon EBS volumes.

Analyze Amazon S3 usage and reduce cost by leveraging lower cost storage tiers

Use Amazon S3 analytics to analyze storage access patterns on the object data set for 30 days or longer. Amazon S3 Analytics makes recommendations for leveraging S3 Infrequently Accessed (S3 IA) to reduce costs. You can automate moving these objects into a lower cost storage tier using lifecycle policies. Alternately, you can also use S3 Intelligent-Tiering, which automatically analyzes and moves your objects to the appropriate storage tier.

Review networking and reduce costs by deleting idle load balancers

Use the Trusted Advisor Idle Load Balancers check to get a report of load balancers that have a RequestCount of less than 100 over the past seven days. Then use Step 8: Delete your load balancer (optional) to delete these load balancers to reduce costs. Additionally, use the steps provided in Using AWS Cost Explorer to analyze data transfer costs to review your data transfer costs using Cost Explorer.