簡體   English   中英

為 Auto Scaling 配置 AWS Elastic Beanstalk 時區

[英]Configuring AWS Elastic Beanstalk Timezone for Auto Scaling

我有一個部署在AWS上的單實例服務器- Elastic Beanstalk需要時區配置,我更改了時區,因為使用 ssh 登錄 EC2 環境,並使用下面列出的 linux 命令更新它;

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

一切都很好,因為服務器作為單個實例運行。 當我想使用 Auto Scaling、Load Balancing 功能時,問題就出現了。 在單個實例上,更新 linux AMI 上的時區很好,但在自動縮放模式下,因為根據閾值指標創建/銷毀/重新創建實例,所有配置都將丟失。

我的簡單問題是,如何在 AWS Elastic Beanstalk 中更改/配置自動可擴展負載平衡模式的時區?

您可以使用ebextensions配置新啟動的服務器。
這是一個對我有用的例子。 將以下命令添加到文件.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM