openvidu-deployment: AWS - Support for ARM64 instances

pull/856/head
cruizba 2025-12-01 20:36:57 +01:00
parent d0b2bab7b1
commit 352fa03b0a
4 changed files with 1739 additions and 350 deletions

View File

@ -81,42 +81,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -125,6 +110,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -136,6 +154,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -146,6 +190,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -158,6 +222,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -169,20 +267,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -192,14 +347,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
KeyName: KeyName:
@ -208,10 +416,11 @@ Parameters:
AllowedPattern: ^.+$ AllowedPattern: ^.+$
ConstraintDescription: must be the name of an existing EC2 KeyPair. ConstraintDescription: must be the name of an existing EC2 KeyPair.
AmiId: OperatingSystem:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Description: VSCode Server EC2 operating system
Default: /aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id Type: String
Description: AMI ID for the EC2 instances Default: "Ubuntu-24"
AllowedValues: ['Ubuntu-22', 'Ubuntu-24']
S3AppDataBucketName: S3AppDataBucketName:
Type: String Type: String
@ -238,7 +447,7 @@ Metadata:
Parameters: Parameters:
- InstanceType - InstanceType
- KeyName - KeyName
- AmiId - OperatingSystem
- Label: - Label:
default: S3 bucket for application data and recordings default: S3 bucket for application data and recordings
Parameters: Parameters:
@ -258,6 +467,31 @@ Conditions:
PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ] PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ]
PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""] PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""]
CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""] CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""]
IsGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
Mappings:
ArmImage:
# aws ssm get-parameters-by-path --path "/aws/service/canonical/ubuntu/" --recursive --query "Parameters[*].Name" > canonical-ami.txt
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/arm64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/arm64/hvm/ebs-gp3/ami-id}}'
AmdImage:
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/amd64/hvm/ebs-gp3/ami-id}}'
Resources: Resources:
@ -827,7 +1061,10 @@ Resources:
owner: "root" owner: "root"
group: "root" group: "root"
Properties: Properties:
ImageId: !Ref AmiId ImageId: !If
- IsGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
LaunchTemplate: LaunchTemplate:
# Enable IMDSv2 by default # Enable IMDSv2 by default
LaunchTemplateId: !Ref IMDSv2LaunchTemplate LaunchTemplateId: !Ref IMDSv2LaunchTemplate

View File

@ -95,42 +95,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -139,6 +124,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -150,6 +168,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -160,6 +204,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -172,6 +236,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -183,20 +281,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -206,14 +361,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
MediaNodeInstanceType: MediaNodeInstanceType:
@ -221,42 +429,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -265,6 +458,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -276,6 +502,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -286,6 +538,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -298,6 +570,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -309,20 +615,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -332,14 +695,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
KeyName: KeyName:
@ -348,10 +764,11 @@ Parameters:
AllowedPattern: ^.+$ AllowedPattern: ^.+$
ConstraintDescription: must be the name of an existing EC2 KeyPair. ConstraintDescription: must be the name of an existing EC2 KeyPair.
AmiId: OperatingSystem:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Description: OpenVidu EC2 operating system
Default: /aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id Type: String
Description: AMI ID for the EC2 instances Default: "Ubuntu-24"
AllowedValues: ['Ubuntu-22', 'Ubuntu-24']
InitialNumberOfMediaNodes: InitialNumberOfMediaNodes:
Type: Number Type: Number
@ -422,7 +839,7 @@ Metadata:
- MasterNodeInstanceType - MasterNodeInstanceType
- MediaNodeInstanceType - MediaNodeInstanceType
- KeyName - KeyName
- AmiId - OperatingSystem
- Label: - Label:
default: Media Nodes Autoscaling Group configuration default: Media Nodes Autoscaling Group configuration
Parameters: Parameters:
@ -455,6 +872,41 @@ Conditions:
PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ] PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ]
PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""] PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""]
CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""] CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""]
IsMasterGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
IsMediaGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
Mappings:
ArmImage:
# aws ssm get-parameters-by-path --path "/aws/service/canonical/ubuntu/" --recursive --query "Parameters[*].Name" > canonical-ami.txt
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/arm64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/arm64/hvm/ebs-gp3/ami-id}}'
AmdImage:
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/amd64/hvm/ebs-gp3/ami-id}}'
Resources: Resources:
@ -1172,7 +1624,10 @@ Resources:
owner: "root" owner: "root"
group: "root" group: "root"
Properties: Properties:
ImageId: !Ref AmiId ImageId: !If
- IsMasterGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
LaunchTemplate: LaunchTemplate:
# Enable IMDSv2 by default # Enable IMDSv2 by default
LaunchTemplateId: !Ref IMDSv2LaunchTemplateMasterNode LaunchTemplateId: !Ref IMDSv2LaunchTemplateMasterNode
@ -1420,7 +1875,10 @@ Resources:
Arn: !GetAtt OpenViduMediaNodeInstanceProfile.Arn Arn: !GetAtt OpenViduMediaNodeInstanceProfile.Arn
SecurityGroupIds: SecurityGroupIds:
- !GetAtt OpenViduMediaNodeSG.GroupId - !GetAtt OpenViduMediaNodeSG.GroupId
ImageId: !Ref AmiId ImageId: !If
- IsMediaGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
KeyName: !Ref KeyName KeyName: !Ref KeyName
InstanceType: !Ref MediaNodeInstanceType InstanceType: !Ref MediaNodeInstanceType
UserData: UserData:

View File

@ -44,42 +44,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -88,6 +73,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -99,6 +117,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -109,6 +153,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -121,6 +185,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -132,20 +230,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -155,14 +310,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
MediaNodeInstanceType: MediaNodeInstanceType:
@ -170,42 +378,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -214,6 +407,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -225,6 +451,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -235,6 +487,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -247,6 +519,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -258,20 +564,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -281,14 +644,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
InitialMeetAdminPassword: InitialMeetAdminPassword:
@ -315,10 +731,11 @@ Parameters:
AllowedPattern: ^.+$ AllowedPattern: ^.+$
ConstraintDescription: must be the name of an existing EC2 KeyPair. ConstraintDescription: must be the name of an existing EC2 KeyPair.
AmiId: OperatingSystem:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Description: OpenVidu EC2 operating system
Default: /aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id Type: String
Description: AMI ID for the EC2 instances Default: "Ubuntu-24"
AllowedValues: ['Ubuntu-22', 'Ubuntu-24']
InitialNumberOfMediaNodes: InitialNumberOfMediaNodes:
Type: Number Type: Number
@ -404,7 +821,7 @@ Metadata:
- MasterNodeInstanceType - MasterNodeInstanceType
- MediaNodeInstanceType - MediaNodeInstanceType
- KeyName - KeyName
- AmiId - OperatingSystem
- Label: - Label:
default: Media Nodes Autoscaling Group configuration default: Media Nodes Autoscaling Group configuration
Parameters: Parameters:
@ -441,6 +858,28 @@ Conditions:
TurnTLSIsEnabled: !Or [!Not [!Equals [!Ref TurnDomainName, ""]], !Not [!Equals [!Ref TurnCertificateARN, ""]]] TurnTLSIsEnabled: !Or [!Not [!Equals [!Ref TurnDomainName, ""]], !Not [!Equals [!Ref TurnCertificateARN, ""]]]
CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""] CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""]
CreateClusterDataBucket: !Equals [!Ref S3ClusterDataBucketName, ""] CreateClusterDataBucket: !Equals [!Ref S3ClusterDataBucketName, ""]
IsMasterGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
IsMediaGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
# --- # ---
# Experimental TURN TLS with main domain # Experimental TURN TLS with main domain
ExperimentalTurnTLSWithMainDomain: ExperimentalTurnTLSWithMainDomain:
@ -458,6 +897,19 @@ Conditions:
- "" - ""
# --- # ---
Mappings:
ArmImage:
# aws ssm get-parameters-by-path --path "/aws/service/canonical/ubuntu/" --recursive --query "Parameters[*].Name" > canonical-ami.txt
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/arm64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/arm64/hvm/ebs-gp3/ami-id}}'
AmdImage:
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/amd64/hvm/ebs-gp3/ami-id}}'
Resources: Resources:
OpenViduSharedInfo: OpenViduSharedInfo:
@ -1327,7 +1779,10 @@ Resources:
HttpTokens: required HttpTokens: required
IamInstanceProfile: IamInstanceProfile:
Name: !Ref OpenViduMasterInstanceProfile Name: !Ref OpenViduMasterInstanceProfile
ImageId: !Ref AmiId ImageId: !If
- IsMasterGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
InstanceType: !Ref MasterNodeInstanceType InstanceType: !Ref MasterNodeInstanceType
KeyName: !Ref KeyName KeyName: !Ref KeyName
SecurityGroupIds: SecurityGroupIds:
@ -1720,7 +2175,10 @@ Resources:
Arn: !GetAtt OpenViduMediaInstanceProfile.Arn Arn: !GetAtt OpenViduMediaInstanceProfile.Arn
SecurityGroupIds: SecurityGroupIds:
- !GetAtt OpenViduMediaNodeSG.GroupId - !GetAtt OpenViduMediaNodeSG.GroupId
ImageId: !Ref AmiId ImageId: !If
- IsMediaGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
KeyName: !Ref KeyName KeyName: !Ref KeyName
InstanceType: !Ref MediaNodeInstanceType InstanceType: !Ref MediaNodeInstanceType
UserData: UserData:

View File

@ -96,42 +96,27 @@ Parameters:
Type: String Type: String
Default: c6a.xlarge Default: c6a.xlarge
AllowedValues: AllowedValues:
- t2.large - t3.nano
- t2.xlarge - t3.micro
- t2.2xlarge - t3.small
- t3.medium - t3.medium
- t3.large - t3.large
- t3.xlarge - t3.xlarge
- t3.2xlarge - t3.2xlarge
- m4.large - t3a.nano
- m4.xlarge - t3a.micro
- m4.2xlarge - t3a.small
- m4.4xlarge - t3a.medium
- m4.10xlarge - t3a.large
- m4.16xlarge - t3a.xlarge
- m5.large - t3a.2xlarge
- m5.xlarge - t4g.nano
- m5.2xlarge - t4g.micro
- m5.4xlarge - t4g.small
- m5.8xlarge - t4g.medium
- m5.12xlarge - t4g.large
- m5.16xlarge - t4g.xlarge
- m5.24xlarge - t4g.2xlarge
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- c4.large
- c4.xlarge
- c4.2xlarge
- c4.4xlarge
- c4.8xlarge
- c5.large - c5.large
- c5.xlarge - c5.xlarge
- c5.2xlarge - c5.2xlarge
@ -140,6 +125,39 @@ Parameters:
- c5.12xlarge - c5.12xlarge
- c5.18xlarge - c5.18xlarge
- c5.24xlarge - c5.24xlarge
- c5.metal
- c5a.large
- c5a.xlarge
- c5a.2xlarge
- c5a.4xlarge
- c5a.8xlarge
- c5a.12xlarge
- c5a.16xlarge
- c5a.24xlarge
- c5ad.large
- c5ad.xlarge
- c5ad.2xlarge
- c5ad.4xlarge
- c5ad.8xlarge
- c5ad.12xlarge
- c5ad.16xlarge
- c5ad.24xlarge
- c5d.large
- c5d.xlarge
- c5d.2xlarge
- c5d.4xlarge
- c5d.9xlarge
- c5d.12xlarge
- c5d.18xlarge
- c5d.24xlarge
- c5d.metal
- c5n.large
- c5n.xlarge
- c5n.2xlarge
- c5n.4xlarge
- c5n.9xlarge
- c5n.18xlarge
- c5n.metal
- c6a.large - c6a.large
- c6a.xlarge - c6a.xlarge
- c6a.2xlarge - c6a.2xlarge
@ -151,6 +169,32 @@ Parameters:
- c6a.32xlarge - c6a.32xlarge
- c6a.48xlarge - c6a.48xlarge
- c6a.metal - c6a.metal
- c6g.medium
- c6g.large
- c6g.xlarge
- c6g.2xlarge
- c6g.4xlarge
- c6g.8xlarge
- c6g.12xlarge
- c6g.16xlarge
- c6g.metal
- c6gd.medium
- c6gd.large
- c6gd.xlarge
- c6gd.2xlarge
- c6gd.4xlarge
- c6gd.8xlarge
- c6gd.12xlarge
- c6gd.16xlarge
- c6gd.metal
- c6gn.medium
- c6gn.large
- c6gn.xlarge
- c6gn.2xlarge
- c6gn.4xlarge
- c6gn.8xlarge
- c6gn.12xlarge
- c6gn.16xlarge
- c6i.large - c6i.large
- c6i.xlarge - c6i.xlarge
- c6i.2xlarge - c6i.2xlarge
@ -161,6 +205,26 @@ Parameters:
- c6i.24xlarge - c6i.24xlarge
- c6i.32xlarge - c6i.32xlarge
- c6i.metal - c6i.metal
- c6id.large
- c6id.xlarge
- c6id.2xlarge
- c6id.4xlarge
- c6id.8xlarge
- c6id.12xlarge
- c6id.16xlarge
- c6id.24xlarge
- c6id.32xlarge
- c6id.metal
- c6in.large
- c6in.xlarge
- c6in.2xlarge
- c6in.4xlarge
- c6in.8xlarge
- c6in.12xlarge
- c6in.16xlarge
- c6in.24xlarge
- c6in.32xlarge
- c6in.metal
- c7a.medium - c7a.medium
- c7a.large - c7a.large
- c7a.xlarge - c7a.xlarge
@ -173,6 +237,40 @@ Parameters:
- c7a.32xlarge - c7a.32xlarge
- c7a.48xlarge - c7a.48xlarge
- c7a.metal-48xl - c7a.metal-48xl
- c7g.medium
- c7g.large
- c7g.xlarge
- c7g.2xlarge
- c7g.4xlarge
- c7g.8xlarge
- c7g.12xlarge
- c7g.16xlarge
- c7g.metal
- c7gd.medium
- c7gd.large
- c7gd.xlarge
- c7gd.2xlarge
- c7gd.4xlarge
- c7gd.8xlarge
- c7gd.12xlarge
- c7gd.16xlarge
- c7gd.metal
- c7gn.medium
- c7gn.large
- c7gn.xlarge
- c7gn.2xlarge
- c7gn.4xlarge
- c7gn.8xlarge
- c7gn.12xlarge
- c7gn.16xlarge
- c7gn.metal
- c7i-flex.large
- c7i-flex.xlarge
- c7i-flex.2xlarge
- c7i-flex.4xlarge
- c7i-flex.8xlarge
- c7i-flex.12xlarge
- c7i-flex.16xlarge
- c7i.large - c7i.large
- c7i.xlarge - c7i.xlarge
- c7i.2xlarge - c7i.2xlarge
@ -184,20 +282,77 @@ Parameters:
- c7i.48xlarge - c7i.48xlarge
- c7i.metal-24xl - c7i.metal-24xl
- c7i.metal-48xl - c7i.metal-48xl
- c5n.large - c8g.medium
- c5n.xlarge - c8g.large
- c5n.2xlarge - c8g.xlarge
- c5n.4xlarge - c8g.2xlarge
- c5n.9xlarge - c8g.4xlarge
- c5n.18xlarge - c8g.8xlarge
- m5n.large - c8g.12xlarge
- m5n.xlarge - c8g.16xlarge
- m5n.2xlarge - c8g.24xlarge
- m5n.4xlarge - c8g.48xlarge
- m5n.8xlarge - c8g.metal-24xl
- m5n.12xlarge - c8g.metal-48xl
- m5n.16xlarge - m6a.large
- m5n.24xlarge - m6a.xlarge
- m6a.2xlarge
- m6a.4xlarge
- m6a.8xlarge
- m6a.12xlarge
- m6a.16xlarge
- m6a.24xlarge
- m6a.32xlarge
- m6a.48xlarge
- m6a.metal
- m6g.medium
- m6g.large
- m6g.xlarge
- m6g.2xlarge
- m6g.4xlarge
- m6g.8xlarge
- m6g.12xlarge
- m6g.16xlarge
- m6g.metal
- m6gd.medium
- m6gd.large
- m6gd.xlarge
- m6gd.2xlarge
- m6gd.4xlarge
- m6gd.8xlarge
- m6gd.12xlarge
- m6gd.16xlarge
- m6gd.metal
- m6i.large
- m6i.xlarge
- m6i.2xlarge
- m6i.4xlarge
- m6i.8xlarge
- m6i.12xlarge
- m6i.16xlarge
- m6i.24xlarge
- m6i.32xlarge
- m6i.metal
- m6id.large
- m6id.xlarge
- m6id.2xlarge
- m6id.4xlarge
- m6id.8xlarge
- m6id.12xlarge
- m6id.16xlarge
- m6id.24xlarge
- m6id.32xlarge
- m6id.metal
- m6idn.large
- m6idn.xlarge
- m6idn.2xlarge
- m6idn.4xlarge
- m6idn.8xlarge
- m6idn.12xlarge
- m6idn.16xlarge
- m6idn.24xlarge
- m6idn.32xlarge
- m6idn.metal
- m6in.large - m6in.large
- m6in.xlarge - m6in.xlarge
- m6in.2xlarge - m6in.2xlarge
@ -207,14 +362,67 @@ Parameters:
- m6in.16xlarge - m6in.16xlarge
- m6in.24xlarge - m6in.24xlarge
- m6in.32xlarge - m6in.32xlarge
- r5n.large - m6in.metal
- r5n.xlarge - m7a.medium
- r5n.2xlarge - m7a.large
- r5n.4xlarge - m7a.xlarge
- r5n.8xlarge - m7a.2xlarge
- r5n.12xlarge - m7a.4xlarge
- r5n.16xlarge - m7a.8xlarge
- r5n.24xlarge - m7a.12xlarge
- m7a.16xlarge
- m7a.24xlarge
- m7a.32xlarge
- m7a.48xlarge
- m7a.metal-48xl
- m7g.medium
- m7g.large
- m7g.xlarge
- m7g.2xlarge
- m7g.4xlarge
- m7g.8xlarge
- m7g.12xlarge
- m7g.16xlarge
- m7g.metal
- m7gd.medium
- m7gd.large
- m7gd.xlarge
- m7gd.2xlarge
- m7gd.4xlarge
- m7gd.8xlarge
- m7gd.12xlarge
- m7gd.16xlarge
- m7gd.metal
- m7i-flex.large
- m7i-flex.xlarge
- m7i-flex.2xlarge
- m7i-flex.4xlarge
- m7i-flex.8xlarge
- m7i-flex.12xlarge
- m7i-flex.16xlarge
- m7i.large
- m7i.xlarge
- m7i.2xlarge
- m7i.4xlarge
- m7i.8xlarge
- m7i.12xlarge
- m7i.16xlarge
- m7i.24xlarge
- m7i.48xlarge
- m7i.metal-24xl
- m7i.metal-48xl
- m8g.medium
- m8g.large
- m8g.xlarge
- m8g.2xlarge
- m8g.4xlarge
- m8g.8xlarge
- m8g.12xlarge
- m8g.16xlarge
- m8g.24xlarge
- m8g.48xlarge
- m8g.metal-24xl
- m8g.metal-48xl
ConstraintDescription: "Must be a valid EC2 instance type" ConstraintDescription: "Must be a valid EC2 instance type"
KeyName: KeyName:
@ -223,10 +431,11 @@ Parameters:
AllowedPattern: ^.+$ AllowedPattern: ^.+$
ConstraintDescription: must be the name of an existing EC2 KeyPair. ConstraintDescription: must be the name of an existing EC2 KeyPair.
AmiId: OperatingSystem:
Type: AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> Description: OpenVidu EC2 operating system
Default: /aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id Type: String
Description: AMI ID for the EC2 instances Default: "Ubuntu-24"
AllowedValues: ['Ubuntu-22', 'Ubuntu-24']
S3AppDataBucketName: S3AppDataBucketName:
Type: String Type: String
@ -258,7 +467,7 @@ Metadata:
Parameters: Parameters:
- InstanceType - InstanceType
- KeyName - KeyName
- AmiId - OperatingSystem
- Label: - Label:
default: S3 bucket for application data and recordings default: S3 bucket for application data and recordings
Parameters: Parameters:
@ -278,6 +487,30 @@ Conditions:
PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ] PublicElasticIPPresent: !Not [ !Equals [!Ref PublicElasticIP, ""] ]
PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""] PublicElasticIPAbsent: !Equals [!Ref PublicElasticIP, ""]
CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""] CreateRecordingsBucket: !Equals [!Ref S3AppDataBucketName, ""]
IsGraviton: !Or
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
Mappings:
ArmImage:
# aws ssm get-parameters-by-path --path "/aws/service/canonical/ubuntu/" --recursive --query "Parameters[*].Name" > canonical-ami.txt
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/arm64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/arm64/hvm/ebs-gp3/ami-id}}'
AmdImage:
Ubuntu-22:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/jammy/stable/current/amd64/hvm/ebs-gp2/ami-id}}'
Ubuntu-24:
ImageId: '{{resolve:ssm:/aws/service/canonical/ubuntu/server/noble/stable/current/amd64/hvm/ebs-gp3/ami-id}}'
Resources: Resources:
@ -858,7 +1091,10 @@ Resources:
owner: "root" owner: "root"
group: "root" group: "root"
Properties: Properties:
ImageId: !Ref AmiId ImageId: !If
- IsGraviton
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
LaunchTemplate: LaunchTemplate:
# Enable IMDSv2 by default # Enable IMDSv2 by default
LaunchTemplateId: !Ref IMDSv2LaunchTemplate LaunchTemplateId: !Ref IMDSv2LaunchTemplate