setting ntp on Ubuntu
EC2のUbuntu14.04にntpを設定
事の発端は、AWSのS3へのアクセスのための認証に使用しているCognitoコードで認証エラーがでるようになった。
エラー内容はInvalidSigunatureException なんかタイムスタンプが早すぎるみたいなエラー内容。
Nodeのアプリを再起動しても、AWSのCognitoの設定をみても解決せず。 タイムスタンプが早すぎるって意味わかんねーよってdateコマンドを実行してみたら、あら時刻ずれてるじゃない。。
要はCognitoでトークンを生成するためのタイムスタンプがずれるのでどうしたってエラーになっちゃう問題。
時刻がずれていることが原因と分かったので、暫定措置として時刻をあわせる(日本標準時)。 ※サーバーはUbuntu14.04
sudo ntpdate ntp.nict.jp
※前提としてntpdateがインストールされていること
いろいろ調べていたら、EC2でUbuntuを使うならNTPサーバーを利用して下さい的な感じだった。
NTPを入れる
根本解決のため、NTPサーバー機能をいれる。
sudo apt-get install -y ntp
そんで設定ファイルを編集する。 /etc/ntp.conf
- デフォルトの時刻サーバーをコメントアウト
- 代わりに
server ntp.nict.jp
を3行書く
上記の設定と内容の説明については他人の記事をご参照ください。
編集したらNTPサーバービスを再起動する
ぐお、タイムゾーンが
作業したサーバー(どちらもUbuntu14.04)のうち、1つがUTC、1つがJSTのタイムゾーンになってて、キモティ悪かったので、揃える。
sudo timedatectl set-timezone Asia/Tokyo
これでOK