--- AWSTemplateFormatVersion: 2010-09-09 Description: Creates the Amazon FSx for Lustre workshop environment. Metadata: Authors: Description: Darryl Osborne (darrylo@amazon.com) AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Workshop Environment Parameters: - VpcCidr - AvailabilityZones - KeyName - EmailAddress ParameterLabels: AvailabilityZones: default: Availability Zones KeyName: default: EC2 key pair EmailAddress: default: Email Address VpcCidr: default: VPC CIDR Parameters: AvailabilityZones: Description: Select two (2) Availability Zones (AZ). One public subnet and one private subnet will be created in each AZ. Type: List EmailAddress: Description: The email address for CloudWatch alarm notification. Type: String KeyName: Description: Select the EC2 key pair for the Linux instance (Lustre client). Type: AWS::EC2::KeyPair::KeyName VpcCidr: AllowedValues: - 10.0.0.0/16 - 173.31.0.0/16 - 192.168.0.0/16 Default: 10.0.0.0/16 Description: Select the private IPv4 CIDR for the VPC. Type: String Resources: Vpc: Type: AWS::CloudFormation::Stack Properties: Parameters: AvailabilityZones: !Join [ ',', !Ref AvailabilityZones ] TemplateURL: https://s3.amazonaws.com/amazon-fsx/workshop/lustre/templates/01-vpc.yaml SecurityGroup: DependsOn: [ Vpc ] Type: AWS::CloudFormation::Stack Properties: Parameters: VpcId: !GetAtt [ Vpc, Outputs.VpcId ] TemplateURL: https://s3.amazonaws.com/amazon-fsx/workshop/lustre/templates/02-security-group.yaml FileSystem: DependsOn: [ SecurityGroup ] Type: AWS::CloudFormation::Stack Properties: Parameters: SecurityGroupId: !GetAtt [ SecurityGroup, Outputs.FileSystemSecurityGroupId ] SubnetId: !GetAtt [ Vpc, Outputs.PrivateSubnetId0 ] TemplateURL: https://s3.amazonaws.com/amazon-fsx/workshop/lustre/templates/03-file-system.yaml LinuxInstance: DependsOn: [ FileSystem ] Type: AWS::CloudFormation::Stack Properties: Parameters: KeyName: !Ref KeyName FileSystemId: !GetAtt [ FileSystem, Outputs.FileSystemId ] SecurityGroupId: !GetAtt [ SecurityGroup, Outputs.Ec2SecurityGroupId ] SubnetId: !GetAtt [ Vpc, Outputs.PublicSubnetId0 ] TemplateURL: https://s3.amazonaws.com/amazon-fsx/workshop/lustre/templates/04-linux-instance.yaml Dashboard: DependsOn: [ FileSystem ] Type: AWS::CloudFormation::Stack Properties: Parameters: EmailAddress: !Ref EmailAddress FileSystemId: !GetAtt [ FileSystem, Outputs.FileSystemId ] TemplateURL: https://s3.amazonaws.com/amazon-fsx/workshop/lustre/templates/04-dashboard.yaml