class Aws::ComputeOptimizer::Types::InstanceRecommendationOption

Describes a recommendation option for an Amazon EC2 instance.

@!attribute [rw] instance_type

The instance type of the instance recommendation.
@return [String]

@!attribute [rw] projected_utilization_metrics

An array of objects that describe the projected utilization metrics
of the instance recommendation option.

<note markdown="1"> The `Cpu` and `Memory` metrics are the only projected utilization
metrics returned. Additionally, the `Memory` metric is returned only
for resources that have the unified CloudWatch agent installed on
them. For more information, see [Enabling Memory Utilization with
the CloudWatch Agent][1].

 </note>

[1]: https://docs.aws.amazon.com/compute-optimizer/latest/ug/metrics.html#cw-agent
@return [Array<Types::UtilizationMetric>]

@!attribute [rw] platform_differences

Describes the configuration differences between the current instance
and the recommended instance type. You should consider the
configuration differences before migrating your workloads from the
current instance to the recommended instance type. The [Change the
instance type guide for Linux][1] and [Change the instance type
guide for Windows][2] provide general guidance for getting started
with an instance migration.

Platform differences include:

* <b> <code>Hypervisor</code> </b> — The hypervisor of the
  recommended instance type is different than that of the current
  instance. For example, the recommended instance type uses a Nitro
  hypervisor and the current instance uses a Xen hypervisor. The
  differences that you should consider between these hypervisors are
  covered in the [Nitro Hypervisor][3] section of the Amazon EC2
  frequently asked questions. For more information, see [Instances
  built on the Nitro System][4] in the *Amazon EC2 User Guide for
  Linux*, or [Instances built on the Nitro System][5] in the *Amazon
  EC2 User Guide for Windows*.

* <b> <code>NetworkInterface</code> </b> — The network interface of
  the recommended instance type is different than that of the
  current instance. For example, the recommended instance type
  supports enhanced networking and the current instance might not.
  To enable enhanced networking for the recommended instance type,
  you must install the Elastic Network Adapter (ENA) driver or the
  Intel 82599 Virtual Function driver. For more information, see
  [Networking and storage features][6] and [Enhanced networking on
  Linux][7] in the *Amazon EC2 User Guide for Linux*, or [Networking
  and storage features][8] and [Enhanced networking on Windows][9]
  in the *Amazon EC2 User Guide for Windows*.

* <b> <code>StorageInterface</code> </b> — The storage interface of
  the recommended instance type is different than that of the
  current instance. For example, the recommended instance type uses
  an NVMe storage interface and the current instance does not. To
  access NVMe volumes for the recommended instance type, you will
  need to install or upgrade the NVMe driver. For more information,
  see [Networking and storage features][6] and [Amazon EBS and NVMe
  on Linux instances][10] in the *Amazon EC2 User Guide for Linux*,
  or [Networking and storage features][8] and [Amazon EBS and NVMe
  on Windows instances][11] in the *Amazon EC2 User Guide for
  Windows*.

* <b> <code>InstanceStoreAvailability</code> </b> — The recommended
  instance type does not support instance store volumes and the
  current instance does. Before migrating, you might need to back up
  the data on your instance store volumes if you want to preserve
  them. For more information, see [How do I back up an instance
  store volume on my Amazon EC2 instance to Amazon EBS?][12] in the
  *Amazon Web Services Premium Support Knowledge Base*. For more
  information, see [Networking and storage features][6] and [Amazon
  EC2 instance store][13] in the *Amazon EC2 User Guide for Linux*,
  or see [Networking and storage features][8] and [Amazon EC2
  instance store][14] in the *Amazon EC2 User Guide for Windows*.

* <b> <code>VirtualizationType</code> </b> — The recommended
  instance type uses the hardware virtual machine (HVM)
  virtualization type and the current instance uses the paravirtual
  (PV) virtualization type. For more information about the
  differences between these virtualization types, see [Linux AMI
  virtualization types][15] in the *Amazon EC2 User Guide for
  Linux*, or [Windows AMI virtualization types][16] in the *Amazon
  EC2 User Guide for Windows*.

* <b> <code>Architecture</code> </b> — The CPU architecture between
  the recommended instance type and the current instance is
  different. For example, the recommended instance type might use an
  Arm CPU architecture and the current instance type might use a
  different one, such as x86. Before migrating, you should consider
  recompiling the software on your instance for the new
  architecture. Alternatively, you might switch to an Amazon Machine
  Image (AMI) that supports the new architecture. For more
  information about the CPU architecture for each instance type, see
  [Amazon EC2 Instance Types][17].

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html
[2]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-resize.html
[3]: http://aws.amazon.com/ec2/faqs/#Nitro_Hypervisor
[4]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances
[5]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#ec2-nitro-instances
[6]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-networking-storage
[7]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html
[8]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instance-types.html#instance-networking-storage
[9]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking.html
[10]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/nvme-ebs-volumes.html
[11]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/nvme-ebs-volumes.html
[12]: https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/
[13]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
[14]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/InstanceStorage.html
[15]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html
[16]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/windows-ami-version-history.html#virtualization-types
[17]: http://aws.amazon.com/ec2/instance-types/
@return [Array<String>]

@!attribute [rw] performance_risk

The performance risk of the instance recommendation option.

Performance risk indicates the likelihood of the recommended
instance type not meeting the resource needs of your workload.
Compute Optimizer calculates an individual performance risk score
for each specification of the recommended instance, including CPU,
memory, EBS throughput, EBS IOPS, disk throughput, disk IOPS,
network throughput, and network PPS. The performance risk of the
recommended instance is calculated as the maximum performance risk
score across the analyzed resource specifications.

The value ranges from `0` - `4`, with `0` meaning that the
recommended resource is predicted to always provide enough hardware
capability. The higher the performance risk is, the more likely you
should validate whether the recommendation will meet the performance
requirements of your workload before migrating your resource.
@return [Float]

@!attribute [rw] rank

The rank of the instance recommendation option.

The top recommendation option is ranked as `1`.
@return [Integer]

@see docs.aws.amazon.com/goto/WebAPI/compute-optimizer-2019-11-01/InstanceRecommendationOption AWS API Documentation

Constants

SENSITIVE