AWS

AWSでパラメータグループを設定してからRDS(MySQL5.7)のインスタンス作成をする

RDS のインスタンスを作成する際、いきなりデータベースを構築すると後々パラメータグループを変更する手間が発生します。

それは、デフォルトのパラメータグループの文字コードが「utf8」や「utf8mb4」になってないからで、それらを使いたい場合は先にパラメータグループを作成しておくことをオススメします。

ここでは先にパラメータグループを作成してからデータベースを構築する手順を紹介します。

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

RDS のサービスメニューからパラメータグループをクリックします。

f:id:chatoracat:20181028182756j:plain

パラメータグループの画面が表示されたら右上の「パラメータグループの作成」ボタンをクリックします。

f:id:chatoracat:20181028182805j:plain

パラメータグループファミリーは「mysql5.7」を選択し、グループ名と説明は好きな内容で入力します。

f:id:chatoracat:20181028182817j:plain

パラメータグループの設定

次にパラメータグループの設定をします。

先ほど作成したパラメータグループ名をクリックします。

f:id:chatoracat:20181028182910j:plain

主に文字コードやスロークエリログなど、運用に応じて設定を調整します。

今回は文字コードを「utf8mb4」、タイムゾーンを「Asia/Tokyo」、スロークエリをログ出力する設定とします。

実際に設定を変更したパラメータの一部(文字コードの部分)紹介します。

f:id:chatoracat:20181028182920j:plain

「time_zone」と「slow_query_log」の設定はここには表示されていませんが、後ほどデフォルトパラメータとの差分を紹介します。

データベースの作成

パラメータグループの設定が完了したらデータベースを作成します。

f:id:chatoracat:20181028182931j:plain

今回は Aurora ではなく通常の MySQL を使います。

f:id:chatoracat:20181028183018j:plain

AWS を初めて使う方は無料枠を活用して、無料枠の対象にチェックを入れておくと設定もスムーズです。

MySQL のバージョンは選択できる最新の 5.7.21 にしておきます。

f:id:chatoracat:20181028183027j:plain

無料枠にチェックを入れた場合はインスタンスタイプも t2.micro が選択され、ストレージも 20GB が適用されます。

f:id:chatoracat:20181028183037j:plain

次に、以下を設定してデータベースの作成は完了となります。

マスターユーザは root ユーザのようなものと思っておけば問題ありません。

  • インスタンス名
  • マスターユーザ
  • マスターパスワード

次のページで VPC やデータベースの名前を設定します。

データベース名を設定する際に、割り当てるパラメータグループを指定する項目があるので、ここで最初に作成したパラメータグループを選択します。

f:id:chatoracat:20181028183126j:plain

運用を考えて、エラーログとスローログは CloudWatch で管理できるようにしておくといいですね。

f:id:chatoracat:20181028183135j:plain

これでデータベースの作成は完了です。

パラメータグループの差分

この時点で、パラメータグループのページを表示すると以下の 2 つのパラメータグループがあります。

  • default.mysql5.7
  • 自分で作成したパラメータグループ

これらの設定を比較してみましょう。

まず、両方のパラメータグループにチェックを入れます。

f:id:chatoracat:20181028183221j:plain

上の「パラメータグループアクション」から「比較」を選択します。

f:id:chatoracat:20181028183230j:plain

実際に自分で作成したパラメータグループに設定した内容が確認できます。

f:id:chatoracat:20181028183241j:plain

インスタンスの確認

インスタンスの作成には少々時間が掛かるので、パラメータグループの比較をして時間を潰しても、まだ「作成中」の可能性があります。

RDS の運用方法にもよりますが、多くは EC2(webサーバ)からのアクセスに限定することが多いと思います。

よって、EC2 の構築がまだの場合は EC2 の作成をしちゃいましょう。

RDS のインスタンス作成が完了すれば、アクセス用のエンドポイントも確認ができるようになります。

f:id:chatoracat:20181028183314j:plain