为 Auto Scaling 配置 AWS Elastic Beanstalk 时区
Posted
技术标签:
【中文标题】为 Auto Scaling 配置 AWS Elastic Beanstalk 时区【英文标题】:Configuring AWS Elastic Beanstalk Timezone for Auto Scaling 【发布时间】:2015-09-05 17:08:27 【问题描述】:我在 AWS - Elastic Beanstalk 上部署了一个需要时区配置 的单实例服务器,我将时区更改为使用 ssh 登录 EC2 环境,然后更新使用下面列出的 linux 命令;
sudo rm /etc/localtime
sudo ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
sudo reboot
一切都很好,因为服务器作为单个实例运行。当我想使用 Auto Scaling、负载平衡功能时,问题就出现了。在单个实例上,在 linux AMI 上更新时区很好,但在 auto scaling 模式下,因为实例是根据阈值指标创建/销毁/重新创建的,所有配置都会丢失。
我的简单问题是,如何在 AWS Elastic Beanstalk 中更改/配置自动可扩展负载平衡模式的时区?
【问题讨论】:
让这件事变得困难的是sudo reboot
。我不认为你需要它。应该有办法重新启动时钟服务。假设可以,您可以使用 ebextension 配置文件来完成所有这些操作
【参考方案1】:
您可以使用ebextensions 配置新启动的服务器。
这是一个对我有用的例子。将以下命令添加到文件.ebextensions/timezone.config
:
commands:
set_time_zone:
command: ln -f -s /usr/share/zoneinfo/US/Pacific /etc/localtime
【讨论】:
【参考方案2】:你也可以在命令行中通过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
【讨论】:
这个解决方案的唯一问题是它不可持续。如果您的 Elastic Beanstalk 实例被重建(或您的应用程序自动扩展),新实例将不会自动配置,并且需要规定的手动ssh
干预。来自@tal 的.ebextensions
答案是自动的,并且存在于您应用的配置中。【参考方案3】:
这里的答案只对我部分有用(我在使用上面的答案时部署错误)。经过一些修改,以下内容对我有用。我认为这与“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
【讨论】:
【参考方案4】:对于我在 *** 上的第一个答案......我必须在一个出色的早期答案中添加新信息。
对于 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"
我不确定第二个命令是否绝对必要,但这些实例确实可以很好地使用它(尤其是对于即将发生的任务!)。
【讨论】:
以上是关于为 Auto Scaling 配置 AWS Elastic Beanstalk 时区的主要内容,如果未能解决你的问题,请参考以下文章
AWS - 错误 - 更新 Auto Scaling 组、Amazon CloudFormation、无法部署配置