【AmazonLinux2023】NTP（Chrony）とタイムゾーンの設定


## はじめに

AmazonLinux2023導入直後の初期設定についてまとまっている記事がないため書きました。

本記事でわかることは以下２点。
・AmazonLinux2023導入直後のNTP設定確認方法
・タイムゾーンを日本にする方法

検証環境
インスタンスサイズ：t2.micro
OS:AmazonLinux2023

検証環境の準備方法について書きません。
（適当なVPCにインスタンスを立ててSSH接続しているだけ）

## AmazonLinux2023初期状態確認/NTP設定の流れ

①AmazonLinux2023導入と同時にインストールされるサービスの確認
②Chronyの同期先確認
③タイムゾーンを日本に変更する方法

### ①AmazonLinux2023導入と同時にインストールされるサービスの確認

``` Linux コマンド
systemctl list-service --type=service
```
<details><summary>コマンド実行結果</summary>

```  UNIT                                   LOAD   ACTIVE SUB     DESCRIPTION
  acpid.service                          loaded active running ACPI Event Daemon
  amazon-ssm-agent.service               loaded active running amazon-ssm-agent
  atd.service                            loaded active running Deferred execution scheduler
  auditd.service                         loaded active running Security Auditing Service
  chronyd.service                        loaded active running NTP client/server
  cloud-config.service                   loaded active exited  Apply the settings specified in cloud-config
  cloud-final.service                    loaded active exited  Execute cloud user/final scripts
  cloud-init-local.service               loaded active exited  Initial cloud-init job (pre-networking)
  cloud-init.service                     loaded active exited  Initial cloud-init job (metadata service crawler)
  dbus-broker.service                    loaded active running D-Bus System Message Bus
  dracut-shutdown.service                loaded active exited  Restore /run/initramfs on shutdown
  getty@tty1.service                     loaded active running Getty on tty1
  gssproxy.service                       loaded active running GSSAPI Proxy Daemon
  kmod-static-nodes.service              loaded active exited  Create List of Static Device Nodes
  libstoragemgmt.service                 loaded active running libstoragemgmt plug-in server daemon
  policy-routes@enX0.service             loaded active exited  Set up policy routes for enX0
  rngd.service                           loaded active running Hardware RNG Entropy Gatherer Daemon
  rpc-statd-notify.service               loaded active exited  Notify NFS peers of a restart
  serial-getty@ttyS0.service             loaded active running Serial Getty on ttyS0
  sshd.service                           loaded active running OpenSSH server daemon
  sssd.service                           loaded active running System Security Services Daemon
  sysstat.service                        loaded active exited  Resets System Activity Logs
  systemd-fsck-root.service              loaded active exited  File System Check on Root Device
  systemd-homed-activate.service         loaded active exited  Home Area Activation
  systemd-homed.service                  loaded active running Home Area Manager
  systemd-journal-catalog-update.service loaded active exited  Rebuild Journal Catalog
  systemd-journal-flush.service          loaded active exited  Flush Journal to Persistent Storage
  systemd-journald.service               loaded active running Journal Service
  systemd-logind.service                 loaded active running User Login Management
  systemd-machine-id-commit.service      loaded active exited  Commit a transient machine-id on disk
  systemd-network-generator.service      loaded active exited  Generate network units from Kernel command line
  systemd-networkd-wait-online.service   loaded active exited  Wait for Network to be Configured
  systemd-networkd.service               loaded active running Network Configuration
  systemd-random-seed.service            loaded active exited  Load/Save Random Seed
  systemd-remount-fs.service             loaded active exited  Remount Root and Kernel File Systems
  systemd-resolved.service               loaded active running Network Name Resolution
  systemd-sysctl.service                 loaded active exited  Apply Kernel Variables
  systemd-tmpfiles-setup-dev.service     loaded active exited  Create Static Device Nodes in /dev
  systemd-tmpfiles-setup.service         loaded active exited  Create Volatile Files and Directories
  systemd-udev-trigger.service           loaded active exited  Coldplug All udev Devices
  systemd-udevd.service                  loaded active running Rule-based Manager for Device Events and Files
  systemd-update-done.service            loaded active exited  Update is Completed
  systemd-update-utmp.service            loaded active exited  Record System Boot/Shutdown in UTMP
  systemd-user-sessions.service          loaded active exited  Permit User Sessions
  systemd-userdbd.service                loaded active running User Database Manager
  user-runtime-dir@1000.service          loaded active exited  User Runtime Directory /run/user/1000
  user@1000.service                      loaded active running User Manager for UID 1000
```
</details>

サービス一覧よりAmazonLinux2023ではChronyが導入されていることがわかりました。

自動起動になっているか念のために確認します。

``` Linux コマンド
systemctl is-enabled chronyd
enabled
```

AmazonLinux2023ではChronyが自動起動になっていることが確認できたため次に進みます。

### ②Chronyの同期先確認

``` Linux コマンド
chronyc sources
```
<details><summary>コマンド実行結果</summary>

```
^* 169.254.169.123               3   4   377    13  -8572ns[-9267ns] +/-  487us
^- ec2-15-152-63-145.ap-nor>     4  10   377   559   +221us[ +218us] +/- 4464us
^- ec2-15-152-156-115.ap-no>     4  10   377   545   +262us[ +261us] +/- 4367us
^- ec2-15-152-48-157.ap-nor>     4  10   377   496   -159us[ -160us] +/- 4305us
^- ec2-15-168-66-245.ap-nor>     4  10   377   545    +24us[  +23us] +/- 4609us
```
</details>

「*」がついていることから、169.254.169.123が同期先として初期状態から設定されていることがわかります。
このIPアドレスはAmazon Time Sync Serviceという時刻同期サービスのアドレスです。
https://aws.amazon.com/jp/blogs/news/keeping-time-with-amazon-time-sync-service/

では、現在の時刻と合っているか確認します。

``` Linux コマンド
date "+%Y/%m/%d/%H:%M"
```

日本時間より９時間遅い時間が表示されているはずです。

このままでは日本時間でログの記録などが行えないため問題があります。

### ③タイムゾーンを日本に変更する方法

一般的なLinuxのタイムゾーン設定方法と変わりありません。

/usr/share/zoneinfo以下のディレクトリにあるタイムゾーンファイルを/etc/localtimeにコピーするかシンボリックリンクを作成することで設定できます。

今回はシンボリックリンクを作成します。
シンボリックリンクではなくファイルをコピーする場合はcpコマンドを実行してください。

``` Linux コマンド
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
```
改めてdateコマンドで時刻を確認します。

```Linux コマンド
date "+%Y/%m/%d/%H:%M"
```

日本の現在時刻が表示されれば成功です。

お疲れ様でした。

AmazonLinux2023はまだまだ情報が出ていないので、簡単なことは共有していけたらと思います。

お役に立ったらいいねなどお願いいたします。