Amazon Web Service(AWS)には、Elastic Compute Cloud(EC2)だけでなく、Relational Database Service(RDS)にも一年間に渡って20GBの無料利用枠があります。
両方で50GBだから結構なボリュームですね。Bitnami Redmineで一緒にインストールされたローカルのMySQLを、RDSに置き換えることができれば、EC2のリソースに少し余裕も生まれます。
そこで試行錯誤した結果、EC2(Windowsサーバー)にインストールしたBitnami Redmineを、EC2+RDSのシステム構成で上手く稼働させることができたので、手順を紹介します。
Bitnami Redmineのレアな情報を織り交ぜながら手順を紹介していますので、最後までお付き合いいただければ嬉しいです。
DBインスタンスの作成
DBインスタンスの作成を始めるには、RDSダッシュボードの「今すぐ始める」ボタンをクリックします。
ウィザードに沿って数クリックすれば作成できます。また、ウィザードはいつでも中止することができます。
DBエンジンの選択
MySQLを選択します。
開発/テストの選択
無料利用枠での使用を目的としているので、「開発/テストのMySQL」を選択します。
DB詳細の指定
最初に「RDS 無料利用枠内で利用できるオプションのみを表示」にチェックを入れて、不用意に有利オプションを選択しないようにしておきましょう。
今回は次のように指定しました。マスターユーザーの名前とパスワードは、この後度々使用します。忘れないようにご注意ください。
詳細の設定
「ネットワーク&セキュリティ」の次の項目を確認します。
パブリックアクセス可能
自宅PCからODBCで接続する場合は「はい」を入力します。
VPCのセキュリティグループ
「default(VPC)」は外部から全くアクセスできないようになっています。今回はEC2と併用するので、今使っているEC2インスタンスと同じセキュリティグループを選択します。
その他の項目は、デフォルトのままで大丈夫ですが、「データベースの名前」を入力しておくとRDSインスタンスの生成と同時にデータベースが作成されるので、ちょっとだけ手間が省けます。今回は「redminedb」と入力しました。
[DBインスタンスの作成]ボタンをクリックすると、作成が始まります。
少し時間がかかるので、インスタンスの一覧を表示しながら待ちましょう。ステータスが「利用可能」になれば完成です。
文字コードをutf8に変更
RDSでは、データベースのパラメータを「パラメータグループ」で管理します。作成したばかりのRDSインスタンスには、デフォルトのパラメータグループが設定されています。
このグループでは、ほとんどがDBエンジンのデフォルトのため、主な文字コードの設定が次のような設定になっています。
パラメータ | 設定 | 値 |
---|---|---|
character_set_client | engine-default | utf8 |
character_set_connection | engine-default | utf8 |
character_set_database | engine-default | latin1 |
character_set_results | engine-default | utf8 |
character_set_server | engine-default | latin1 |
明示的にすべて「utf8」を指定したいのですが、デフォルトのパラメータグループは変更できないため、独自のパラメータグループに差し替えてから変更します。
独自グループの作成
RDSダッシュボードのパラメータグループにある[パラメータグループの作成]ボタンをクリックします。
グループ名、説明(全角文字はNGのようです)を入力して[作成]ボタンをクリックします。
独自のパラメータグループ「myparam」を作成しました。作成直後の内容は、デフォルトと同じになっています。
インスタンスへの適用
RDSダッシュボードのインスタンスで、「インスタンスの操作」の「変更」を選択します。
「DBパラメータグループ」のプルダウンリストから、先ほど作成した独自のパラメータグループを選択します。「すぐに適用」にチェックを入れて、[次へ]ボタンをクリックします。確認画面が表示されるので、[DBインスタンスの変更]ボタンをクリックして変更を適用します。
パラメータの変更
RDSダッシュボードのパラメータグループから対象を選択して、[パラメータの編集]ボタンをクリックします。
次の各パラメータの値を「utf8」に変更して、[変更の保存]ボタンをクリックします。
パラメータ |
---|
character_set_client |
character_set_connection |
character_set_database |
character_set_results |
character_set_server |
RDSダッシュボードからインスタンスを再起動すれば、文字コードの変更は完了です。
EC2からのアクセス確認
ここで、Windowsサーバー(EC2)からMySQL(RDS)にアクセスできるか、一度確認しておきます。ついでですから、変更したデータベースの文字コードも確認しておきましょう。
コマンドプロンプトの起動
Windowsサーバー(EC2)にリモートデスクトップで接続して、Bitnami Redmineのコマンドプロンプトを起動します。
RDSへのアクセス
マスターユーザーでMySQL(RDS)にログインします。コマンドの構文は次の通りです。
mysql -h [エンドポイント] -P [ポート番号] -u [マスターユーザー名] -p
問題無くアクセスできることが確認できました。続けて文字コードを確認しましょう。
show variables like “chara%”;
「latin1」だった「character_set_database」と「character_set_server」が「utf8」に変更されていることが確認できました。
データベースの一覧を表示します。
show databases;
インスタンスと一緒に作成したデータベース「redminedb」が表示されています。
次は、このデータベースにRedmineのテーブルを生成していきます。
コメント