AWS PostgreSQL のタイムゾーンの変更

Tech Knowledge
公開: 2023-02-26

はじめに

AWS RDS のデフォルトタイムゾーンは UTC なので、必要に応じて日本時間に変更する必要がある。

Amazon RDS DB インスタンスのタイムゾーンを変更するにはどうすればよいですか?

Amazon RDS DB インスタンスではすべて、デフォルトで UTC (協定世界時)/GMT (標準時) が使用されています。 解決方法 Amazon RDS DB インスタンスのタイムゾーンを変更するために必要な手順は、データベースエンジンによって異なります。 PostgreSQL – Amazon RDS for PostgreSQL DB インスタンスのタイムゾーンをデータベースレベルで変更するには、カスタムパラメータグループのタイムゾーンパラメータの値を設定します。タイムゾーンパラメータは、UTC-X または UTC+X の入力形式を取ります。X は、タイムゾーンと UTC との差を表す数字です。

手順

(1) パラメータグループの作成

RDS > パラメータグループ > パラメータグループの作成

  • パラメータグループファミリー: postgresXX(ベースとなるPostgreSQLのバージョンを指定)
  • タイプ: DB Parameter Group
  • グループ名: 任意
  • 説明: 任意

(2) パラメータの変更

RDS > パラメータグループ > (1)のグループ名 > 「パラメーターの編集」ボタン

  • timezone: UTC-9
    ※+9ではなく、-9
  • 「変更の保存」ボタン

(3) データベースのDB パラメータグループを変更

RDS > データベース > 変更したいデータベース > 「変更」ボタン
データベースの選択肢
DB パラメータグループ: default.postgresXX → (1)のグループ名
「続行」ボタン

変更のスケジュール: すぐに適用 「DB インスタンスを変更」ボタン

(4) データベースの再起動

RDS > データベース > 変更したいデータベース > アクション > 再起動
※ステータスが「変更中」の場合は再起動できないので、変更が終了するまで待機。

(5) 確認

timezone、現在時刻

warehouse=> show timezone;
 TimeZone
----------
 UTC-9
(1 行)

warehouse=> select now();
              now
-------------------------------
 2023-02-26 18:53:40.633882+09
(1 行)