長いこと自分のドメインをお名前.comで、サーバーをさくらインターネットで運用してましたが、そろそろそんな時代じゃないんじゃなかろうか、時代はクラウドでヴァーチャルマシンでインスタンスなのではなかろうか、と思い立ち、なんとなくモダンでイケてそうなGoogle DomainsとGoogle Cloud Platform(以下GCP)に引っ越してみることにしました。

なお、筆者のスキルとしては

  • ウェブデザイナー歴19年
  • 黒い画面(ターミナルのこと)は一応いじれる
  • ウェブサーバーを立てるなんて恐れ多い

といったところで、システムやインフラのことは詳しくありません。この記事もサーバーにあまり詳しくない方に読まれる想定で書いていくことにします。

引っ越し前の状況

  • .jpドメインをお名前.comで管理
  • ウェブサーバーをさくらインターネットのスタンダードプランで運用していて、WordPressを運用
  • ウェブ以外のサービス(メールなど)は不使用
  • Let's Encrypt で無料SSLを利用

独自ドメインでメールを使用している方は、別途メール関連の引っ越し手順が必要になると思います(ドメイン移管中にメールが不通にならないようにするなど)。

引っ越し手順

  1. 現状のサイトをバックアップ
  2. GCP上にWordPress環境を構築
  3. SFTPでファイルをアップロードできるよう設定
  4. VMにサイトを復元
  5. ドメインを移管
  6. DNSの設定
  7. SSLの設定

これで引っ越し中でもサイトが表示されない期間はありません。ただ、5〜7の間はhttpsでのアクセスができない状態にはなります。SSLの設定には正しく設定されたドメインが必要なので、これを解消するには別の方法でSSL化を行わないといけないと思います(Cloudflareの無料SSLサービスを使うなど)。

1. 現状のサイトをバックアップ

必要なモノとしては

  • ファイル
  • データベース

の2種類です。まずSSHで接続してデータベースのダンプファイルを作成し、次にダンプファイルを含む全てのファイルをSFTPでダウンロードします。SSHが使えない場合は、phpMyAdminなんかを使うことになるでしょう。

ファイル、データベース共に、引っ越し前のサーバーの設定がバックアップデータに含まれていた場合は、適宜修正しておきます。さくらインターネットの場合、.htaccessファイルにさくらインターネット独自の記述が入っていたりするので、削除しておきます。

2. GCP上にWordPress環境を構築

これ以降の作業のほとんどは、@mediaquery さんの GCPで爆速なWordPressを爆速で構築しSSL化する9手順 という大変わかりやすい記事に沿ってやっていきます。途中で黒い画面が出てきたりしますが、書かれている通りにコピペで入力するだけなので難易度は低いと思います。まず手順2の「独自ドメインの設定」まで進めます。今回の引越し作業はこの記事無しには成し得ませんでした。この場を借りてお礼申し上げます。

この際、無料枠対象のインスタンスを選ぶと、使用量上限まで無料で使えます。2021年1月現在、以下の組み合わせが無料枠となっています。

  • リージョン: us-west1, us-central1, us-east1 のいずれか
  • インスタンス: f1-micro

「ツール > Deployment Manager > デプロイ詳細」で開けるデプロイ詳細パネルでは、たった今立ち上げたVMの各種初期設定やSSHを開くリンクなどが確認できるので、ブックマークしておきましょう。WordPressやMySQLのユーザー/パスワードのデフォルト設定が示されていますが、後で変更しておくとよいと思います。

NSレコードのデータ("ns-cloud-d1.googledomains.com." みたいなやつx4)は後ほどDNSの設定で使用しますので、ひとまずメモしておきます。

3. SFTPでファイルをアップロードできるよう設定

nobuhiro harada さんの [GCP]Compute Engine のインスタンスにFileZillaでファイル転送する(mac) を参考にして、ローカルのSFTPクライアントでGCPに接続できるようにします。ただ、手持のMacのFileZillaではうまく接続できず、Cyberduckではうまくいきました。どうもFileZillaの不具合のようです。

なお、Intellij IDEA でSFTPで接続しようとするとそのままではうまくいかず、秘密鍵を生成する際にいくつかのオプションを追加する必要がありました。(参考:JetBrains製品でSSH接続時に秘密鍵が利用できない場合の一時対処法

また、アップロードしようとすると、ユーザー権限の問題でパーミッションエラーが出てアップロードできませんでした。stackoverflow の Permission in google cloud sftp を参考に、SSHで権限を調整して解決しました。

4. VMにサイトを復元

バックアップデータを新しいサイトに復元します。ファイルはSFTPで全てアップロードします。ウェブルートのパスは /var/www/html です。データベースは SSH でアクセスしてmysqlのインポートコマンドで復元します。データベース接続情報は2のデプロイ詳細パネルに書いてあります。

ここまでで、新しいVM上の環境にサイトを構築しました。しかし正しいドメインが割り当てられていないため、うまくアクセスできない状態です。

5. ドメインを移管

昔はGoogle Domainsで.jpドメインは扱ってなかったみたいなんですが、今はできるようになってます。ただし、お名前.comと比べると以下のデメリットがあります。

  1. 比較的値段が高い(4,600円/年、2020年1月現在) > Google Domains
  2. プライバシー保護機能が使えない

2のプライバシー保護機能とは何かというと、ドメインの公開管理者情報を表示させない(レジストラを管理者として公開する)機能のことです。お名前.comでは.jpドメインでも利用できるんですが、Google Domains では今の所できないようです。ともあれ、Google Domains の方が色々柔軟にできるっぽいし、UIも今風なので移管してみました。

移管の手順は makkyon さんの その独自ドメイン、Googleに移管してみない?Google Domainsが日本から利用可能になっていたのでドメインを移管してみた。 によくまとめられてますので、これを参考にして行います。注意点としては以下の通り:

わくわくしながらしばらく待ってますと、「トランスファー申請承認のご連絡」というメール(お名前.comの場合)が届き、移管処理が完了します。

6. DNSの設定

Google Domains で、移管したドメイン → DNS と進み、「ネームサーバー」の項目で「カスタム ネームサーバーを使用する」を選択し、2でメモしておいたNSレコードのデータを入力します。入力が完了すると末尾のドットが消えます(例:ns-cloud-d1.googledomains.com. → ns-cloud-d1.googledomains.com)が、気にしなくてよいです。これでドメインの名前解決がGCPで行われるようになるので、しばらくすると(DNS情報の浸透が完了すると)移管したドメインの表示がGCP上のWordPressに切り替わるはずです。やったぜ。

ネームサーバーの情報が自分から見て切り替わったかどうかを調べるには、ターミナルで whois ドメイン名 と入力します。

7. SSLの設定

Let's Encrypt を自動更新してくれるCertBotというのをインストールします。GCPで爆速なWordPressを爆速で構築しSSL化する9手順 に戻り、手順3から進めていきましょう。SSHは4で出てきたデプロイ詳細パネルから開けます。黒い画面多めですがビビらなくて大丈夫です。途中で nano というテキストエディタを使って設定ファイルを編集するとこはちょっと敷居が高いかもしれません。編集が終わったら「ctrl+o → enter(保存完了) → ctrl+x」で nano を抜けます。

これで世界最速級のWordPressサイトが思うままにいじれるようになりました。

その後


  • 2020.1.16 記事を公開
  • 2020.1.17 引っ越し中でもサイトが正しく表示されるよう順序を修正
  • 2020.3.31 いくつかの表現を若干修正
  • 2020.5.26 Intellij IDEA での SFTP 設定を追記、ウェブルートのパスを修正
  • 2020.6.25 その後を追記
  • 2021.1.4 無料枠内での使用方法を追記