KUSANAGI for ConoHaのDBサーバ変更手順

    どうも、ひろーちか(@hir0_chika)と申します。

    この度、KUSANAGIのDBを外部DBサーバに移行しました。

    お久しぶりのスズムシ(です。 ConoHaでもKUSANAGIが使えるようになり、爆速Wordpressを体感している方も多いと思います。 ただ...

    既にQiitaに素晴らしい記事があったので、こちらを参照してやれば余裕でしょ!とか思ってたのですが、意外と苦労したので手順としてまとめることにしました。

    スポンサーリンク

    事前準備

    DBサーバー追加

    画面左側の「サーバー追加」から、

    ・タイプ:アプリケーションサーバー
    ・リージョン:東京
    ・サービス:DB

    を設定してサーバを追加します。

    自動バックアップはお好みで、ディスク容量は既存のDBサイズをベースに見積もってください。

    私の場合は全然データが入ってないので20MBもありませんでした。よって10GBを選択。

    データベース作成

    サーバーリストで作成したDBサーバを選択し、詳細画面でデータベースリスト横の「+データベース」ボタンを押します。

    データベース名とネームタグを設定し「保存」ボタンを押すとデータベースが作成され、中に接続ポートやホスト名が確認できます。

    phpMyAdminユーザー追加

    ユーザーリスト横の「+ユーザー」ボタンを押します。

    ユーザー種別「phpMyAdminユーザー」を選択し、ユーザー名とパスワードを入力します。

    「保存」ボタンを押すとphpMyAdminユーザーが作成されるため、接続先データベースを設定します。

    DBデータの流し込み

    VPSからのエクスポート

    VPS上で稼働中のmariaDBから、コマンドでdumpを取得します。dumpファイルとは、データベースの内容が全て書き込まれたテキストファイルのことです。

    コマンドを実行したら、カレントディレクトリにdump.sqlというファイルが出来ているので、TeraTermのSSH SCPなどを使い、ローカルにダウンロードします。

    DBサーバへのインポート

    Conohaのコントロールパネルにフォーカスを戻し、DBサーバ詳細画面のユーザーリスト → 先ほど作成したphpMyAdminユーザー → phpMyAdminのリンクを押します。

    ログイン画面に遷移し、各項目を入力して「実行」ボタンを押します。

    ・サーバ:DBサーバの接続先ホスト名。グローバルの接続先ホスト名を入れる。
    ・ユーザ名:phpMyAdminユーザーの名前。
    ・パスワード:phpMyAdminユーザーのパスワード。

    ログインできたら、画面左側から先ほど作成したデータベース名を選択します。

    インポートタブをクリックし、「アップロードファイル」にVPSからダウンロードしたdumpファイルを選択。一番下の「実行」ボタンを押します。

    dumpファイルに問題がなければ全てのデータがインポートされます。

    ネットワーク設定

    DBサーバにデータのコピーが完了したので、後はKUSANAGIが参照するDBを「ローカル→新DBサーバ」に向けてあげるだけ。

    イージーモード・・・と思いきや、割とそうでもなかった。

    グローバルネットワークでの接続が何故かできない件

    まず最初にやったのは、wp-config.phpの書き換えです。

    DB_NAME、DB_USER、DB_PASSWORDに新しい値をセットして、DB_HOSTにはグローバルの接続先ホスト名をセットして、保存!!

    ブラウザでF5を押すと、ブログに「データベース接続確立エラー」の文字が表示されました。

    即座に切り戻して、一応DB_HOSTにプライベートのやつを入れて試しても結果は同じだったので、グローバルレベルでの接続は諦めました。

    プライベートネットワークを設定する

    DBサーバー接続用ネットワークというものがあるらしいので、それを設定することにしました。

    そもそもWebサーバとDBサーバがグローバルレベルでコネクション張ってる状態とか意味わかんないし。。セキュアじゃない。あと、プライベートネットワークの方が高速ですね。
    DBを分離したのだから、今までよりもクエリの実行速度は普通に考えて遅くなるハズ(DBの処理にめちゃくちゃリソースを取られていた場合を除く)なので、そのボトルネックを解消できるという利点があります。

    公式の設定マニュアルがあるのですが、KUSANAGIのベースとなっているCentOS 7の設定例がない!!!!!!

    悲しみが深い。

    DBサーバー接続用ネットワークを作成する

    まず、プライベートネットワークの追加にあたってVPSを停止させておく必要があるので、shutdown -h nowなどで終了させてください。

    次に、画面左側の「ネットワーク」→「プライベートネットワーク」を選択します。

    「DBサーバー接続用ネットワーク」 → 「東京 リージョンネットワーク」を見ると、契約中VPSの一覧が出てくるので、KUSANAGIのVPSの接続状況を「接続する」に変更し、「保存」ボタンを押します。

    「接続状況」の隣にIPアドレスが表示されます。これを後でVPSのプライベートIPアドレスに設定します。

    確認したらVPSを起動します。

    ネットワークの設定情報を確認する

    VPSの詳細画面から「ネットワーク情報」を開き、「表示NIC」が「shared-*」となっているものを選択します。

    表示されたIPアドレス、サブネットマスク、ゲートウェイの情報を、後で静的ルーティングに設定します。

    VPSの設定を行う

    まず、VPSにrootでコンソールログインします。

    nmcli dev/conコマンドを発行し、ネットワークデバイス/接続の一覧を表示します。

    上記の「eth1」というデバイスと、「有線接続 1」という接続が、今回追加されたものです。

    nmcli con modコマンドで、接続IDを”有線接続 1″からeth1に変更します。

    eth1の接続IDに対して、インタフェースeth1を紐付けます。

    接続eth1の情報を変更します。先ほどの「shared-*」で表示されたIPアドレスとサブネットマスクを設定します。(「/23」は「255.255.254.0」と同義です)

    接続eth1を再起動します。

    このままだとIPしか振っておらず東京リージョンに到達できないので、東京リージョンとの橋渡し役になってくれるゲートウェイへの静的ルーティングを設定します。

    右側の方に「shared-*」のゲートウェイを入力します。

    変更を反映するため、接続をリロードします。

    念のためネットワークサービスも再起動します。

    DBサーバのプライベートネットワークにpingを打って、返ってくれば設定成功です。

    MySQLで接続できることを確認します。
    接続できると以下のように表示されるので、quitで抜けます。

    DB移行

    一般ユーザー追加

    まず、DBサーバ詳細画面のユーザーリストに、「一般ユーザー」を追加します。
    接続許可ホストにVPSのプライベートIPを設定することで、そのVPS以外からは参照できないようにします。ついでに接続先データベースも設定します。

    wp-config.phpの書き換え

    最後に、wp-config.phpにあるDB_NAME、DB_USER、DB_PASSWORD、DB_HOSTの4項目を書き換えましょう。(DB_HOSTにはプライベートの接続先ホスト名を入れてね)

    無事設定が終わればDBが切り替わっているハズです。

    あとはVPS側で動いてるmariaDBを止めてあげておしまいです。。

    お疲れ様でした。

    割と調べること多くて疲れた。。

    スポンサーリンク