AWSTemplateFormatVersion: 2010-09-09
Description: 'This template deploys the Auto Scaling Groups and Launch Configurations. The Launch Configurations launch the instances for the Sitecore roles (qs-1qppe6871)'
Parameters:
PrivateSubnet1A:
Type: String
Description: 'ID of the private subnet 1 in Availability Zone 1 (e.g., subnet-a0246dcd)'
PrivateSubnet2A:
Type: String
Description: 'ID of the private subnet 2 in Availability Zone 2 (e.g., subnet-a0246dcd)'
CDMinSize:
Type: String
Description: 'The minimum number of Content Delivery instances available.'
CDMaxSize:
Type: String
Description: 'The maximum number of Content Delivery instances available.'
CDDesiredCapacity:
Type: String
Description: 'The desired number of Content Delivery instances available.'
CDInstanceType:
Type: String
Description: 'The Content Delivery instance type'
CDScalingMetric:
Type: String
Description: 'The metric used to determine scaling of the Content Delivery role.'
Default: ASGAverageCPUUtilization
AllowedValues:
- ASGAverageCPUUtilization
- ASGAverageNetworkIn
- ALBRequestCountPerTarget
CDScalingMetricValue:
Type: String
Description: 'The value required for the Content Delivery Scaling Metric (For ASGAverageNetworkIn this value is in bytes).'
Default: 70
CMInstanceType:
Type: String
Description: 'The Content Management instance type'
CMMinSize:
Type: Number
Description: 'The minimum number of Content Management instances available.'
CMMaxSize:
Type: Number
Description: 'The maximum number of Content Management instances available.'
CMDesiredCapacity:
Type: Number
Description: 'The desired number of Content Management instances available.'
CMScalingMetric:
Type: String
Description: 'The metric used to determine scaling of the Content Management role.'
Default: ASGAverageCPUUtilization
AllowedValues:
- ASGAverageCPUUtilization
- ASGAverageNetworkIn
- ALBRequestCountPerTarget
CMScalingMetricValue:
Type: String
Description: 'The value required for the Content Management Scaling Metric (For ASGAverageNetworkIn this value is in bytes).'
Default: 70
SitecoreInstanceSG:
Type: AWS::EC2::SecurityGroup::Id
Description: 'The Sitecore instance security group ID.'
SCInstanceProfile:
Type: String
Description: 'The Sitecore instance profile ARN.'
SitecoreKeyPair:
Type: String
Description: 'The sitecore EC2 key pair'
AutoscalingSNS:
Type: String
Description: 'The SNS topic ARn for Auto Scaling notification'
LocalQSScripts:
Type: String
Description: 'Local path for Quick Start scripts'
SCQSPrefix:
Type: String
Description: 'The Sitecore Quick Start prefix'
CDExtTargetGroup:
Type: String
Description: 'Content Delivery Target Group'
CMExtTargetGroup:
Type: String
Description: 'Content Management Target Group'
ISExtTargetGroup:
Type: String
Description: 'Identity Target Group'
ColIntTargetGroup:
Type: String
Description: 'Collection Target Group'
CSIntTargetGroup:
Type: String
Description: 'Collection Search Target Group'
CPIntTargetGroup:
Type: String
Description: 'Cortex Processing Target Group'
CRIntTargetGroup:
Type: String
Description: 'Cortex Reporting Target Group'
MAIntTargetGroup:
Type: String
Description: 'Marketing Automation Target Group'
MARIntTargetGroup:
Type: String
Description: 'Marketing Automation Reporting Target Group'
PrcIntTargetGroup:
Type: String
Description: 'Processing Target Group'
RDIntTargetGroup:
Type: String
Description: 'Reference Data Target Group'
RepIntTargetGroup:
Type: String
Description: 'Reporting Target Group'
InternalDNS:
Type: String
Description: 'Internal DNS FDQN'
CollInstanceType:
Type: String
Default: m4.large
Description: 'The Collection instance type'
CollSearchInstanceType:
Type: String
Default: m4.large
Description: 'The Collection Search instance type'
CortexProcInstanceType:
Type: String
Default: m4.large
Description: 'The Cortex Processing instance type'
CortexRepInstanceType:
Type: String
Default: m4.large
Description: 'The Cortex Reporting instance type'
IdentityInstanceType:
Type: String
Default: m4.large
Description: 'The Identity instance type'
MarkAutoInstanceType:
Type: String
Default: m4.large
Description: 'The Marketing Automation instance type'
MarkAutoRepInstanceType:
Type: String
Default: m4.large
Description: 'The Marketing Automation Reporting instance type'
ProcessingInstanceType:
Type: String
Default: m4.large
Description: 'The Processing instance type'
RefDataInstanceType:
Type: String
Default: m4.large
Description: 'The Reference Data instance type'
ReportingInstanceType:
Type: String
Default: m4.large
Description: 'The Reporting instance type'
Resources:
#Create Auto Scaling Groups & Launch Configurations
ContentDeliveryASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: !Ref CDDesiredCapacity
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref ContentDeliveryLC
MaxSize: !Ref CDMaxSize
MinSize: !Ref CDMinSize
DesiredCapacity: !Ref CDDesiredCapacity
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref CDExtTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub ContentDelivery-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
ContentDeliveryLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CDInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "CD" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "CD" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-update-web-config.ps1 -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "ContentDeliveryASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
CDScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref ContentDeliveryASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: !Ref CDScalingMetric
TargetValue: !Ref CDScalingMetricValue
ContentManagementASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: !Ref CMDesiredCapacity
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref ContentManagementLC
MaxSize: !Ref CMMaxSize
MinSize: !Ref CMMinSize
DesiredCapacity: !Ref CMDesiredCapacity
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref CMExtTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub ContentManagement-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
ContentManagementLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CMInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "CM" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "CM" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "ContentManagementASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
- "\n"
CMScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref ContentManagementASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: !Ref CMScalingMetric
TargetValue: !Ref CMScalingMetricValue
CollectionASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref CollectionLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref ColIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub Collection-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
CollectionScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref CollectionASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
CollectionLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CollInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "Collection" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "Collection" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "CollectionASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
CollectionSearchASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT30M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT30M
Properties:
LaunchConfigurationName: !Ref CollectionSearchLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref CSIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub CollectionSearch-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
CollectionSearchScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref CollectionSearchASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
CollectionSearchLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CollSearchInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "CollectionSearch" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "CollectionSearch" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "CollectionSearchASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
CortexProcessingASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT30M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT30M
Properties:
LaunchConfigurationName: !Ref CortexProcessingLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref CPIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub CortexProcessing-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
CortexProcessingScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref CortexProcessingASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
CortexProcessingLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CortexProcInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "CortexProcessing" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "CortexProcessing" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "CortexProcessingASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
CortexReportingASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref CortexReportingLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref CRIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub CortexReporting-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
CortexReportingScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref CortexReportingASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
CortexReportingLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref CortexRepInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "CortexReporting" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "CortexReporting" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "CortexReportingASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
IdentityASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref IdentityLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
# - !Ref ISIntTargetGroup
- !Ref ISExtTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub Identity-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
IdentityScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref IdentityASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
IdentityLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref IdentityInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "IdentityServer" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "IdentityServer" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "IdentityASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
MarketingAutomationASG:
DependsOn: CollectionSearchASG # Marketing Automation requires that Collection Search be running or the services will not start, and the template will fail
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref MarketingAutomationLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref MAIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub MarketingAutomation-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
MarketingAutomationScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref MarketingAutomationASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
MarketingAutomationLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref MarkAutoInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "MarketingAutomation" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "MarketingAutomation" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}" -$StackName '
- !Sub '"${AWS::StackName}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "MarketingAutomationASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
MarketingAutoRepASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref MarketingAutoRepLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref MARIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub MarketingAutomationReporting-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
MarketingAutoRepScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref MarketingAutoRepASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
MarketingAutoRepLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref MarkAutoRepInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "MarketingAutomationReporting" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "MarketingAutomationReporting" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "MarketingAutoRepASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
ProcessingASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref ProcessingLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref PrcIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub Processing-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
ProcessingScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref ProcessingASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
ProcessingLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref ProcessingInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "Prc" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "Prc" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "ProcessingASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
ReferenceDataASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref ReferenceDataLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref RDIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub ReferenceData-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
ReferenceDataScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref ReferenceDataASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
ReferenceDataLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref RefDataInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "ReferenceData" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "ReferenceData" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "ReferenceDataASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
ReportingASG:
Type: AWS::AutoScaling::AutoScalingGroup
CreationPolicy: # Wait for the instance to signal that it is created
ResourceSignal:
Timeout: PT20M
Count: 1
UpdatePolicy:
AutoScalingScheduledAction:
IgnoreUnmodifiedGroupSizeProperties: true
AutoScalingRollingUpdate:
MinInstancesInService: 1
MaxBatchSize: 1
WaitOnResourceSignals: true
PauseTime: PT20M
Properties:
LaunchConfigurationName: !Ref ReportingLC
MaxSize: '2'
MinSize: '1'
DesiredCapacity: '1'
VPCZoneIdentifier:
- !Ref PrivateSubnet1A
- !Ref PrivateSubnet2A
TargetGroupARNs:
- !Ref RepIntTargetGroup
NotificationConfigurations:
- TopicARN: !Ref AutoscalingSNS
NotificationTypes:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
Tags:
- Key: Name
Value: !Sub Reporting-${SCQSPrefix}
PropagateAtLaunch: true
- Key: Sitecore-QuickStart
Value: !Sub ${SCQSPrefix}
PropagateAtLaunch: true
ReportingScalingPolicy:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AutoScalingGroupName: !Ref ReportingASG
PolicyType: TargetTrackingScaling
EstimatedInstanceWarmup: 300
TargetTrackingConfiguration:
PredefinedMetricSpecification:
PredefinedMetricType: ASGAverageCPUUtilization
TargetValue: 70
ReportingLC:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
ImageId: !Sub '{{resolve:ssm:/${SCQSPrefix}/instance/ami/customid:1}}'
InstanceType: !Ref ReportingInstanceType
SecurityGroups:
- !Ref SitecoreInstanceSG
IamInstanceProfile: !Ref SCInstanceProfile
KeyName: !Ref SitecoreKeyPair
UserData: !Base64
Fn::Join:
- ''
- - "\n"
- !Sub '${LocalQSScripts}\sc-role-prep.ps1 -Role "Rep" -SCQSPrefix '
- !Sub '"${SCQSPrefix}"'
- "\n"
- !Sub '${LocalQSScripts}\sc-xp-install-resources.ps1 -Role "Rep" -SCQSPrefix '
- !Sub '"${SCQSPrefix}" -Region '
- !Sub '"${AWS::Region}"'
- "\n"
- !Sub 'New-AWSQuickStartResourceSignal -Stack "${AWS::StackName}" -Region '
- !Sub '"${AWS::Region}" -Resource "ReportingASG"'
- "\n"
- "Write-AWSQuickStartStatus"
- "\n"
- "\n"
Outputs:
Collection:
Description: Collection Role URL
Value: !Sub coll.${InternalDNS}
CollectionSearch:
Description: Collection Search Role URL
Value: !Sub collsearch.${InternalDNS}
ReferenceData:
Description: Reference Data Role URL
Value: !Sub refdata.${InternalDNS}
MarketingAutomation:
Description: Marketing Automation Role URL
Value: !Sub mktauto.${InternalDNS}
MarketingAutomationReporting:
Description: Marketing Automation Reporting Role URL
Value: !Sub mktautorep.${InternalDNS}
CortexProcessing:
Description: Cortex Processing Role URL
Value: !Sub cortexproc.${InternalDNS}
CortexReporting:
Description: Cortex Reporting Role URL
Value: !Sub cortexrep.${InternalDNS}
Processing:
Description: Processing Role URL
Value: !Sub proc.${InternalDNS}
Reporting:
Description: Reporting Role URL
Value: !Sub rep.${InternalDNS}