6 new ways to reduce your AWS bill with little effort
The last time we wrote about how to save AWS costs was at the end of 2015. AWS has changed a lot since then. AWS introduced AMD-powered EC2 instances that are 10% cheaper compared to the Intel-powered Instances.
They provide the same resources (CPU, memory, network bandwidth) and run the same AMIs. The following table shows a mapping from Intel to AMD instance families. You can switch to an AMD family by stopping your EC2 instance, changing the instance type, and starting the instance again.
Those steps will pay off quickly. AWS is also working on ARM-based EC2 instances. They are even cheaper (~40%), but the architecture is different and cannot run your Intel/AMD AMIs.
Many VPC architectures make use of private subnets (a subnet without a route to the Internet via an IGW). You can even run public websites in such a setup if your load balancer runs in public subnets as shown in the following figure. But we also see many EC2 based architectures to make use of AWS services such as SQS, S3, DynamoDB, and so on.
To use those services, we have to make calls to the AWS API over Internet. In private subnets, this was often done using NAT gateways (or more dated NAT instances) which increase your traffic costs. For S3 and DynamoDB, you can create a Gateway VPC Endpoint which is free and lets you communicate to S3 and DynamoDB from private subnets without natting.
For some AWS services, you can create an Interface VPC Endpoint which is cheaper than a NAT gateway. Run your workloads in public subnets and protect them with security groups.