Linux
AWS

AmazonLinuxでのタイムゾーン設定

More than 3 years have passed since last update.

EC2上のAmazonLinuxでタイムゾーンをAsia/Tokyoにしていたつもりが、
glibcの更新時にUTCに戻されるという目にあったので、その対応メモ。

要約

すでに起動済みのインスタンスの場合は以下の2点を行う。

  1. /etc/localtimeに使いたいタイムゾーンへのシンボリックリンクを作成する。
  2. /etc/sysconfig/clockを書き換える

すでに動いているインスタンスの場合

/etc/localtimeの変更

こちらに記述されている対応方法の通り。
これで即時反映される。

【Linux】タイムゾーン(Timezone)の変更 - Qiita

/etc/sysconfig/clockの変更

/etc/localtimeの変更だけだと、glibcの変更時にUTCに戻ってしまう。
対応方法は以下に記述されている通り。
本来ならこちらの手順だけでいいが、AmazonLinuxだと設定後rebootしないと反映されないので、
/etc/localtimeの方も更新している。

glibcを更新しても大丈夫な「正しい」タイムゾーンの設定方法 (2/3追記あり) - めもおきば

/etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC=true

/etc/sysconfig/clock内の「UTC=true」の箇所はそのままの方がいいと思われる。
falseにするとハードウェアのクロックもローカルタイムで設定されてしまう。

これからインスタンスを起動する場合

UserDataでtimezoneを指定してから起動する。
こちらが参考になる。
Amazon Linux起動時にCloudInitで設定するもの « サーバーワークス エンジニアブログ

#cloud-config
timezone: "Asia/Tokyo"