Amazon RDS編~PostgreSQLのタイムゾーンを変更する~

こんにちは!Narimasaです!

前回は「Amazon EC2編~複数IPを付けてみよう~」と題して、EC2に複数のIPを割り当てる方法をご紹介しました。
今回は「Amazon RDS編~PostgreSQLのタイムゾーンを変更する~」と題して、RDSのPostgreSQLのタイムゾーンを変更する手順をご紹介します。

RDSでのタイムゾーン変更について

PostgreSQLに限らず、RDSではデフォルトのタイムゾーンがUTCとなっております。

MySQLについてはストアドプロシージャを用いる必要がありますが、OracleとPostgreSQLはParameter Groupの設定を変更することで可能となります。

Parameter Groupの作成

新規にRDSインスタンスを作成する場合や、RDSインスタンスを作成する際にデフォルトのDB Parameter Groupを指定している場合は新しくParameterグループを作る必要があります。
RDSコンソール画面左のメニューからParameter Groupを選択します。
RDSconsole

Create DB Parameter Groupをクリックします。
DB Parameter

対象のDBエンジン、Parameter Group名、説明を記入し「Yes,Create」をクリックします。
Create

Parameter Groupの設定

作成したParameter Groupを指定し、「Edit Parameters」を選択します。
Parameter Group

パラメータ一覧の中から、「timezone」の項目を探します。
初期設定では「UTC」となっているので「JAPAN」もしくは「Asia/Tokyo」に変更します。
変更したら「Save Changes」をクリックします。
Edit Parameters

Parameter Groupの反映

新規にRDSを作成する場合はParameter Groupの項目で作成したParameter Groupを選択するだけで反映されます。
既存のRDSインスタンスに反映させる場合は、以下の手順を行います。

対象インスタンスを指定し、「Instance Action」から「Modify」を選択します。

「Database Options」の「Parameter Group」を作成したパラメータグループに変更します。
Edit Parameters

※通常、設定の反映はメンテナンスウィンドウの指定時間に行われますが
「Apply Immediately」にチェックを入れると、即座に反映を行うことができます。

「Continue」をクリックするとプレビューが表示されるので、問題なければ「Modify DB Instance」をクリックします。

対象のRDSインスタンスのParameter Groupのステータスが(pending-reboot)になったら、RDSを再起動して反映完了です。
Status

RDSに接続して、以下のように表示されていれば変更完了です。
timezone

いかがでしたでしょうか。
PostgreSQLではパラメータグループの設定をすることで簡単にタイムゾーンを変更できます。
MySQLも同じようにタイムゾーン設定が出来るようになると嬉しいですね。

次回もお楽しみに!!

この記事を書いた人

aws-recipe-user