EC2のNTPが効かなくてかなりはまったので記録しておきます。
発生した現象
VPCのPrivate Subnetに配置したEC2(amzn-ami-pv-2014.03.1.x86_64-ebs利用)でインスタンスで以下の現象が起きた
- 時刻が5分以上ずれているために、aws-cliが以下のように失敗する
- => ntpdはデフォルトで動いているはずなのに時刻補正がされていない
Signature not yet current: 20140909T043506Z is still later than 20140909T043505Z (20140909T043005Z + 5 min.)
結論
- VPCのNATのSecurity GroupでPrivate SubnetからのUDPを許可していなかった(TCPは許可していた)。このため、NTPが利用しているUDP 123番ポートが通信できなくてNTPが失敗していた。
- UDPを許可すると時刻補正がされるようになった。
- TCPは許可していたので気付きにくかった。
調査経過
- cronで行っていたCloudWatchのカスタムメトリックスが登録されなくなる
- cronのログを見るとSignature not yet currentエラーが発生している
- 時刻を確認するとずれている
- ntpdはデフォルトで実行されているのを確認
- ntpq -pコマンドを確認すると同期中のサーバがない
- /etc/ntp.confの設定でntpdateしても失敗する
- VPCのPrivate Subnetからの通信経路がおかしいのではないかと思いつく
- Private SubnetのNetwork ACLとNATのSecurityGroupの設定を確認