続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

クラウドUTC -> JSTへシステム時刻変更時の注意点

awsをはじめ、各種クラウドコンピューティングでは、インスタンス起動直後はUTCをシステム時刻にしています。ある程度のボリュームのあるサーバー運用を見込む場合は、予めJSTに変更したAMIを利用するのが最善だとおもいますが、いくつか注意点があります。

 

1. 時刻の設定が戻ってしまう

amazon Linuxにおいては glibcのupdateがかかってしまうと、たとえJST設定していてもUTCに戻ってしまう事があります。JST EC2などのキーワードで検索すると、

$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime

$date

2014年 8月 22日 金曜日 20:27:42 JST

で終わっているのがほとんど、これだけだと上記のUTCに戻ってしまう現象が発生します。/etc/sysconfig/clockも絶対に書き換えましょう。

ZONE="Asia/Tokyo"

UTC=False

2. Cronの実行時刻がずれる

AMIから Linuxを起動する。(もちろんUTC)

UTCの状態でCronが起動する。

sshでログインし、上記作業を行い、JSTに変更

Cronは起動した時のUTCのままだと勘違いしているので、JSTのつもりで日時指定するとズレる。

これを回避するには、localtimeを変更したら、必ず crondを再起動する。ということを習慣ずけることです。

 

UTC,JST問題はこれだけにとどまらず、根の深い問題です。特にRDSについては、UTCから変えることは出来ないので、(回避方法はhttp://qiita.com/j3tm0t0/items/089ef96ba131df079ca4)

WebサーバーはJST, RDSはUTCというアンマッチ状態で運用する事自体、あまり良くないといえるかもしれません。UTCで運用し、レポートなどアウトプットの時に時差を修正というのが正しいのかもしれません。

 

[参考]

http://memo-off.blogspot.jp/2011/11/timezonecron.html

http://blog.shuffleee.com/2265/