マネージドNTPのAmazon Time Sync Serviceが便利な理由

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ご機嫌いかがでしょうか、豊崎です。

今回はAmazon Time Sync Serviceの便利な理由について、今までとこれからの比較で考えてみたいと思います。

はじめに

NTPサービスについて

まずはNTPサービスについてwikipediaで調べてみましょう。 ざっくりいうと時刻同期をおこなうサービスで、原子時計やGPS等の正確な時間を持つものを頂点とするStratumと呼ばれる階層構造をもっています。

Network Time Protocol(ネットワーク・タイム・プロトコル、略称NTP(エヌティーピー))は、ネットワークに接続される機器において、機器が持つ時計を正しい時刻へ同期するための通信プロトコルである。

参照元:https://ja.wikipedia.org/wiki/Network_Time_Protocol

Amazon Time Sync Serviceについて

Amazon Time Sync ServiceはVPCからインターネットにでることなく利用できるNTPサービスです。 また階層構造の最上位に位置する原子時計を利用した時刻参照を、と以下に記載があるので、極めて正確な時刻と同期できることがわかります。

NTPで配信される時刻同期サービスで、各リージョンで冗長化している衛星接続の原子時計を使って高精度な時刻参照を提供します。このサービスは追加料金なくすぐに全リージョンのVPCの稼働中の全インスタンスで利用できます。 このサービスには 169.254.169.123 のリンクローカル IP アドレスを介してアクセスできます。つまり外部のインターネットアクセスする必要なく、プライベートサブネット内から安全にアクセスできます。

参照元:https://aws.amazon.com/jp/blogs/news/keeping-time-with-amazon-time-sync-service/

時刻の正確さについては、以下の弊社記事を参考にしてください。

【Stratum3?】 Amazon Time Sync Service を ntpd から使ってみつつ 気になっていたことを確認した #reinvent

Amazon Time Sync Service提供以前

さて、それではAmazon Time Sync Service提供以前のNTPに対する設計を考えていきましょう。 いくつか方法はありますが、よくある構成について書いてみたいと思います。

まず1つめですが、 PublicサブネットにNAT Gateway(またはNATサーバ)を配置し、NAT Gateway経由で外部のNTPサーバを参照する構成です。 管理系のアウトバウンドについてのみ、NATを経由してインターネットの利用を行う方法です。

次に、自前でNTPサーバを用意する方法です。以下ではVPCとオンプレミスをVPN(またはDirectConnect)でつなぎ、オンプレミス側にNTPサーバを用意した例となります。

Amazon Time Sync Service提供後

Amazon Time Sync Service(リンクローカルアドレス:169.254.169.123)を参照できるようになったことで、NTP用に特別な用意をする必要がなくなり、構成が非常にシンプルになりました。

便利な理由

  • プライベートサブネットのEC2でもインターネットなしで時刻同期可能
  • NATやVPN、DirectConnectなどの用意が不要
  • 非常に精度の高い時刻同期が行える

さいごに

大々的に取り上げられたサービスではなかったかもしれませんが、既存環境の多くのEC2(執筆時点でC5,M5未サポートです)に影響のある非常によいupdateだったと思います。 今後、NTPに関して設計に悩むことがすくなくなりそうです。この記事が誰かのお役に立てば幸いです。