インスタンスがスケジュールされたタスクを時間通りに実行し、正しいログタイムスタンプを記録する必要がある場合など、さまざまなシナリオでElastic Compute Service (ECS) インスタンスにとって、時間の正確性と一貫性は重要です。 ECSインスタンスでビジネスが実行されているときに発生するデータの不整合、脆弱性、ビジネス障害を防ぐため、Alibaba CloudはNTP (Network time Protocol) に基づく時刻同期サービスを提供し、インスタンス時刻の正確性を確保しています。
時刻同期サービス
時刻同期サービスは、ECSインスタンスの時刻をNTPサーバーに同期して、ECSインスタンスの時刻が正確であることを保証します。 時刻同期サービスは、NTPを使用して実装されます。 デフォルトでは、ECSインスタンスはchronyまたはNTPを実行して時刻を同期します。
詳細については、このトピックの「chrony and NTP」および「Alibaba Cloud NTPサーバーのドメイン名」をご参照ください。
時刻同期サービスの管理
Alibaba Cloudパブリックイメージには、デフォルトの時刻同期設定が含まれています。 パブリックイメージから作成されたECSインスタンスは、時間同期を実装するためにchronyまたはNTPを実行します。 ほとんどの場合、時刻同期サービスに介入する必要はありません。
次の手順を実行して、既存のECSインスタンスで時刻同期サービスが期待どおりに機能するかどうかを確認できます。 その後、ビジネス要件に基づいて関連する操作を実行できます。
ECSインスタンスがchronyまたはNTPを実行しているかどうかを確認します。 詳細については、このトピックの「ECSインスタンスによって実行される時刻同期サービスの表示」をご参照ください。
次の操作を実行して、時刻同期サービスが期待どおりに実行されるかどうかを確認します。 時刻同期サービスが期待どおりに実行される場合、関連する設定を変更する必要はありません。 ビジネスに時間依存性がある場合は、ビジネス要件に基づいて設定を変更できます。
現在の時刻が正確かどうかを確認します。 chronyとNTPは、時間ジャンプのリスクを避けるために時間を徐々に調整します。 ビジネスでインスタンスの現在時刻を正確にする必要がある場合は、時刻同期を実行します。 詳細については、このトピックの「手動時刻同期の設定」をご参照ください。
時刻同期サーバーのアドレスを変更する必要があるかどうかを確認します。 特定の時刻同期サーバーを設定する方法については、このトピックの「NTPサーバーアドレスの設定」をご参照ください。
時刻同期サービスのステータスを表示し、関連する設定を変更する必要があるかどうかを確認します
ECSインスタンスによって実行される時刻同期サービスの表示
次のコマンドを実行して、ECSインスタンスによって実行されている時刻同期サービスを表示します。 ECSインスタンスがNTPを実行しているが、ビジネスがNTPに依存していない場合は、chronyを使用することを推奨します。
sudo ps aux | grep -E "ntpd|chronyd"
ECSインスタンスがchronyを実行すると、次の図に示す出力が返されます。
ECSインスタンスがNTPを実行すると、次の図に示す出力が返されます。
説明NTPは、ECSインスタンスのCentOS 6イメージなど、以前の特定のバージョンのイメージに対して設定されています。 NTPは、NTPコミュニティによって維持されなくなりました。 あなたのビジネスがNTPに依存していない場合は、chronyを使用することをお勧めします。
現在の時刻が正確かどうかを確認する
コマンドを実行して、現在の時刻が正確かどうかを確認します。 このコマンドは、ECSインスタンスによって実行される時刻同期サービスによって異なります。 chronyとNTPは、時間ジャンプのリスクを避けるために時間を徐々に調整します。 ビジネスでインスタンスの現在時刻を正確にする必要がある場合は、時刻同期を実行します。 詳細については、このトピックの「手動時刻同期の設定」をご参照ください。
chrony
次のコマンドを実行して、システム時刻オフセット、システム時刻の安定性、前回の時刻同期が実行された時刻など、現在の時刻同期ステータスに関する情報を表示します。 システム時間の値を表示することで、現在の時刻が正確かどうかを評価できます。
sudo chronyc tracking
サンプルコマンド出力:
NTP
次のコマンドを実行して、設定されたNTPサーバーと対応するステータスインジケータに関する情報を表示します。 コマンド出力では、offsetパラメーターは、NTPサーバー時刻とインスタンスのローカル時刻の差を示します。
sudo ntpq -p
サンプルコマンド出力:
時刻同期サーバーのアドレスを変更する必要があるかどうかを確認する
コマンドを実行して、設定された時刻同期サーバーを表示します。 このコマンドは、ECSインスタンスによって実行される時刻同期サービスによって異なります。 時刻同期サーバーの設定方法については、このトピックの「NTPサーバーアドレスの設定」をご参照ください。
chrony
cat /etc/chrony.conf
コマンド出力では、server <NTP server> minpoll 4 maxpoll 10 iburst
は、設定された時刻同期サーバーを示します。
NTP
cat /etc/ntp.conf
コマンド出力では、server <NTP server> iburst minpoll 4 maxpoll 10
は、設定された時刻同期サーバーを示します。
時刻同期サービスの設定
手動時刻同期の設定
デフォルトでは、ECSインスタンスで実行されるchronyまたはNTPは、時間ジャンプのリスクを回避するために時間を徐々に調整します。 手動で時刻を同期しないことを推奨します。 ビジネスで手動の時刻同期が必要な場合は、次の手順を実行します。
ECSインスタンスによって実行される時刻同期サービスを表示します。 詳細については、このトピックの「ECSインスタンスによって実行される時刻同期サービスの表示」をご参照ください。
時刻同期サービスに基づいてコマンドを実行し、インスタンスの時刻を同期します。
chrony
sudo chronyc makestep
chronyが時間同期を完了するために使用される場合、
200 OK
が返される。NTP
重要NTPは、NTPコミュニティによって維持されなくなりました。
ntpdate
コマンドを実行して時刻同期を実行すると、時刻ジャンプが発生する可能性があります。 このコマンドを実行する必要がある場合は、ntpdateコマンドで少なくとも3つのクロックソースを指定して、時間のジャンプを防ぎます。 Alibaba Cloud NTPサーバーの詳細については、このトピックの「Alibaba Cloud NTPサーバーのドメイン名」をご参照ください。仮想プライベートクラウド (VPC) にあるインスタンスのサンプルコマンド:
sudo ntpdat e ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com
クラシックネットワークに存在するインスタンスのサンプルコマンド:
sudo ntpdat e ntp1.cloud.aliyuncs.com ntp2.cloud.aliyuncs.com ntp3.cloud.aliyuncs.com ntp4.cloud.aliyuncs.com ntp5.cloud.aliyuncs.com
NTPサーバーアドレスの設定
ビジネスに特別な要件がない場合は、NTPサーバーアドレスを変更する必要はありません。 ビジネスで特定の時刻同期サーバーが必要な場合は、ECSインスタンスで実行される時刻同期サービスに基づいてNTPサーバーアドレスを設定します。 Linuxインスタンスによって実行される時刻同期サービスを表示する方法については、このトピックの「ECSインスタンスによって実行される時刻同期サービスの表示」をご参照ください。
chronyを実行するLinuxインスタンス
CentOS 7またはAlibaba Cloud Linux 2以降を実行するインスタンスは、chronyを使用して時間を同期します。 chronyはシステム時間をより速くより正確に同期させます。 これにより、インスタンスと時刻同期サーバー間の時間と周波数の差が最小限に抑えられます。
ECSインスタンスが属するセキュリティグループにインバウンドルールを追加して、UDPポート123でのトラフィックを許可します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
Linuxインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
NTPサーバーを設定します。
Alibaba Cloud NTPサーバーを使用する場合は、
<NTP server>
パラメーターを設定します。 詳細については、このトピックの「Alibaba Cloud NTPサーバーのドメイン名」をご参照ください。 Alibaba Cloud NTPサーバーアドレスの選択方法については、NTP時刻同期が異常になった場合はどうすればよいですか? このトピックの「FAQ」セクションで。次のコマンドを実行して、
chrony
設定ファイルにアクセスします。sudo vim /etc/chrony.conf
必要のないNTPサーバーをマスクします。 設定ファイルでマスクする
server <NTP server> minpoll 4 maxpoll 10 iburst
の行を見つけ、I
キーを押してInsertモードに入ります。 次に、前の行の先頭に数字記号 (#
) を追加して、行をコメントアウトします。NTPサーバーを追加します。 NTPサーバーは、次の形式で構成ファイルに追加できます。
server <NTP server> minpoll 4 maxpoll 10 iburst
。次に、
Esc
キーを押して:wq
と入力し、設定ファイルを保存して閉じます。
chronyを有効にします。
次のコマンドを順番に実行して、
chronyd
サービスを有効にし、システム起動時にサービスを有効にします。sudo systemctl start chronyd.service sudo systemctl enable chronyd.service
次のコマンドを実行して、インスタンスの時刻同期ステータスを表示し、chronyがアクティブ化されているかどうかを確認します。
sudo chronyc tracking
次のコマンドを実行して、時刻同期サーバーに関する情報を表示します。
sudo chronyc -n sources -v
NTPを実行するLinuxインスタンス
ECSインスタンスでは、CentOS 6イメージなど、特定の以前のバージョンのイメージに対してNTPが設定されます。 インスタンスの時刻同期サービスが期待どおりに実行される場合、設定を変更する必要はありません。 ビジネスで特定の時刻同期サーバーが必要な場合は、次の手順を実行します。
ECSインスタンスが属するセキュリティグループにインバウンドルールを追加して、UDPポート123でのトラフィックを許可します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
Linuxインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
NTPサーバーを設定します。
Alibaba Cloud NTPサーバーを設定する場合は、
<NTP server>
パラメーターを設定します。 詳細については、このトピックの「Alibaba Cloud NTPサーバーのドメイン名」をご参照ください。 Alibaba Cloud NTPサーバーアドレスの選択方法については、NTP時刻同期が異常になった場合はどうすればよいですか? このトピックの「FAQ」セクションで。次のコマンドを実行して、
NTP
設定ファイルにアクセスします。sudo vim /etc/ntp.conf
必要のないNTPサーバーをマスクします。 設定ファイルでマスクする
server <NTP server> iburst minpoll 4 maxpoll 10
行を見つけ、I
キーを押してInsertモードに入ります。 次に、前の行の先頭に数字記号 (#
) を追加して、行をコメントアウトします。NTPサーバーを追加します。 NTPサーバーは、
server <NTP server> iburst minpoll 4 maxpoll 10
の形式で構成ファイルに追加できます。次に、
Esc
キーを押して:wq
と入力し、設定ファイルを保存して閉じます。
NTPを有効にします。
次のコマンドを順番に実行して、システム起動時に
NTP
を有効にします。sudo service ntpd start sudo chkconfig ntpd on
次のコマンドを実行して、NTPのステータスを確認します。
sudo ntpstat
次のコマンドを実行してNTPピアを表示します。
sudo ntpq -p
Windows
デフォルトでは、Windows ServerオペレーティングシステムはMicrosoft NTPサーバー (time.windows.com) に同期されます。 しかしながら、同期エラーが発生することがある。 Windows ECSインスタンスを使用する場合、デフォルトのMicrosoft NTPサーバーをAlibaba Cloudが提供する内部NTPサーバーに置き換えることができます。 この例では、Windows Server 2016オペレーティングシステムが使用されています。 次のセクションでは、デフォルトのNTPサーバーアドレスを変更する方法について説明します。
Windowsインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。
タスクバーの通知エリアで、[日付と時刻] をクリックし、[日付と時刻の設定] をクリックします。
[設定] ページで、[異なるタイムゾーンの時計の追加] をクリックします。
[日付と時刻] ダイアログボックスで、[インターネット時間] タブをクリックし、[設定の変更] をクリックします。
[インターネット時刻設定] ダイアログボックスで、[インターネットタイムサーバーと同期する] を選択し、内部ネットワーク内のAlibaba Cloud NTPサーバーのアドレスを入力し、[今すぐ更新] をクリックし、[OK] をクリックします。 NTPサーバーアドレスの詳細については、このトピックの「Alibaba Cloud NTPサーバーのドメイン名」をご参照ください。
重要インスタンス上のサードパーティのウイルス対策ソフトウェアが原因で、時間同期が失敗する可能性があります。 ウイルス対策ソフトウェアを無効にし、時間を再同期します。
[OK] をクリックします。
付録
クロニーとNTP
時刻同期サービス | シナリオ | 時間同期精度 | 安定性 | 説明 |
クロニー | 高精度、高い安定性、およびオートメーションを必要とするシナリオに適しています。 | 高い | 高レイテンシで不安定なネットワーク環境を処理できます。 | chronyは、NTPを使用してコンピュータシステムの時間を世界中のNTPサーバーと同期させるソフトウェアパッケージです。 chronyは変化するネットワーク環境に適しており、システム時間を高速かつ効率的に調整できます。 詳細については、「chrony」をご参照ください。 |
NTP | 高精度を必要としないほとんどのシナリオに適しています。 | 中 | 限られた量のネットワーク不安定性のみを処理できます。 | NTPは、古典的な時刻同期サービスであり、NTPプロトコルの実装です。 NTPは、特にネットワーク条件が比較的安定している環境で、長時間実行されるサーバーに適しています。 詳細については、「NTP」をご参照ください。 |
Alibaba Cloud NTPサーバーのドメイン名
次の表に、さまざまなネットワーク内のAlibaba Cloud NTPサーバーのドメイン名を示します。 これらのドメイン名はIPv4のみをサポートします。 Alibaba Cloud NTPサーバーアドレスを変更する場合は、ビジネス要件に基づいて次のいずれかのアドレスを選択できます。
クラシックネットワーク (内部ネットワーク) | VPC (内部ネットワーク) | インターネット |
ntp1.cloud.aliyuncs.com ntp2.cloud.aliyuncs.com ntp3.cloud.aliyuncs.com ntp4.cloud.aliyuncs.com ntp5.cloud.aliyuncs.com ntp6.cloud.aliyuncs.com | ntp.cloud.aliyuncs.com ntp7.cloud.aliyuncs.com ntp8.cloud.aliyuncs.com ntp9.cloud.aliyuncs.com ntp10.cloud.aliyuncs.com ntp11.cloud.aliyuncs.com ntp12.cloud.aliyuncs.com | ntp.aliyun.com ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com |
よくある質問
関連ドキュメント
Linuxオペレーティングシステムの時間関連の概念と操作、またはLinuxパブリックイメージへの構成変更の時間については、「Linuxの時間とタイムゾーン」をご参照ください。