AWS -Right Size For EC2/RDS Instance types
This section offers tips to help you right size your EC2 instances and RDS DB instances.
Right Size Using Performance Data
General purpose (includes T2, M3, and M4 instance types)
Compute optimized (includes the C3 and C4 instance types)
Storage optimized (includes the I3 and D2 instance types)
Accelerated computing (includes the P2, G3, and F1 instance types)
Amazon Relational Database Service (Amazon RDS) database instances are similar to Amazon EC2 instances in that there are different families to suit different workloads. These database instance families are optimized for memory, performance, or I/O:
Standard performance (includes the M3 and M4 instance types) – Designed for general-purpose database workloads that don’t run many in-memory functions. This family has the most options for provisioning increased IOPS.
Burstable performance (includes T2 instance types) – For workloads that require burstable performance capacity.
Memory optimized (includes the X1,,R3 and R4 instance types) – Optimized for in-memory functions and big data analysis.
What do you pay for when using RDS?
Database Instance hours
Storage
Backup storage
Data Transfer
I/O Requests (AWS Aurora has its own rates)
Provisioned IOPS (AWS Aurora has its own rates)
Right Size Before Migrating
Analyze performance data to right size your current instances. Identify idle instances and ones that are underutilized. Key metrics to look for are CPU usage and memory usage. Identify instances with a maximum CPU usage and memory usage of less than 40% over a four-week period. These are the instances that you will want to right size to reduce costs.
Focus on the following metrics to determine whether actual usage is lower than instance capacity:
Average CPU utilization
Maximum CPU utilization
Minimum available RAM
Average number of bytes read from disk per second
Average number of bytes written to disk per second
Right Sizing is an Ongoing Process
Common kinds of questions
Q: I have 300 GB of logs that I'm ingesting daily. I want to keep them for 1 month. What infrastructure should I use?
300 GB/day for 30 days:
Storage – 35 TB Compute – 9 shards/2 replicas
• Min nodes ephemeral 6x I3.8 Min CPUs 36
• Min nodes Amazon EBS, 3 volumes
• Recommendation: 9xR5.4xlarge, 4TB EBS, 3-Zone replication
Q: I have a product catalog with 1.5 million items. I have 4,000 concurrent site visitors. What infrastructure should I use to serve 100 queries per second?
Search 1.5M items, 4,000 concurrent visitors, 100 qps
Storage – 5 GB
• Any instance type will suffice Compute – 1 shard, 2+ replicas • Min CPUs 100* * Workload makes this highly suspect Recommendation: 3xI3.2xlarge, 3-Zone replication
Capacity planning
Storage and CPU together: T-shirt sizes