TL;DR
- DBのタイムゾーンはデフォルトUTCだがJTCに変更可(再起動不要)
- 運用中に変更すると影響範囲の確認が面倒なので構築初期に変更しておくのが吉
- ログ(CloudWatch Logs), モニタリング(CloudWatch Metrics)は初期表示はUTCだが都度操作でJTCに変更可
- Performance InsightsはUTCのみでJTCにできないので、ユーザー側で+9時間の読み替えが必要
DBのタイムゾーン
- デフォルトでUTC
- クラスターパラメータグループのtimezoneパラメータでAsia/Tokyoを設定する(即時反映)
- Web上の文献で、「time_zone」パラメータをプルダウンで「Asia/Tokyo」を選択する、のような記述を見かけるけどおそらく古い。現在はtimezoneパラメータにAsia/Tokyoを入力する
- PostgreSQLのパラメータとしてはlog_timezoneというものがあるが変更不可
-- 設定前
pfs=> select now();
now
-------------------------------
2023-08-10 05:07:15.826974+00
(1 row)
-- 設定後すぐ
pfs=> select now();
now
-------------------------------
2023-08-10 14:46:31.573845+09
(1 row)
既存のタプルの時刻について
分かった範囲で少し記載
8/10朝の検証レコード(apg_plan_mgmt.dba_plansテーブルのplan_createdなどのカラム)の時刻はUTCのまま変更されていない。
apg_plan_mgmt.dba_plansのplan_createdカラムなどのデータ型はtimestamp without time zone と date
この辺のデータ型はtimezone変更しても変更されない
時刻データ型にはwith time zoneのものがあるがこちらは未確認 (timestamp with time zone, time with time zone)
運用中に変えると影響範囲の確認が面倒なので構築初期に変更しておくべき..
ログのタイムゾーン(CloudWatch Logs)
- CloudWatch > ロググループ > /aws/rds/cluster/cluster/postgresql > cluster-instance-1.0
- DBのタイムゾーンで記載したとおり、log_timezoneパラメータは変更不可
- 生ログはUTCだが、CloudWatch Logsで時刻形式をローカルに設定すると、タイムスタンプ列でJTCで表示される
モニタリング(CloudWatch Metrics)
- デフォルトはUTC
- カスタム -> Local Time Zoneを指定すればJTCで表示される
Performance Insights
- UTCのみ
- 変更できなそう