Amazon Time Sync is now available over the internet as a public NTP service
aws.amazon.com
aws.amazon.com
No, wrong!
Setting your system clock to use smeared time is legitimate. Doing this across a large fleet is even reasonable. But this is a policy decision, and it is not UTC. If a fleet wants shaded time, it should be explicit in the protocol or current configuration.
Smearing time by having a server that claims to be NTP doing the smearing is simply a lie, and will confuse clients who expect the server to tell the actual time. Even chrony’s leapsecmode=slew option expects the upstream server to report the leap second.
Last time there was a leap second, some smeared servers got into the NTP pool, and the result was a mess.
For everyone that gets leap seconds right theres 10 who muck it up and have incorrect telemtry at best or data loss and crashes at worst. And this happens every time. So folks like GP who want or need to be Technically Correct are free to do so. But the smeared time from the big providers saves tons of hassle for regular developers and customers.
Disclaimer: principal at AWS, opinions are my own. I have no inside knowledge of this AWS NTP release.
True. I mean, regulars would even be okay even with roughtime: https://roughtime.googlesource.com/
While BigTech needs even more accurate sources: https://research.google/pubs/pub49716/
Nice.
I find it quite regrettable that, 8 years later, large fleets and their unwitting customers use various, not necessarily compatible smears, and that they kludge it in via NTP. IMO a much better solution would be to make all this explicit:
Define UTCS as smeared UTC. Get everyone to agree at to exactly how it is smeared. Publish an RFC or similar. (Getting general purpose software to be aware of UTC vs UTCS is not necessarily required.)
Get all the major software vendors to implement UTCS by default, chrony-style.
Have the major cloud NTP servers continue to report UTC. Make the major NTP software implementations understand this all well enough so a server can run UTCS on its system clock but still report UTC to its own NTP clients.
But realistically, just don't use leap seconds and check again in a thousand years or so. Who even knows what the world will look like then.
I’m suggesting a new standard specifically for computers, not for commerce. The industry would agree on a smearing of time and anyone who wants to can use it at their discretion. And if the standard was at all sensible, it would say that one SHOULD NOT use it in any protocol intended to synchronize time between computers unless that protocol explicitly indicates whether the time is smeared.
The status quo is embarrassingly bad for interoperability. It’s a kludge implemented in a hurry to avoid a repeat of some bugs being triggered. The industry can and should do better.
Chrony configured to not skew will obviously skew anyway.
1. There is no definition of what the leap smeared timescale means. This may prevent a client from usefully synchronizing with multiple servers using that timescale.
2. There’s enough information in the messages to compute leap smeared time. (The leap second indicator along with UTC is sufficient.). Chrony does this.
As a result, it seems like it would never actually make sense for servers to synchronize to each other in smeared mode.
Computers should use perfect unsmeared clocks, translation for humans can just smear with a polynomial predictor that updates every few years. If you miss an update you get gracefully degraded accuracy, no jumps anywhere m
This means your devices and infrastructure outside of AWS, such as IOT devices and on-premises infrastructure, can synchronize to the same highly available time sources that were previously accessible only from within our data centers.
If nothing else they can use it for all the Alexas and Kindles they sell and what not. There's no reason for them not to offer it as a public service, not necessarily nefarious. There's also no real reason for anybody else to use it as far as I can tell.The concept of ITIL is one of those "good on paper" type things but at some places they think its only a starting point and it's like death by meeting.
This helps Amazon claim that those "run best on AWS", as NTP would be in the same datacenter (I think?) otherwise it looks like they use a regional endpoint[1].
What is Data Accuracy, Why it Matters and How Companies Can Ensure They Have Accurate Data.[2020] https://dataladder.com/what-is-data-accuracy/
Disclaimer: principal at AWS but the above are my sole conjecture/thoughts. I have no involvement or inside knowledge of this service release.
pool time.aws.com iburst
pool 1.amazon.pool.ntp.org iburst
pool time.nist.gov iburst
# chronyc sourcestats
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
ec2-54-86-189-11.compute> 4 3 7 -1128.596 60538.254 -17ms 9310us
ec2-18-212-174-188.compu> 4 3 7 -3475.306 40696.289 -32ms 7334us
ec2-54-224-100-122.compu> 4 3 7 -2748.130 71563.352 -26ms 11ms
ec2-3-80-167-198.compute> 4 3 7 +827.953 78440.828 +1398us 12ms
38.229.57.9 4 4 7 +744.719 67529.711 +117us 9384us
time.cloudflare.com 4 3 7 +957.450 44361.117 +3899us 6424us
3dhomejoe.com 4 3 9 -958.576 43000.809 -14ms 7052us
shed.galexander.org 4 4 7 -4034.244 62138.637 -36ms 10ms
time-a-b.nist.gov 4 4 7 +1475.911 50544.457 +9056us 5773us
# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- ec2-54-86-189-11.compute> 4 6 17 19 -5776us[-5776us] +/- 76ms
^- ec2-18-212-174-188.compu> 4 6 17 20 -22ms[ -22ms] +/- 57ms
^- ec2-54-224-100-122.compu> 4 6 17 21 -1057us[-1057us] +/- 77ms
^- ec2-3-80-167-198.compute> 4 6 17 21 +2093us[+2093us] +/- 57ms
^- 38.229.57.9 2 6 17 21 -769us[ -769us] +/- 185ms
^\* time.cloudflare.com 3 6 17 22 -2043us[+3354us] +/- 34ms
^+ 3dhomejoe.com 2 6 33 19 -23ms[ -23ms] +/- 102ms
^- shed.galexander.org 3 6 17 20 -32ms[ -32ms] +/- 114ms
^- time-a-b.nist.gov 1 6 17 21 +10ms[ +10ms] +/- 55ms
And for comparison pool pool.ntp.org iburst
pool time.nist.gov iburst
# chronyc sourcestats
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
time.cloudflare.com 4 3 6 +1363.306 27212.342 +8424us 3911us
time100.stupi.se 4 4 8 -1051.634 11864.409 -12ms 2419us
ntp2.flashdance.cx 4 3 7 +183.591 78497.898 -1031us 9048us
time.cloudflare.com 4 4 7 +566.874 56659.176 +1998us 8584us
time-e-b.nist.gov 4 3 6 -5.327 7264.481 +710us 988us
# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ time.cloudflare.com 3 6 17 11 -1590us[-2743us] +/- 66ms
^- time100.stupi.se 1 6 17 10 -5597us[-5597us] +/- 116ms
^\* ntp2.flashdance.cx 2 6 17 10 -31ms[ -32ms] +/- 168ms
^- time.cloudflare.com 3 6 17 10 -17ms[ -17ms] +/- 98ms
^+ time-e-b.nist.gov 1 6 17 11 +504us[ -649us] +/- 56ms
I'll stick with a config that queries Stratum 1 time server vs only Stratum 4 servers.\\EDIT: Formatting
What does it mean? Is Amazon operating atomic clock or using GPS?
With hardware support, and without any thought or tuning-- you probably get your machines synchronized 2 orders of magnitude closer. (From sub-millisecond to a few microseconds). And, of course, PTP can do much better than this.
Yah... on the other hand, there's a whole lot of applications where precision is a nice-to-have but not a necessity--- e.g. better ordering events between multiple machines without vector clocks, etc, when we're troubleshooting.