AWS Cloud Cost Optimization
AWS cost optimization is an ongoing process. AWS cloud resource utilization needs to be continually monitored to determine when the resources are being under-utilized or not being utilized or idling to reduce the costs by deleting/terminating/freeing the unused resources.
It’s also helpful to consider the Saving Plan or Reserved Instances to ensure full utilization as per the anticipated constant level of consumption.
While the fundamental process of cost optimization on AWS remains the same – monitor AWS costs and usage, there are a number of tactical ways to analyze the operational data to find the opportunities for savings and take actions to realize the savings.
Pillars of Cloud Cost Optimization
Identify the resources with low-utilization and reduce the cost by stopping or rightsizing.
- Use AWS Cost Explorer Resource Optimization report to get the list of idle or low utilized resources. Reduce the costs by either stopping or downsizing the instances.
- Use AWS Compute Optimizer for downsizing recommendations within or across instance families, upsizing recommendations to remove performance bottlenecks and recommendations for EC2 instances that are parts of an Auto Scaling group.
- Identify Amazon RDS, Amazon Redshift instances with low utilization and reduce the cost by stopping (RDS) and pausing Redshift outside of business hours or non-processing timeframe.
- Use Amazon EC2 Spot Instances to reduce EC2 costs where possible – SPOT instance mgmt. can be effectively managed by 3rd part tool, such as Spotinst, for automatic termination and new instance availability without impacting end users.
- Review and modify EC2 Auto-Scaling Groups configuration to ensure scaling is happening on the right thresholds instead of setting it at the lower thresholds.
- Try using Elastic Kubernetes Services (EKS) and Elastic Compute services (ECS – EC2 Model) worker nodes under auto-scaling using SPOT instances (instead of on-demand/RI) for reducing the cost.
- Consider using Elastic Compute services (ECS -Fargate) to start the tasks with lower configuration (e.g. 0.5 vCPUs & 1GB RAM) per task and use auto-scaling instead of higher configuration per task.
- Multi-AZs configuration for DEV, test, UAT, or DR environment may not be necessary or useful for RDS, Redis, NAT, or other PAAS services (unless business really requires achieving any objective); therefore, it’s important to design wisely.
2. Instance Family Refresh
Each instance/series/family offers different varieties of computing, memory, and storage parameters. Instance types within their set groupings are often retired as a unit when the hardware required to keep them running is replaced by newer technology.
- Upgrade instances to the latest generation offering lower costs.
- For PAAS services, such as RDS, Redis, ElasticSearch, MSK, use instance type wisely, particularly for pre-PROD or DR and appropriate AZs to scale the instances. It may not require more than 2 AZs even while considering business SLAs. Keep an eye on the latest family of infrastructure and refresh to take the benefits of lower costing.
- Use low costing instance type for Development, QA, or the environment (e.g. T3a) wherein performance benchmarking certainly is not required for the business SLA.
- Always start with low and upgrade the right size to a suitable family considering the business use cases and traffic patterns.
3. Compute Savings Plans to reduce EC2, Fargate and Lambda costs
Compute Savings (Compute Savings Plans and EC2 Instance Savings Plans) Plans automatically apply to EC2 instance usage regardless of instance family, size, AZ, region, OS or tenancy, and apply to Fargate and Lambda usage. Use one year, no upfront Compute Savings Plans to get a discount of up to 54% compared to On-Demand pricing. Once you sign up for Savings Plans, your computer usage is automatically charged at the discounted Savings Plans prices. Any usage beyond your commitment will be charged at regular On-Demand rates. Please follow Point Nos. 1 and 2 before adopting Saving PLAN. Saving Plan has a lot of advantages over AWS Reserved Instances with one condition – “Usage commitment/Hour”
4. Reserved Instances (RIs)
Even though the Saving plan supersedes the RI option, some of the PAAS services are outside of the Saving Plan program as of today in April 2020.
- Purchase reserved nodes for RDS, Redshift, Elasticsearch and ElastiCache Services to reduce the cost.
- Many instance type discounts are larger and at the top end may be over 60% in the case of some 3 year all upfront terms. Identify the instances & take call saving plan vs RI intelligently.
- You can get shorter term RIs on the marketplace.
5. Scheduling on/off times
It’s worth scheduling on/off for non-production instances used for development, staging, testing, and QA as it can save up to 65% of running these instances if you apply an “on” schedule of 8.00 a.m. to 8.00 p.m. from Monday to Friday. However, it’s possible to save a lot more — especially if development teams work in irregular patterns or irregular hours. Plan more aggressive schedules by analyzing utilization metrics to determine when the instances are most frequently used or apply an always-stopped schedule which can be interrupted when access to the instances is required.
6. Orphaned resources
Identifying waste takes time and accurate reporting. It is a great reason to invest time and energy in developing a proper tagging strategy to make this an easy process.
- For unutilized AWS EC2s, use Cost Explorer Compute Optimizer report or extract CW stats and take actions.
- Terminate VMs that were spun up for training or testing.
- Delete unattached EBS volumes – Check Volumes page and available EBS volumes status.
- Delete obsolete snapshots and lifecycle as required to meet the business demand.
- For idle load balancers, try to use ALB with path/content-based routing.
- Release unattached Elastic IP addresses.
- EBS volumes that have very low activity (less than 1 IOPS per day) over a period of 15 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), and then delete these volumes.
- Use S3 Analytics to analyze storage access patterns on the object data set for 30 days or longer. It makes recommendations on where you can leverage S3 Infrequently Accessed (S3 IA) to reduce costs. You can automate the process of moving these objects into lower-cost storage tier using Life Cycle Policies. Alternately, you can also use S3 Intelligent-Tiering, which automatically analyzes and moves your objects to the appropriate storage tier.
- Move infrequently accessed data to lower-cost tiers.
- Use S3 One Zone if business SLA allows you to do so.
Containers can help to get the most out of available computer hardware and software resources which are Lightweight, have start-up time in milliseconds, and require less memory space. Containers help to achieve the scale of the economy by reducing the IT management resources, snapshot size, spinning up applications, reduced & simplified security updates, etc. Containers are a better choice when your biggest priority is maximizing the number of applications running on a minimal number of servers.
9. Local Caching
If data transfer from EC2 to the public internet shows up as a significant cost, consider using Amazon CloudFront. Any image, video, or static web content can be cached at AWS edge locations worldwide, using the Amazon CloudFront Content Delivery Network (CDN). CloudFront eliminates the need to over-provision capacity in order to serve potential spikes in traffic. Use CloudFront when your userbase is geographically distributed.
10. VPC endpoints
Heavy data lifting to S3 from private subnets (e.g. static contents, backup, videos, etc.) require NAT gateway. Use VPC endpoint to reduce the NAT gateway data out the cost and move data securely over the AWS backbone. This will reduce the NAT Gateway data out the cost that occurs to S3.
11. Regional and AZs Cost
AWS AZ and regional cost can be eliminated wisely through right solutioning.
With-in availability zone (AZ)
- Data transfer costs for transferring data in the same region and within the same availability zone are zero, however with one requirement that you must be using a private IP address.
- If you are using a public or Elastic IPv4 address or IPv6 address, data transfer out from EC2 will be charged at 0.01/GB. In the same way, data transfer into AWS EC2 will be charged at 0.01/GB if you are using a public or Elastic IPv4 address or IPv6 address.
Across availability zones in the same region
- Data transfer between AWS services located in the same region but in different availability zones is considered as regional data transfer and is charged at $ 0.01/GB (outgoing data transfer).
- In the same way, data transfer into EC2 from an AWS service in another availability zone is charged at $ 0.01/GB.
This is only true for some AWS services like Amazon EC2, Amazon RDS, Amazon Redshift or Amazon ElastiCache instances, etc.
- Architect your systems so that there is minimal data transfer across AWS regions or availability zones.
- Architect your AWS environment such that data transfer is restricted to within an availability zone or within a region at the most.
- Try to use private IP addresses instead of public or elastic IP addresses wherever possible.
Fine-tuning your cloud infrastructure is critical to make sure that your overall bill stays in the limit. Proven cloud cost optimization strategies outlined in this blog will help you cut down your cloud costs by eliminating unused resources and/or choosing the right resource plan. Sify has been meticulously managing the cost optimization projects of large enterprise customers for many years to reduce their AWS bills substantially. Sify, with its highly dedicated, well experienced and AWS certified SMEs, can help you realize your business objectives by fine-tuning your environment.
If you are concerned about your ever-increasing AWS cost, the above-given strategies will help you optimize the cost. You can also choose Sify – the experienced AWS Managed Service provider – for yielding the best results.