はじめに
こちらは「Japan AWS Jr. Champions Advent Calendar 2023 2日目」の記事です。
みなさんこんばんは!hiropyです。
今回はre:inventで参加したセッションを、英語できないマンなりにざっくり振り返っていこうと思います!
本記事では「It’s about time: Benefits of microsecond-accurate time on Amazon EC2」について記載していきます。
翻訳ミス、意図の取り違えがあるかもしれませんが、「こんなことしてたんだ」くらいでご参考にしていただけると幸いです。
セッション概要
- セッション名:CMP220-NEW | [NEW LAUNCH] It’s about time: Benefits of microsecond-accurate time on Amazon EC2
- セッションタイプ:Chalk Talk
- レベル:200
- サービス:EC2
セッションの概要は以下のとおりです。
Amazon Time Sync Serviceのグローバルで信頼性の高いマイクロ秒レンジのクロック精度を利用すれば、最も時間に敏感なアプリケーションをクラウドに移行して近代化し、負担の大きいオンプレミスの時間インフラを廃止することができます。このチョークトークでは、オープンソースのデーモンとライブラリであるClockBoundを使用して、Amazon EC2インスタンスの改良されたクロックに接続し、クロックの精度を測定し、Amazon EC2インスタンスからタイムスタンプを生成して比較する方法を学ぶ。時間を回避する代わりに時間を活用する方法を発見し、分散アプリケーションでイベントとトランザクションの順序を決定する方法を学ぶ。
ざっくり書くと、サーバーのクロックの精度についてのお話でした。
セッション内容
昔から原子時計がある。初めは正確だが、次第にずれが発生する。
ではこのクロックのズレの原因は何か?
- クロック自体の問題 -> 完璧に修正するのが難しい
- ハードウェアが劣化してドリフトが発生する
- 温度
- 温度によって多少クロックの周波数が変化してしまう
- ネットワークの問題
- 元になるサーバとそれを受け取るサーバ間は必ずネットワークで繋がっているが、多少なりとも遅延が発生してしまう
この2つの問題が重なることで、ずれが発生する。
このクロックの正確性を計測するための新しいOSSライブラリ「Clock Bouns」が出た。
https://github.com/aws/clock-bound
これにより、標準時間と比較したサーバー時間の正確度、が計測できる。
計測のメトリクスは「Clock Error Bouns(CEB)」
標準時間から、誤差の波がどれくらい大きいかで判定する。
ちなみにEC2はデフォルトでAmazon Time Sync Serviceを使用している。これによりCEBの値は格段に小さくなっているので、Clock Bounsを使用することでこれを確かめられる。
他のサーバについてもClock Bounsは使用できるので、これでオンプレとの比較を出すとNTPサーバの移行を検討する材料になるかも
GPSの精度については、確かに一定はあるが、サーバが受け取るまでに改竄される可能性やGPS機能が壊れる可能性がある。
NTPとPTPの違い
基本的には、サーバはNTPにより時刻取得を実施するが、より正確な時刻が必要なサービスに関してはPTPという規格が使用される。(参考)
NTP
- Network Time Protocolの略
- 同期精度は数ms
- インターネットを経由して時刻を取得
- NTPサーバへの時刻問い合わせが比較的長い
- うるう秒がある
PTP
- Precision Time Protocolの略
- LAN内での使用を想定されており、同期精度は数サブms
- Ethernet経由で使用する場合、ネットワーク機器もPTPに対応している必要がある
- うるう秒がない
- 金融取引や、LTEの携帯キャリア網に使用される
補足
時刻取得についてはいずれもGPSを経由している?
https://timemachinescorp.com/2021/01/08/the-differences-between-ntp-and-ptp/
感想
- だいぶハード寄りの話で面白かった
- 英語は聞いてて全くわからなかった
- chork talkで質問をガンガンできるセッションだったので、こういう場で質問ができる英語力になりたい
- 大学の授業受けてるみたいだった
以上、ざっくre:Capでした!ご参考になれば幸いです。