Where possible, you should replace EC2 workloads with AWS managed services that don’t
require you to take any capacity decisions. AWS Lambda is a serverless services and you
only pay for actual processing time. Other examples of services that you don’t need to
make capacity decisions with include: ELB, CloudFront, SQS, Kinesis Firehose, SES, and
CloudSearch
You should not choose the fastest EC2 instance if you’re trying to optimize for cost
as this will be expensive, you should right-size your EC2 instances, so you use the
cheapest EC2 instance to suit your workload’s requirements
Provisioning extra capacity for growth is not an example of cost optimization. With
cloud computing you no longer need to do this as you can configure applications,
databases and storage systems to grow on demand
Deploying resources with CloudFormation is great for consistently deploying
application configurations from a template. However, this is not an example of cost
optimization, it is more an example of operational optimization