Review EC2 EBS optimization

Check instance-type support and defaults to provide appropriate EBS performance for the workload.

Description

An EBS-optimized EC2 instance reduces contention between storage I/O and general network traffic, helping provide more consistent EBS volume performance. Support and default enablement depend on the instance type, so omitting ebsOptimized does not by itself establish that optimization is disabled.

Potential impact

  • Insufficient EBS bandwidth for the workload can increase application response times or reduce throughput.
  • Bottlenecks can be harder to diagnose without considering both instance and volume performance limits.

Remediation

Check EBS optimization support and defaults for the instance type. Set ebsOptimized: true for types that support it but require explicit enablement. For unsupported types, assess cost and compatibility before moving to a suitable type, and measure actual instance and volume performance.

Examples

These excerpts compare instance types and EBS optimization settings. Other required settings, such as the AMI, are omitted. t2.micro does not support EBS optimization; t3.large provides it by default.

Before

yaml
name: aws-eks
runtime: yaml
resources:
  example:
    type: aws:ec2:Instance
    properties:
      instanceType: t2.micro
      monitoring: true
      ebsOptimized: false

After

yaml
name: aws-eks
runtime: yaml
resources:
  example:
    type: aws:ec2:Instance
    properties:
      instanceType: t3.large
      monitoring: true
      ebsOptimized: true

The after-example also changes the instance type to t3.large. Changing only the flag on an unsupported type is not a remedy; verify performance with the actual workload and volume configuration.

References