我有一个AWS CloudFormation模板,它创建了一个应用程序负载均衡器,该负载均衡器将流量路由到由两个运行Apache的实例组成的目标组。
模板中创建ALB和实例的部分是:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer DependsOn: - Ec2InstanceA - Ec2InstanceB Properties: IpAddressType: ipv4 Scheme: internet-facing SecurityGroups: - !Ref InstanceSecurityGroup Subnets: - !Ref PublicSubnetA - !Ref PublicSubnetB Tags: - Key: Name Value: !Sub ${AWS::StackName}-ALB Type: application Listener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: DefaultActions: - Type: forward TargetGroupArn: !Ref MyTargetGroup LoadBalancerArn: !Ref MyApplicationLoadBalancer Port: '80' Protocol: HTTP MyTargetGroup: Type: AWS::ElasticLoadBalancingV2::TargetGroup Properties: HealthCheckEnabled: true Port: 80 Protocol: HTTP VpcId: !Ref VPC Targets: - Id: !Ref Ec2InstanceA - Id: !Ref Ec2InstanceB TargetType: instance Ec2InstanceA: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro ImageId: ami-0323c3dd2da7fb37d KeyName: KeyPair NetworkInterfaces: - AssociatePublicIpAddress: true DeviceIndex: 0 GroupSet: - Ref: InstanceSecurityGroup SubnetId: Ref: PrivateSubnetA UserData: Fn::Base64: !Sub | #!/bin/bash -ex sudo yum install -y httpd; sudo echo "<html><h1>Hello CloudFormation A!!<h1></html>" > /var/www/html/index.html; cd /var/www/html; sudo chmod 755 index.html; sudo service httpd start; sudo chkconfig httpd on; Ec2InstanceB: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro ImageId: ami-0323c3dd2da7fb37d KeyName: KeyPair NetworkInterfaces: - AssociatePublicIpAddress: true DeviceIndex: 0 GroupSet: - Ref: InstanceSecurityGroup SubnetId: Ref: PrivateSubnetB UserData: Fn::Base64: !Sub | #!/bin/bash -ex sudo yum install -y httpd; sudo echo "<html><h1>Hello CloudFormation B!!<h1></html>" > /var/www/html/index.html; cd /var/www/html; sudo chmod 755 index.html; sudo service httpd start; sudo chkconfig httpd on;
我猜这是某种资源时间问题,但我不是很确定。
通常,当您引导实例时,良好的实践是使用cfn-signal以及实例的创建策略。
这可以确保只有在userdata
完成时CloudFormation才会将实例标记为成功创建。这也让它等到事情发生的时候。
因此,当ALB开始检查实例的健康状况时,您可以肯定地知道userdata
已成功执行,并且apache服务器已启动并正在运行。
谢谢B。
我有一个与这里类似的情况:Spring Cloud Stream和RabbitMQ健康检查 错误信息 环境: Java 8 Grails 3.3.8 弹簧-拉比-1.7.9.释放 弹簧引导致动器-1.5.15.释放 KeyCloak服务器4.6.0.final 知道怎么能让兔子在这里停用吗?
我正在使用云形成模板来构建基础设施(ECS fargate集群)。模板已成功执行,堆栈已成功创建。但是,任务失败,出现以下错误: 我没有得到什么和在哪里寻找这个问题的疑难解答。由于它是fargate集群,我不知道如何登录到容器并执行一些健康检查查询来进一步调试。 如果你觉得,我也可以粘贴整个模板。 请帮忙
我试图通过 但是什么也没发生。似乎它在等待什么。控制台没有回来。不得不用CTRL C杀死它。 我还试图通过 与上述行为相同。
我试图理解docker编写健康检查选项是如何工作的。 运行状况检查:间隔:1 分钟30 秒超时:10 秒重试次数:3 我是否可以说这个配置将每90秒轮询一个容器,然后如果容器在10秒后超时,则群将再次尝试3次,之后它将标记容器终止并创建一个新容器来替换它 此处的文档 https://docs.docker.com/compose/compose-file/compose-file-v3/ 没什么帮
是否存在SQS的Spring引导执行器健康检查终结点?我已经构建了一个SQS使用者,我想检查SQS是否已启动并运行。我没有使用JMSlistener连接到SQS,而是使用Spring云库。 我实现了以下健康检查endpoint。当我删除队列并尝试命中运行状况检查endpoint时,这将返回以下错误。如果存在连接性问题或SQS服务关闭,是否会出现类似的错误,最终导致健康检查endpoint失败? 豆