首页 > 解决方案 > 当当前应用程序终止时,具有工作应用程序的 AWS Beanstalk 无法将应用程序部署到新的 ec2

问题描述

我有一个新的 beanstalk,它是一个在 Amazon AMI Linux 上运行 php5.6 平台下的应用程序的旧 beanstalk 的迁移。新的 beanstalk 在 Amazon Linux2 上运行 php7.3。我已经解决了所有迁移问题,并且该应用程序在我的新 beanstalk 上正常运行。我有一个负载均衡器(经典),我运行自动缩放,最大和最小实例设置都设置为 1。

当我终止 ec2 时会出现问题。自动缩放正在创建一个新的 ec2,但它没有将应用程序部署到它。

有谁知道为什么会这样,或者我可以在哪里尝试调试问题?

标签: amazon-elastic-beanstalkaws-auto-scaling

解决方案


对我有用的是删除与 cwlogs 相关的旧 .ebextension 配置文件,并添加该行

awslogs: []

到我的配置

packages:
  yum:

然后创建一个新的conf文件如下

files:
  "/tmp/start_aws_cloudwatch_service.sh":
    content: |
      #!/bin/sh
      systemctl start awslogsd
      systemctl status awslogsd
      systemctl enable awslogsd.service
      exit $?
    mode  : "000755"
    owner : root
    group : root
commands:    
  start_aws_cloudwatch_service:
    cwd: /tmp
    command: bash /tmp/start_aws_cloudwatch_service.sh   

在此之后,我可以看到该服务已启动并正在运行

$ systemctl status awslogsd
● awslogsd.service - awslogs daemon
   Loaded: loaded (/usr/lib/systemd/system/awslogsd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-10-14 14:08:19 UTC; 34min ago
 Main PID: 4029 (aws)
   CGroup: /system.slice/awslogsd.service
           └─4029 /usr/bin/python2 -s /usr/bin/aws logs push --config-file /etc/awslogs/awslogs.conf --additional-configs-dir /etc/awslogs/c...

Oct 14 14:08:19 ip-xxx-xxx-30-7.eu-west-1.compute.internal systemd[1]: Started awslogs daemon.
Oct 14 14:08:19 ip-xxx-xxx-30-7.eu-west-1.compute.internal systemd[1]: Starting awslogs daemon...

请参阅:https ://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html


推荐阅读