From 427cdfde5e8c48ed7c1f86b275ccb2516a901239 Mon Sep 17 00:00:00 2001 From: Robert Djurasaj Date: Mon, 28 Feb 2022 08:23:04 -0700 Subject: [PATCH] feat(ec2): add c6a instances (#19113) image https://aws.amazon.com/about-aws/whats-new/2022/02/amazon-ec2-c6a-instances/ > Amazon EC2 C6a instances are powered by 3rd generation AMD EPYC processors, deliver up to 15% better price performance compared to C5a instances, and offer 10% lower cost than comparable x86-based EC2 instances. C6a instances feature a 2:1 ratio of memory to vCPU, just like C5a instances and support increased sizes up to 192 vCPUs per instance, which is double that of C5a instances. These instances feature more than twice the network bandwidth of C5a instances, and are designed for compute-intensive workloads such as batch processing, distributed analytics, high performance computing (HPC), ad serving, highly-scalable multiplayer gaming, and video encoding. Submitted CFN user guide PR: https://github.com/awsdocs/aws-cloudformation-user-guide/pull/1169 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- packages/@aws-cdk/aws-ec2/README.md | 14 ++++---- .../@aws-cdk/aws-ec2/lib/instance-types.ts | 36 ++++++++++++------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/packages/@aws-cdk/aws-ec2/README.md b/packages/@aws-cdk/aws-ec2/README.md index fb2db769617e7..dde3951dced96 100644 --- a/packages/@aws-cdk/aws-ec2/README.md +++ b/packages/@aws-cdk/aws-ec2/README.md @@ -663,7 +663,7 @@ vpc.addVpnConnection('Dynamic', { ``` By default, routes will be propagated on the route tables associated with the private subnets. If no -private subnets exists, isolated subnets are used. If no isolated subnets exists, public subnets are +private subnets exist, isolated subnets are used. If no isolated subnets exist, public subnets are used. Use the `Vpc` property `vpnRoutePropagation` to customize this behavior. VPN connections expose [metrics (cloudwatch.Metric)](https://github.com/aws/aws-cdk/blob/master/packages/%40aws-cdk/aws-cloudwatch/README.md) across all tunnels in the account/region and per connection: @@ -810,7 +810,7 @@ The endpoint must use at least one [authentication method](https://docs.aws.amaz If user-based authentication is used, the [self-service portal URL](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/self-service-portal.html) is made available via a CloudFormation output. -By default, a new security group is created and logging is enabled. Moreover, a rule to +By default, a new security group is created, and logging is enabled. Moreover, a rule to authorize all users to the VPC CIDR is created. To customize authorization rules, set the `authorizeAllUsersToVpcCidr` prop to `false` @@ -898,7 +898,7 @@ new ec2.Instance(this, 'Instance4', { CloudFormation Init allows you to configure your instances by writing files to them, installing software packages, starting services and running arbitrary commands. By default, if any of the instance setup -commands throw an error, the deployment will fail and roll back to the previously known good state. +commands throw an error; the deployment will fail and roll back to the previously known good state. The following documentation also applies to `AutoScalingGroup`s. For the full set of capabilities of this system, see the documentation for @@ -1201,7 +1201,7 @@ Aspects.of(this).add(aspect); VPC Flow Logs is a feature that enables you to capture information about the IP traffic going to and from network interfaces in your VPC. Flow log data can be published to Amazon CloudWatch Logs and Amazon S3. After you've created a flow log, you can retrieve and view its data in the chosen destination. (). -By default a flow log will be created with CloudWatch Logs as the destination. +By default, a flow log will be created with CloudWatch Logs as the destination. You can create a flow log like this: @@ -1235,7 +1235,7 @@ vpc.addFlowLog('FlowLogCloudWatch', { }); ``` -By default the CDK will create the necessary resources for the destination. For the CloudWatch Logs destination +By default, the CDK will create the necessary resources for the destination. For the CloudWatch Logs destination it will create a CloudWatch Logs Log Group as well as the IAM role with the necessary permissions to publish to the log group. In the case of an S3 destination, it will create the S3 bucket. @@ -1311,9 +1311,9 @@ from separate parts forming archive. The most common parts are scripts executed kinds, too. The advantage of multipart archive is in flexibility when it's needed to add additional parts or to use specialized parts to -fine tune instance startup. Some services (like AWS Batch) supports only `MultipartUserData`. +fine tune instance startup. Some services (like AWS Batch) support only `MultipartUserData`. -The parts can be executed at different moment of instance start-up and can serve a different purposes. This is controlled by `contentType` property. +The parts can be executed at different moment of instance start-up and can serve a different purpose. This is controlled by `contentType` property. For common scripts, `text/x-shellscript; charset="utf-8"` can be used as content type. In order to create archive the `MultipartUserData` has to be instantiated. Than, user can add parts to multipart archive using `addPart`. The `MultipartBody` contains methods supporting creation of body parts. diff --git a/packages/@aws-cdk/aws-ec2/lib/instance-types.ts b/packages/@aws-cdk/aws-ec2/lib/instance-types.ts index cf82f9b8e40a5..323af5d58a690 100644 --- a/packages/@aws-cdk/aws-ec2/lib/instance-types.ts +++ b/packages/@aws-cdk/aws-ec2/lib/instance-types.ts @@ -298,16 +298,6 @@ export enum InstanceClass { */ C5 = 'c5', - /** - * Compute optimized instances, 6th generation - */ - COMPUTE6_INTEL = 'c6i', - - /** - * Compute optimized instances, 6th generation - */ - C6I = 'c6i', - /** * Compute optimized instances with local NVME drive, 5th generation */ @@ -319,7 +309,7 @@ export enum InstanceClass { C5D = 'c5d', /** - * Compute optimized instances based on AMD EPYC, 5th generation. + * Compute optimized instances based on AMD EPYC, 5th generation */ COMPUTE5_AMD = 'c5a', @@ -329,12 +319,12 @@ export enum InstanceClass { C5A = 'c5a', /** - * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation. + * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation */ COMPUTE5_AMD_NVME_DRIVE = 'c5ad', /** - * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation. + * Compute optimized instances with local NVME drive based on AMD EPYC, 5th generation */ C5AD = 'c5ad', @@ -348,6 +338,26 @@ export enum InstanceClass { */ C5N = 'c5n', + /** + * Compute optimized instances, 6th generation + */ + COMPUTE6_INTEL = 'c6i', + + /** + * Compute optimized instances, 6th generation + */ + C6I = 'c6i', + + /** + * Compute optimized instances based on AMD EPYC (codename Milan), 6th generation + */ + COMPUTE6_AMD = 'c6a', + + /** + * Compute optimized instances based on AMD EPYC (codename Milan), 6th generation + */ + C6A = 'c6a', + /** * Compute optimized instances for high performance computing, 6th generation with Graviton2 processors */