Categories: クラウド

【GCP】WordPressブログのGCEリージョン変更(引っ越し)方法

概要

本ブログはGCEを使っているのですが、諸事情によりリージョン変更を行ったため、
その時の手順を記します。

背景

GCEのAlwaysFree枠内で動かしているはずの本ブログのGCPアカウントから、
なぜか毎日20円ほど費用が発生しているため、調査を行いました。

なんと2020年3月23日時点、GCEのAlwaysFree枠は以下のリージョンのみ対応とのこと。
・us-west1
・us-central1
・us-east1

本ブログのリージョンは「us-west2」
(本記事の内容を実施後、「us-west1」に移りました)
本ブログ立ち上げの際に参考にした記事を鵜呑みにして作った結果がこれです…

この記事を見た方で、wordpressをGCPのAlwaysFree枠で構築する場合は、お気を付けください。
GCPの公式ページを見て、最新情報を確認した上でリージョン設定することが間違いないです。

ということで、リージョン変更の際に実施したことを記録しておきます。

事前準備

今回の場合はWordpressでしたが、万が一に備え、
WordPress自体のバックアップを行いました。

プラグインの「BackWPup」を使って、DropBoxに保存しました。

GCEリージョン変更

以下の手順に沿って、GCEのリージョン変更を行いました。

・移動前のリージョン&ゾーン: us-west2-a
・移動後のリージョン&ゾーン: us-west1-a

参考にしたページはこちら

ゾーン間のインスタンスの移動 | Compute Engine ドキュメント | Google Cloud

1.GCPを開き、クラウドシェルを開く

2.作業対象のプロジェクトをセット

gcloud config set project [作業対象プロジェクトID]

3.インスタンスとディスクが後工程の作業で自動削除されないように、自動削除設定をfalseに

gcloud compute instances set-disk-auto-delete  [移動対象インスタンス名] --zone us-west2-a \
    --disk [移動対象ディスク名] --no-auto-delete

4.対象VMのディスクバッファをクリア(ディスクに書き込む)※このコマンドは、対象VMにSSHして実施

sudo sync

5.対象VMのディスクのスナップショットの作成

gcloud compute disks snapshot [移動対象ディスク名] \
    --snapshot-names [移動対象ディスクのバックアップスナップショット名] \
    --zone us-west2-a

6.スナップショットが作成できたか確認

gcloud compute snapshots list

7.対象VMインスタンスの削除

gcloud compute instances delete [移動対象インスタンス名] --zone us-west2-a

8.念のため、実際にコピー元とするスナップショットを作成

gcloud compute disks snapshot [移動対象ディスク名] \
    --snapshot-names [移動先のリージョンでのコピー元となるスナップショット名] \
    --zone us-west2-a

9. 再度、スナップショットが作成できたか確認

gcloud compute snapshots list

10.移動対象となるVMの永続ディスクを削除

gcloud compute disks delete [移動対象ディスク名] --zone us-west2-a

11. 移動先のリージョン・ゾーン(us-west1-a)に新しい永続ディスクを作成

gcloud compute disks create [移動先のリージョンでのディスク名] --source-snapshot [移動先のリージョンでのコピー元となるスナップショット名] \
    --zone us-west1-a

12. 新しい外部IPアドレスを移動先のリージョンで取得

13.移動先のリージョン・ゾーン (us-west1-a)に新しいVMインスタンスを作成

gcloud compute instances create [移動先のリージョンでのインスタンス名]  --machine-type f1-micro \
    --zone us-west1-a \
    --disk [移動先のリージョンでのディスク名],boot=yes,mode=rw \
    --address [直前の作業で取得した外部IPアドレス]

DNS・SSL設定

1.ドメイン取得先(お名前ドットコムなど)で、対象となるドメインのIPアドレスを新しいIPアドレス書き換える

2.対象VMのHTTPとHTTPSのポートを開ける

3.letsencryptでSSL証明書の再取得 ※このコマンドは、対象VMにSSHして実施
いろいろ選択肢Y/Nで聞かれますが、基本YでOKです。

sudo /opt/bitnami/letsencrypt/scripts/generate-certificate.sh -m [あなたのメールアドレス] -d [ドメイン名(例:sschneider-blog.com)]

この作業が、それぞれの人の環境によってコマンドが異なる可能性が高いです。
私は、GCPのMarketplaceから「 WordPress Certified by Bitnami and Automattic 」を用いて、Wordpress環境構築しているので、このコマンドを使いました。

このコマンドは、SSL証明書自動更新のcronまで設定してくれるので、とても便利です。

不要なスナップショットの削除

<注意:引っ越しがすべて完了して問題ないことを確認した上で、実施しましょう>

1.クラウドシェルを起動

2.コピー元となったスナップショットの削除

gcloud compute snapshots delete [移動先のリージョンでのコピー元となるスナップショット名]

3.バックアップとして作成したスナップショットの削除

gcloud compute snapshots delete [移動対象ディスクのバックアップスナップショット名]
The following two tabs change content below.

しゅないだー

20代社会人。 職種は「ビジネス部門内のBI&データエンジニア」で、BIを中心としたデータ活用を促進するための基盤構築&運用、BIに関する社内研修・社内コンサル対応などを行っています。
しゅないだー

20代社会人。 職種は「ビジネス部門内のBI&データエンジニア」で、BIを中心としたデータ活用を促進するための基盤構築&運用、BIに関する社内研修・社内コンサル対応などを行っています。