EC2

This page describes the Optimization Pack for AWS EC2.

Metrics

CPU and Networking

NameUnitDescription

cpu_util

percent

The average CPU utilization % across all the CPUs (i.e., how much time on average the CPUs are busy doing work)

network_in_bytes_details

bytes/s

The number of inbound network packets in bytes per second broken down by network device (e.g., wlp4s0)

network_out_bytes_details

bytes/s

The number of outbound network packets in bytes per second broken down by network device (e.g., eth01)

Disks

NameUnitDescription

disk_read_bytes

bytes/s

The number of bytes per second read across all disks

disk_write_bytes

bytes/s

The number of bytes per second written across all disks

aws_ec2_disk_iops_reads

ops/s

The per second average number of EBS IO disk-read operations summed across all disks

aws_ec2_disk_iops_writes

ops/s

The per second average number of EBS IO disk-write operations summed across all disks

aws_ec2_disk_iops

ops/s

The per second average number of EBS IO disk operations summed across all disks

CPU Credits

NameUnitDescription

aws_ec2_credits_cpu_available

credits

The number of earned CPU credits that an instance has accrued since it was launched or started. Credits are accrued in the credit balance after they are earned, and removed from the credit balance when they are spent

aws_ec2_credits_cpu_used

credits

The number of CPU credits spent by the instance for CPU utilization

Disk Credits

NameUnitDescription

aws_ec2_ebs_credits_io_util

percent

The percentage of I/O credits remaining in the burst bucket

aws_ec2_ebs_credits_bytes_util

percent

The percentage of throughput credits remaining in the burst bucket

Pricing

NameUnitDescription

aws_ec2_price

dollars

AWS EC2 hourly instance price (on-demand)

Parameters

Notice: for the following parameters to take effect, the instance needs to be stopped and changes need to be applied before restarting the instance.

NameUnitTypeDefault ValueDomainRestartDescription

aws_ec2_instance_type

Categorical

m5

c5,c5d,c5a,c6g,c6gd,c6gd, r5,r5d,r5a,r5ad,r6g,r6gd, m5,m5d,m5a,m5ad,m6g,m6gd, t3,t3a, a1,z1d

yes

Instance types comprise varying combinations of CPU, memory, storage, and networking capacity, optimized to fit different use cases

aws_ec2_instance_size

Ordinal

large

nano, micro,small,medium,large, xlarge,2xlarge,4xlarge,8xlarge, 9xlarge,12xlarge,16xlarge, 18xlarge,24xlarge

yes

Constraints

The following table shows a sample of constraints that are required in the definition of the study, depending on the tuned parameters.

Notice that AWS does not support all combinations of instance types and sizes, so it is better to specify them beforehand in your constraints to avoid unnecessary experiment failures.

Instance size

To limit the combination of the instance type and sizes to those only supported by AWS or to those of interest for a particular study you can use a constraint such as the following:

parameterConstraints:
  - name: Instance Types
    formula: (host.aws_ec2_instance_type == "c5" && (host.aws_ec2_instance_size == "large" || host.aws_ec2_instance_size == "xlarge" || host.aws_ec2_instance_size == "2xlarge")) || (host.aws_ec2_instance_type == "c5a" && (host.aws_ec2_instance_size == "large" || host.aws_ec2_instance_size == "xlarge" || host.aws_ec2_instance_size == "2xlarge")) || (host.aws_ec2_instance_type == "m5" && (host.aws_ec2_instance_size == "large" || host.aws_ec2_instance_size == "xlarge" || host.aws_ec2_instance_size == "2xlarge")) || (host.aws_ec2_instance_type == "m5a" && (host.aws_ec2_instance_size == "large" || host.aws_ec2_instance_size == "xlarge" || host.aws_ec2_instance_size == "2xlarge"))

This constraint is built by connecting multiple constraints such as the following one with the OR operator ||

host.aws_ec2_instance_type == "c5" && (host.aws_ec2_instance_size == "large" || host.aws_ec2_instance_size == "xlarge" || host.aws_ec2_instance_size == "2xlarge")

These constraint instruct akamas to only use large, xlarge and 2xlarge size for instances of type c5.

Last updated