{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "", "Metadata": {}, "Parameters": { "WSFCNodeInstanceType": { "AllowedValues": [ "r4.xlarge", "r4.2xlarge", "r4.4xlarge", "r4.4xlarge", "r5.large", "r5.xlarge", "r5.2xlarge", "r5.4xlarge", "r5.12xlarge" ], "ConstraintDescription": "Only EBS Optimized instance types r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge allowed", "Default": "r5.2xlarge", "Description": "Amazon EC2 instance type for the WSFC Nodes", "Type": "String" }, "AutoPlacement": { "Description": "Does host allow auto-placement (dedicated) or only allow placement by specifying hostid (host) ", "Type": "String", "AllowedValues": [ "on", "off" ], "Default": "on" }, "AvailabilityZones": { "Description": "List of Availability Zones to use for the subnets in the VPC. Note: The logical order is preserved and that 2 AZ's must be provided unless the Third AZ parameter is specified, in which case 3 AZ's must me provided.", "Type": "List" }, "3rdAZ": { "Description": "create a host in a 3rd AZ", "Type": "String", "Default": "no", "AllowedValues": [ "no", "yes" ] } }, "Mappings": {}, "Conditions": { "Create3rdHost": { "Fn::Equals": [ { "Ref": "3rdAZ" }, "yes" ] } }, "Resources": { "DedicatedHost1": { "Type": "AWS::EC2::Host", "Properties": { "AutoPlacement": { "Ref": "AutoPlacement" }, "AvailabilityZone": { "Fn::Select": [ 0, { "Ref": "AvailabilityZones" } ] }, "InstanceType": { "Ref": "WSFCNodeInstanceType" } } }, "DedicatedHost2": { "Type": "AWS::EC2::Host", "Properties": { "AutoPlacement": { "Ref": "AutoPlacement" }, "AvailabilityZone": { "Fn::Select": [ 1, { "Ref": "AvailabilityZones" } ] }, "InstanceType": { "Ref": "WSFCNodeInstanceType" } } }, "DedicatedHost3": { "Type": "AWS::EC2::Host", "Condition": "Create3rdHost", "Properties": { "AutoPlacement": { "Ref": "AutoPlacement" }, "AvailabilityZone": { "Fn::Select": [ 2, { "Ref": "AvailabilityZones" } ] }, "InstanceType": { "Ref": "WSFCNodeInstanceType" } } } }, "Outputs": { "DedicatedHost1": { "Value": { "Ref": "DedicatedHost1" } }, "DedicatedHost2": { "Value": { "Ref": "DedicatedHost2" } }, "DedicatedHost3": { "Value": { "Ref": "DedicatedHost3" }, "Condition": "Create3rdHost" } } }