以前移行して利用していたCloud Accessというクラウドサービスのパフォーマンスが…あまりにも…遅すぎて耐えられない状況でした。
とはいっても、趣味程度のブログにお金はかけられない。そこで移行先の環境を「無料・広告なし・パフォーマンス良好」という難しい条件で探していました。
すると、いつもFeedしているQiitaに面白い記事が上がったのです。
https://qiita.com/ryuta69/items/dbb0db5cf7099b7a7cc4
Google Cloud Platform (GCP) か…。
マイクロソフト系をうたったブログなのに良いのか…?ともよぎりましたが、それはそれで新しい発見があるのでは?GCPとAzureを比較する良い機会になるのでは?と思い、GCPへの移行を試してみることにしました。
ほんの数か月前にCloud Accessに移行したばかりなのに狂気の沙汰ですが、どうしようもない試してみたいエンジニアの性です。少年の心です。誰も責めることはできません。
という訳で、初回のWebcrowというレンタルサーバーから初めて三世代目のインフラに移行することになりましたのでその手順を簡単に残しておきます。
Geekfujiwara インフラの歴史
- Webcrow
- Cloud Access
- Google Cloud Platform (2019/7/7現在こちら利用中)
目次
概要
以下のようなポイントを押さえ、移行を行います。
- インフラ準備 (GCP)
- ドメイン準備 (Freenom) とDNS設定 (GCP)
- データ移行 (All-in-One WP Migration プラグイン)
- 旧サイトからの自動転送設定 (旧サイトの ‘.htaccess’ ファイル編集)
作成手順
インフラ準備 (GCP)
MarketplaceにあるBitnamiのテンプレートを用いてWordpressをデプロイします。
はじめに、Marketplaceを開きます。
以下のような検索語で検索して選択します。
wordpress bitnami
赤枠のところを編集してデプロイします。
無料枠を適用するには、Machine type: f1-microシリーズ、usリージョンを選択します。
Boot disk size in GBは、30GBまで無料ですのでとりあえず30GBがおすすめです。
デプロイができれば、以下のようにDeployment managerから結果を確認することができます。
この段階で外部IPアドレスが動的な状態のため、静的に変更します。ネットワークサービスから、外部IPアドレスを開きます。
エフェメラル (= 短命) から、静的に変更します。また、この時の外部IPアドレスをメモしておきます。
ここまでで一旦環境準備は終了です。現在の状態ではIPアドレスでのアクセスしかできないため、ドメイン関係を次から準備していきます。
ドメイン準備 (Freenom) とDNS設定 (GCP)
独自ドメインがある方は不要な手順ですが、これから無料で取得したいという方はご参考ください。
Freenomにアクセスしてサインアップします。
https://www.freenom.com/ja/index.html?lang=ja
サインアップ後、My domainを取得するため、取得したいドメインを入力して検索します。
無料で取得できるドメイン一覧が上部に表示されますので、’今すぐ入手’ をクリックします。
すると、カートに入った状態になるため、スクロールして画面下部にある ‘チェックアウト’ から進みます。
無料で利用する初期設定の期間は12か月が最長なので、’12 Months @ FREE’ を選択して ‘Continue’ をクリックします。
注文の確認画面が表示されますので、確定処理します。
ここまでで、WordPressアクセス用のドメインを取得することができました。ここから、そのドメインとGCPのVMのIPアドレスを紐づける作業を行います。
以下の作業はGCPで行います。
Freenomで取得したドメイン名でゾーンを作成します。作成し終わると各種情報を確認することができますのでNameserver名をメモしておきます。
次に先ほど静的に設定した外部IPアドレスとドメインを関連付けます。レコードセットの追加からサブドメインを指定するなどしてAレコードを追加します。データには外部IPアドレスを入力します。
次に、レジストリ側で名前解決できるように先ほどメモしたGCPのNameserver名をFreenomに登録します。
Freenomの上部メニューから ‘My domains’ を選択して、DNSの設定をします。
自分が取得したドメインの一覧が表示されるため、関係するドメインのManage domainを選択します。
以下のようにGCPのNameserver名を登録します。すると、レジストリ側が利用するNameserverをGCPのものにすることができ、一定時間待てばURLベースでアクセスできるようになります。
ここまでで、ドメインの設定は完了です。
データ移行 (All-in-One WP Migration プラグイン)
旧ブログからのデータ移行を簡単に行うことのできるプラグインが存在します。
やり方は簡単で説明の必要もないぐらいです。
旧サイトにAll-in-One WP Migrationプラグインをインストールして、エクスポートを行います。このプラグインの無料の枠内で行う場合、エクスポート先は「ファイル」としてローカルに置く必要があります。
新サイト側にはファイルのアップロード可能なサイズを増やすため、新サイトの管理ページにアクセスして、All-in-One WP Migrationをインストールに合わせて、さらにAll-in-One WP Migration ImportなるプラグインもZipファイルをアップロードする形式でインストールします。
そのZipファイルのダウンロードページはこちらです。この Basic 版をインストールすることでアップロードサイズを512MBまで対応できるようになります。
https://import.wp-migration.com/
今度はAll-in-One WP Migrationプラグインのメニューのインポートから、先ほどエクスポートしたファイルをアップロードします。
問題なく処理されれば、以下のような画面になります。既に使えるようになっています。
ただこの状態では、wp-config.phpファイルにてSSL無しのHTTPのサイトにアクセスする前提の状態となっています。
もしSSL有りのサイトに常にリダイレクトされるような設定を行いたい場合、そんな記事も簡単ですが作っておりますので以下を参考にされてください。
WordPressのSSL暗号化と常時SSLサイト表示設定 (Google Cloud Platformの Bitnami 利用)
旧サイトからの自動転送設定 (旧サイトの ‘.htaccess’ ファイル編集)
旧サイトに訪問される方を新サイトに自動転送する設定を行います。
私の場合、旧サイトは2か所ありますので以下の作業をそれぞれ行いました。
SSH でアクセスします。WordPressのRootに移動します。
ちなみに上記のように’.’ から始まるような隠しファイルを表示するためには、以下のコマンドでファイル一覧を表示することができます。
# Terminalにて、ディレクトリの隠しファイル含めて一覧表示
ls -all
存在を確認したら、.htaccessファイルをVimで開き新サイトのURLに転送されるようにします。
# .htaccess ファイルに以下を記述
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://my-new-site.com/$1 [R=301,L]
以上で旧サイトからの自動転送処理は完了です。
最後までお読みいただきありがとうございました。
ご参考になれば幸いです。