AWSTemplateFormatVersion: '2010-09-09' Description: Deploys Autodesk VRED 3D and Nvidia CloudXR on the AWS Cloud into a new VPC. This option builds a new AWS environment that consists of the VPC, subnets, security groups, and other infrastructure components. It then deploys VRED into this new VPC. (qs-1t26ph9hg) Metadata: cfn-lint: config: ignore_checks: - W9006 - W9901 AWSAMIRegionMap: Filters: NVIDIAWIN: name: cloudxr-agent-windows-2019-aws-market* owner-alias: aws-marketplace product-code.type: marketplace product-code: bwhppj014bz7uf8lehfv4u8hs AWS::CloudFormation::Interface: ParameterGroups: - Label: default: VPC configuration Parameters: - AvailabilityZones - VPCCIDR - PublicSubnet1CIDR - PublicSubnet2CIDR - PublicSubnet3CIDR - PublicRemoteCidr - Label: default: VRED Amazon EC2 instance configuration Parameters: - WorkloadInstanceType - CloudxrStorageVolumeSize - KeyPairName - InstanceCount - PrimaryNodeIP - LicenseServerIP - VredInstanceTag - Label: default: Autodesk VRED 3D media configuration Parameters: - MediaS3Bucket - MediaS3Key - SceneAddress - Label: default: AWS Partner Solution configuration Parameters: - QSS3BucketName - QSS3BucketRegion - QSS3KeyPrefix ParameterLabels: AvailabilityZones: default: Availability Zones VPCCIDR: default: VPC CIDR PublicSubnet1CIDR: default: Public subnet A CIDR PublicSubnet2CIDR: default: Public subnet B CIDR PublicSubnet3CIDR: default: Public subnet C CIDR QSS3BucketName: default: Partner Solution S3 bucket name QSS3BucketRegion: default: Partner Solution S3 bucket Region QSS3KeyPrefix: default: Partner Solution S3 key prefix WorkloadInstanceType: default: Workload servers EC2 instance type VredInstanceTag: default: EC2 instance tag (environment) CloudxrStorageVolumeSize: default: Secondary EBS volume size KeyPairName: default: Key pair name InstanceCount: default: Instance count PublicRemoteCidr: default: CIDR for customer access PrimaryNodeIP: default: Primary node IP address LicenseServerIP: default: Network License Manager IP address MediaS3Bucket: default: Autodesk VRED 3D media bucket MediaS3Key: default: Autodesk VRED 3D media key prefix SceneAddress: default: Scene file Parameters: AvailabilityZones: Description: Availability Zones to use for subnets in VPC. Three Availability Zones are used for this deployment, and logical order of your selections is preserved. Type: List VPCCIDR: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$ ConstraintDescription: CIDR block parameter must be in format (x.x.x.x/16-28). Default: 10.0.0.0/16 Description: CIDR block for VPC. Type: String PublicSubnet1CIDR: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$ ConstraintDescription: CIDR block parameter must be in format (x.x.x.x/16-28). Default: 10.0.128.0/20 Description: CIDR block for parameter network located in Availability Zone 1. Type: String PublicSubnet2CIDR: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$ ConstraintDescription: CIDR block parameter must be in format (x.x.x.x/16-28). Default: 10.0.144.0/20 Description: CIDR block for perimeter network located in Availability Zone 2. Type: String PublicSubnet3CIDR: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(1[6-9]|2[0-8]))$ ConstraintDescription: CIDR block parameter must be in format (x.x.x.x/16-28). Default: 10.0.160.0/20 Description: CIDR block for parameter network located in Availability Zone 3. Type: String QSS3BucketName: AllowedPattern: ^[0-9a-z]+([0-9a-z-\.]*[0-9a-z])*$ ConstraintDescription: >- The S3 bucket name can include numbers, lowercase letters, and hyphens (-), but it cannot start or end with a hyphen. Default: aws-quickstart Description: >- Name of the S3 bucket for your copy of the deployment assets. Keep the default name unless you are customizing the template. Changing the name updates code references to point to a new location. MinLength: 3 MaxLength: 63 Type: String QSS3BucketRegion: Default: us-east-1 Description: >- AWS Region where the S3 bucket (QSS3BucketName) is hosted. Keep the default Region unless you are customizing the template. Changing the Region updates code references to point to a new location. When using your own bucket, specify the Region. Type: String QSS3KeyPrefix: AllowedPattern: ^([0-9a-zA-Z!-_\.\*'\(\)/]+/)*$ ConstraintDescription: >- The S3 key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), underscores (_), periods (.), asterisks (*), single quotes ('), open parenthesis ((), close parenthesis ()), and forward slashes (/). End the prefix with a forward slash. Default: quickstart-nvidia-cloudxr/ Description: >- S3 key prefix that is used to simulate a folder for your copy of the deployment assets. Keep the default prefix unless you are customizing the template. Changing the prefix updates code references to point to a new location. Type: String KeyPairName: Description: Name of existing public/private key pair. Allows you to securely connect to your instance after it launches. Type: AWS::EC2::KeyPair::KeyName WorkloadInstanceType: AllowedValues: - g4dn.xlarge - g4dn.2xlarge - g4dn.4xlarge - g4dn.8xlarge - g4dn.12xlarge - g4dn.16xlarge - g5.xlarge - g5.2xlarge - g5.4xlarge - g5.8xlarge - g5.12xlarge - g5.16xlarge ConstraintDescription: Must contain valid instance type. Default: g5.2xlarge Description: Amazon EC2 instance type for Autodesk VRED instances. Type: String VredInstanceTag: Type: String Default: VRED Description: Environment tag value for VRED instances. CloudxrStorageVolumeSize: Type: Number Default: 200 ConstraintDescription: Must be between 200 GB and 16,000 GB (16 TB). MinValue: 1 MaxValue: 16000 Description: Size of CloudXR virtualized storage (in GBs). InstanceCount: Description: Number of EC2 instances for collaboration (excludes primary node). Type: Number Default: 1 MinValue: 1 MaxValue: 10 ConstraintDescription: Must be between 1 and 10. PublicRemoteCidr: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$ ConstraintDescription: CIDR block parameter must be in format (x.x.x.x/x). Default: 10.0.0.0/16 Description: CIDR IP range permitted to access bastion hosts and Autodesk VRED. We recommend you set this value to a trusted IP range. For example, grant only your corporate network access to the software. CIDR block must be in format (x.x.x.x/x). Type: String PrimaryNodeIP: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ Default: 10.0.128.100 Description: IP for primary node of VRED cluster. Primary private IP for first cluster node located in Public Subnet A—Availability Zone 1. Type: String LicenseServerIP: AllowedPattern: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ Default: 10.0.128.109 Description: IP for VRED NLM server. Ensure public subnet is able to connect to NLM server subnet. Refer to NLM instructions for more information. Type: String MediaS3Bucket: AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$ ConstraintDescription: Bucket name can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Description: S3 bucket created to store Autodesk VRED and SteamVR installation media. Type: String MediaS3Key: ConstraintDescription: Partner Solution key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slashes (/). Description: S3 key prefix used to simulate folder for your copy of installation media. Autodesk VRED 3D (*.sfx.exe), SteamVR installation binaries (SteamVR.zip), and your scene file under this key prefix. Follow prerequisites (see documentation for more details). End with a forward slash. Type: String Default: replace-me-quickstart-nvidia-cloudxr-media/ SceneAddress: Description: Autodesk VRED 3D Scene file. Must be in format (MediaS3Key/Scene.vpb). Type: String Default: replace-me-quickstart-nvidia-cloudxr-media/my_scene.vpb Conditions: UsingDefaultBucket: !Equals [!Ref QSS3BucketName, 'aws-quickstart'] Resources: VPCStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}submodules/quickstart-aws-vpc/templates/aws-vpc.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: AvailabilityZones: Fn::Join: - ',' - Ref: AvailabilityZones NumberOfAZs: '3' VPCCIDR: !Ref VPCCIDR PublicSubnet1CIDR: !Ref PublicSubnet1CIDR PublicSubnet2CIDR: !Ref PublicSubnet2CIDR PublicSubnet3CIDR: !Ref PublicSubnet3CIDR CreatePrivateSubnets: 'false' CreateNATGateways: 'false' WorkloadStack: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/workload.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: VPCID: !GetAtt VPCStack.Outputs.VPCID PublicSubnetAID: !GetAtt VPCStack.Outputs.PublicSubnet1ID PublicSubnetBID: !GetAtt VPCStack.Outputs.PublicSubnet2ID PublicSubnetCID: !GetAtt VPCStack.Outputs.PublicSubnet3ID QSS3BucketName: !Ref QSS3BucketName QSS3BucketRegion: !Ref QSS3BucketRegion QSS3KeyPrefix: !Ref QSS3KeyPrefix WorkloadInstanceType: !Ref WorkloadInstanceType CloudxrStorageVolumeSize: !Ref CloudxrStorageVolumeSize KeyPairName: !Ref KeyPairName InstanceCount: !Ref InstanceCount PublicRemoteCidr: !Ref PublicRemoteCidr PrimaryNodeIP: !Ref PrimaryNodeIP LicenseServerIP: !Ref LicenseServerIP MediaS3Bucket: !Ref MediaS3Bucket MediaS3Key: !Ref MediaS3Key SceneAddress: !Ref SceneAddress VredInstanceTag: !Ref VredInstanceTag Outputs: VredInstanceID: Description: EC2 instance ID. Value: !GetAtt WorkloadStack.Outputs.VredInstanceID VredSecurityGroup: Description: Security Group for VRED instances. Value: !GetAtt WorkloadStack.Outputs.VredSecurityGroup VredPrimaryNodeURL: Description: URL to access VRED primary node (login as administrator). Value: !GetAtt WorkloadStack.Outputs.VredPrimaryNodeURL VredAutoScalingGroup: Description: Auto Scaling group details. Value: !GetAtt WorkloadStack.Outputs.VredAutoScalingGroup NiceDCVdownload: Description: NICE DCV client download URL. Value: !GetAtt WorkloadStack.Outputs.NiceDCVdownload