Amazon Web Services - 配置 AWS Elastic Beanstalk 时区以实现 Auto Sc



我在 AWS 上部署了一个需要时区配置的单实例服务器 - Elastic Beanstalk,我将时区更改为使用 ssh 登录 EC2 环境,并使用下面列出的 linux 命令对其进行更新;

sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot

一切都很好,因为服务器作为单个实例运行。当我想使用自动缩放,负载平衡功能时,问题出现了。在单个实例上,在 linux AMI 上更新时区是可以的,但在自动扩展模式下,由于实例是根据阈值指标创建/销毁/重新创建的,因此所有配置都将丢失。

我的简单问题是,如何在 AWS Elastic Beanstalk 中更改/配置可自动扩展的负载均衡模式的时区?

您可以使用

EBames配置新启动的服务器。
这是一个对我有用的示例。将以下命令添加到文件.ebextensions/timezone.config

commands:
    set_time_zone:
        command: ln -f -s /usr/share/zoneinfo/US/Pacific /etc/localtime 

这里的答案只能部分地为我工作(使用上面的答案时我在部署时出错)。经过一些修改,以下内容对我有用。我相信这与"cwd"和"权限"有关。

commands:
  0000_0remove_localtime:
    command: rm -rf /etc/localtime
  0000_1change_clock:
    command: sed -i 's/UTC/Asia/Singapore/g' /etc/sysconfig/clock
    cwd: /etc/sysconfig
  0000_2link_singapore_timezone:
    command: ln -f -s /usr/share/zoneinfo/Asia/Singapore /etc/localtime
    cwd: /etc

对于我在 StackOverflow 上的第一个答案......我必须在一个优秀的早期答案中添加新信息。

对于AWS Linux 2,Elastic Beanstalk,有一种新的简单方法来设置时间。将以下命令添加到文件 .ebextensions/xxyyzz.config 中:

container_commands:
  01_set_bne:
    command: "sudo timedatectl set-timezone Australia/Brisbane"
    command: "sudo systemctl restart crond.service"

我不确定第二个命令是否绝对必要,但实例肯定在那里玩得很好(尤其是对于即将发生的任务!

您也可以在命令行中通过 ssh 进行配置:

连接到 Elastic Beanstalk 实例时:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html#change_time_zone

sudo ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime

您可以使用 eb 命令行工具连接到您的 EB 实例。http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-cmd-commands.html

eb ssh

最新更新