LoginSignup
16
19

More than 3 years have passed since last update.

【Amazon Aurora】日本の環境で快適に使うための初期設定手順 ~ 文字コード、タイムゾーン、パブリックアクセス ~

Last updated at Posted at 2020-05-09

わずか数分でデータベースを作成、起動できてしまうAmazon RDS。
とっても便利ですが、デフォルトのままだと文字化けしてしまったり、時刻がズレていたりと歯がゆい思いをすることになりかねません。
今回は、Amazon Auroraを日本の環境(日本時間、日本語)で快適に使うために、やっておきたい初期設定手順をまとめてみました。

環境

  • Amazon Aurora(MySQL5.7)2.07.2(「開発/テスト」用)
  • クライアントOS:Windows10

手順

1. Amazon Aurora DBクラスターの作成

Amazon Aurora DBクラスターの作成に記載の手順を参照しつつ、作成します。
公式サイト(リンク先)に詳しく書かれているので、ここでは割愛します。

2. DBクラスターのパラメータグループの作成

Amazon Aurora(MySQL5.7)の場合、デフォルトのパラメータグループ、DB クラスターのパラメータグループの設定は以下のようになっています。

タイプ 名前
パラメータグループ default.aurora-mysql5.7
DB クラスターのパラメータグループ default.aurora-mysql5.7

これらデフォルトのパラメータグループの設定は変更できないので、別途パラメータグループを作成し、DBインスタンスに割り当てます。
今回は、DB クラスターのパラメータグループのみでOK!

以下の通り設定を進めていきます。

  1. AWS > RDSとアクセスしたら、左ペインにて、「パラメータグループ」をクリック。
    image.png

  2. 「パラメータグループの作成」をクリック。
    image.png

  3. タイプに「DB Cluster Parameter Group」(①)、グループ名(②)、説明(③)に任意の内容を入力し(入力自体は必須)、「作成」(④)をクリック。
    image.png

  4. 作成したパラメータグループの名前をクリック。
    image.png

  5. 検索ボックスに「character」と入力し(①)、「パラメータの編集」(②)をクリック。
    image.png

  6. キャプチャのように「値」がセレクトリストになるので(①)、下記の表の通り編集して「変更の保存」をクリック(②)。
    image.png

名前
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_results utf8mb4
character_set_server utf8mb4
time_zone(※) Asia/Tokyo

※time_zoneについては、検索ボックスにて別途「time_zone」と入力&検索する

3. DBインスタンスへのDBクラスターのパラメータグループ適用(+パブリックアクセスの有効化)

手順2で新しく作成したDBクラスターのパラメータグループをDBインスタンスに適用します。
また、外部から接続する場合、パブリックアクセスを有効にする必要があるので、こちらも合わせて設定しておきます。

  1. 左側ペインにて「データベース」をクリックし、対象のDBインスタンスを選択した後(②)、「変更」をクリック(③)。
    image.png

  2. 変更ページが開くので、中ほどまでスクロールして、「ネットワーク&セキュリティ」の「パブリックアクセシビリティ」にて「はい」を選択する(パブリックアクセスの許可)。
    image.png

  3. さらに下方にスクロールし、「データベースの設定」の「DBクラスターのパラメータグループ」にて作成したパラメータグループを選択。
    image.png

  4. いちばん下までスクロールし、「次へ」をクリック。
    image.png

  5. 画面遷移したら、「変更スケジュール」を「すぐに適用」に変更し(←重要!そのままだと、次回メンテナンスまで変更がが適用されません!)、「DBインスタンスの変更」をクリック。
    image.png

4. アクセス許可設定の変更

手順3にて、外部からのアクセスが許可されましたが、そのままでは特定のIP以外接続できません。
以下の手順により、適切な接続元からのアクセスを許可します(今回は全てのIPアドレスからの接続を許可します)。

  1. RDSの左側ペインにて、「データベース」をクリックし(①)、対象のDBインスタンスをクリックします(②)。
    image.png

  2. 画面下部に「接続とセキュリティ」が表示されたら、VPCセキュリティグループのリンクをクリック。
    image.png

  3. セキュリティグループのページが開くので、「インバウンドルールの編集」をクリック。
    image.png

  4. タイプが「MySQL/Aurora」となっている行の「ソース」で、「任意の場所」を選択し(①)、「ルールの保存」をクリック(②)。
    image.png

5. 接続と設定の確認

手順4までで必要な設定は一通り完了ですが、クライアントPCから接続、設定(文字コード、タイムゾーン)がうまくできているか、確認しておきましょう。

  1. コマンドプロンプトを起動し、対象のDBインスタンスに接続します。
> mysql -h {エンドポイント} -P {ポート} -u {DBクラスター作成時に設定したユーザー名} -p

Enterを押すと、パスワードの入力を求められるので、DBクラスター作成時に設定したパスワードを入力します。
「エンドポイント」、「ポイント」には、RDSの左側ペイン「データベース」> 「対象のDBインスタンス」をクリックすると下部に現れる、「エンドポイント」(①)、「ポート」(②)を使用します。
image.png

2.接続ができたら文字コードの確認をしましょう。

MySQL> show variables like '%char%';

以下のような結果になっていればOKです。
もし変更が反映されないようなら、一度再起動してみてください。
(今回変更したパラメータは全てdynamicなので、再起動は不要なはずではあるのですが、、)

+--------------------------+------------------------------------------------------------------+
| Variable_name            | Value                                                            |
+--------------------------+------------------------------------------------------------------+
| character_set_client     | utf8mb4                                                          |
| character_set_connection | utf8mb4                                                          |
| character_set_database   | utf8mb4                                                          |
| character_set_filesystem | binary                                                           |
| character_set_results    | utf8mb4                                                          |
| character_set_server     | utf8mb4                                                          |
| character_set_system     | utf8                                                             |
| character_sets_dir       | /rdsdbbin/oscar-5.7.mysql_aurora.2.07.2.0.1106.0/share/charsets/ |
+--------------------------+------------------------------------------------------------------+

6. オマケ:データベースとテーブルの作成時

Amazon Aurora2系はMySQL5.7互換なので、CHARACTER SETをutf8mb4とした場合は、COLLATIONはutf8mb4_general_ciとなります(MySQL8.0では、utf8mb4_0900_ai_ci)。
utf8mb4_general_ciは、濁点半濁点(「゛」、「゜」)は区別しますが、大文字小文字、所謂絵文字を区別しないので、左記全部を区別するutf8mb4_binにしてデータベースを作成しておきましょう。

以下、例です。

create database `test-db1` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

これで、対象のデータベースに作成されるテーブルも同じ設定となりますが、後々を考えるなら、以下のように設定を明記しておくとよいでしょう。

create table `test_table`(
  `id` int,
  `name` varchar(50)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

終わりに

データベースやテーブルを作ってしまってからの設定変更はいろいろと厄介。。
作成直後にサクッと必要な設定を済ませて、不要な作業や心配をなくしないところ。
(MySQL等を各々でインストールした場合もそうですが)

あと、使っていない時はDBインスタンスの停止 or 削除を忘れずに。

参考

16
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
19