Я создал два веб-сервера, используя вложенный стек. Также создан отдельный вложенный стек для балансировщика нагрузки. Я хочу прикрепить два веб-сервера, созданные с помощью Load balancder. Я действительно не очень разбираюсь во вложенном стеке. Было бы здорово, если бы кто-нибудь оказал им помощь. вот код, используемый для создания моей архитектуры с использованием вложенного стека
код для создания эластичного балансировщика нагрузки с использованием вложенного стека
AWSTemplateFormatVersion: 2010-09-09
Description: AWS CloudFormation Sample Template for creating EC2 instance
Parameters:
InstanceType:
Description: WebServer EC2 instance type
Type: String
Default: t2.micro
ConstraintDescription: must be a valid EC2 instance type.
KeyName:
Description: Key pair name
Type: 'AWS::EC2::KeyPair::KeyName'
Default: muneeshlab
AMIid:
Description: Image ID
Type: 'AWS::EC2::Image::Id'
Default: ami-00eb20669e0990cb4
SSHLocation:
Description: The IP address range that can be used to SSH to the EC2 instances
Type: String
MinLength: '9'
MaxLength: '18'
Default: 0.0.0.0/0
Resources:
WebInstanceOne:
Type: 'AWS::EC2::Instance'
Properties:
InstanceType: !Ref InstanceType
SecurityGroups:
- !Ref InstanceSecurityGroup
KeyName: !Ref KeyName
ImageId: !Ref AMIid
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupDescription: Enable SSH access via port 22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref SSHLocation
Outputs:
InstanceId:
Value:
Ref: WebInstanceOne
Description: ID of virtual server
**code for Load balancer**
AWSTemplateFormatVersion: 2010-09-09
Description: AWS CloudFormation Sample Template for creating LoadBalancer
Resources:
ElasticLoadBalancer:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
AvailabilityZones: !GetAZs ''
CrossZone: 'true'
Listeners:
- LoadBalancerPort: '80'
InstancePort: '80'
Protocol: HTTP
HealthCheck:
Target: TCP:80
HealthyThreshold: '3'
UnhealthyThreshold: '5'
Interval: '30'
Timeout: '5'
ConnectionDrainingPolicy:
Enabled: 'true'
Timeout: '300'
**code for final nested stack**
AWSTemplateFormatVersion: '2010-09-09'
Description: EC2 instance with functions
Parameters:
KeyName:
Description: Key pair name
Type: AWS::EC2::KeyPair::KeyName
Default: muneeshlab
Resources:
MyWebserverstack1:
Type: AWS::CloudFormation::Stack
Properties:
Parameters:
KeyName: !Ref KeyName
TemplateURL: https://s3.amazonaws.com/cloudstack-buck/cloud_web_server.yaml
TimeoutInMinutes: '5'
MyWebserverstack2:
Type: AWS::CloudFormation::Stack
Properties:
Parameters:
KeyName: !Ref KeyName
TemplateURL: https://s3.amazonaws.com/cloudstack-buck/cloud_web_server.yaml
TimeoutInMinutes: '5'
ElasticLoadBalancer:
Type: 'AWS::CloudFormation::Stack'
DependsOn:
- MyWebserverstack2
- MyWebserverstack1
Properties:
TemplateURL: https://s3.amazonaws.com/cloudstack-buck/LB.yaml
Примечание: Я могу создать три стека без каких-либо проблем. Единственное, что мне нужно, это прикрепить экземпляры с помощью Load Balancer
.