gcpでwordpressデプロイ

基本はこれ
下記でデプロイする。途中、compute engineの設定で性能を選べるのでコスト削減のため低いやつにした。
http, httpsのアクセスを許可するオプションはオンで。wordpressのssl化の時にバグる。
ssl化の時にaptのアップデートを忘れずに。あと、下段が記事とは微妙に違う形でうまくいった。
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache
参考にしたサイト
独自ドメインを使う設定はこちらがちょっと詳しい
google workspace用にすでに作成済みのドメインを使う

Gemini先生のまとめ
詳細 GCP(Google Cloud Platform)のClick to Deployで作成したWordPressサイトを、Squarespaceで管理しているGoogle Workspaceのドメインで公開するための設定手順をご説明します。
この設定は、大きく分けて以下の4つのステップで進めます。
- GCPでの準備: WordPressサイトのIPアドレスを固定します。
- GCPでのDNS設定: 独自ドメインの窓口(DNS)をGCPに設定します。
- Squarespaceでの設定: ドメインの管理をGCPに向ける設定をします。
- WordPressとSSL化: サイトのURLを独自ドメインに変更し、通信を暗号化します。
## 1. GCP: 静的IPアドレスの割り当て
まず、WordPressが稼働しているGCPの仮想マシン(VMインスタンス)のIPアドレスを固定します。デフォルトではIPアドレスが変動する可能性があるため、独自ドメインで安定してアクセスできるように静的な(固定の)IPアドレスを割り当てます。
- Google Cloudコンソールにログインします。
- ナビゲーションメニュー(
☰
)から [VPCネットワーク] > [IPアドレス] を選択します。 - WordPressインスタンスに割り当てられている「エフェメラル」と表示されているIPアドレスを見つけます。
- そのIPアドレスの右側にあるメニュー(︙)から [静的IPアドレスに昇格] をクリックします。
- 任意の名前(例:
wordpress-static-ip
)を入力し、[予約] をクリックします。 - 種類が「静的」に変わったことを確認し、このIPアドレスをメモしておきます。
## 2. GCP: Cloud DNSの設定
次に、GCPのCloud DNSサービスを使って、あなたのドメイン(例: your-domain.com
)のDNSゾーンを作成します。ここに、どのドメインへのアクセスをどのIPアドレスに向けるかの設定(レコード)を記述します。
- ナビゲーションメニューから [ネットワーク サービス] > [Cloud DNS] を選択します。
- [ゾーンを作成] をクリックします。
-
ゾーン名に任意の名前(例:
your-domain-zone
)、DNS名にSquarespaceで管理しているあなたのドメイン名(例:your-domain.com
)を正確に入力し、[作成] をクリックします。 - 作成したゾーンの詳細ページで、[標準を追加] をクリックして、Aレコードを2つ作成します。
-
Aレコード (ルートドメイン用)
- DNS名: 空欄のままにします。
- IPv4アドレス: ステップ1でメモした静的IPアドレスを入力します。
- [作成] をクリックします。
-
Aレコード (
www
用)-
DNS名:
www
と入力します。 - IPv4アドレス: ステップ1でメモした静的IPアドレスを入力します。
- [作成] をクリックします。
-
DNS名:
-
Aレコード (ルートドメイン用)
このドメインでGoogle WorkspaceのGmailを利用している場合、メールが正しく受信できるようにMXレコードをCloud DNSに設定する必要があります。これを忘れるとメールが届かなくなります。
- ゾーンの詳細ページで [標準を追加] をクリックします。
- リソースレコードのタイプで [MX] を選択します。
- Google WorkspaceのMXレコード値を設定します。通常、以下の5つのレコードを追加します。
優先度 | 値 / 応答 / 参照先 |
---|---|
1 | ASPMX.L.GOOGLE.COM. |
5 | ALT1.ASPMX.L.GOOGLE.COM. |
5 | ALT2.ASPMX.L.GOOGLE.COM. |
10 | ALT3.ASPMX.L.GOOGLE.COM. |
10 | ALT4.ASPMX.L.GOOGLE.COM. |
最後に、作成したゾーンの詳細ページの上部に表示されているNSレコード(例: ns-cloud-a1.googledomains.com.
など4つ)をメモしておきます。これは次のステップで使います。
## 3. Squarespace: ネームサーバーの変更
Squarespaceのドメイン管理画面で、ドメインの名前解決をGCPのCloud DNSで行うように、ネームサーバーの情報を書き換えます。
- Squarespaceにログインし、ドメインの管理パネルに移動します。
- DNS設定のセクションを探し、[ドメインネームサーバー] を開きます。
- [Squarespaceのデフォルトネームサーバーを使用] から [カスタムネームサーバーを使用] に切り替えます。
- 入力欄に、先ほどGCPのCloud DNSでメモした4つのNSレコードをすべて入力し、設定を保存します。
この設定変更がインターネット全体に反映されるまでには、数時間から最大で72時間程度かかる場合があります。
## 4. WordPressの設定とSSL化
DNS設定の反映が完了したら、最後にWordPress側の設定と、セキュリティを強化するためのSSL化を行います。
### 4.1. サーバーの準備とドメイン設定
目的: ドメイン名でサーバーにアクセスできるようにする。
- 静的IPアドレスの取得: GCPのVMインスタンスに静的(固定)IPアドレスを割り当て、メモする。
-
DNSレコードの設定: ドメインを管理しているサービス(今回はSquarespace)で、
{example.comなどあなたのドメイン}
とwww.{example.comなどあなたのドメイン}
の両方のAレコードを、上記で取得した静的IPアドレスに向ける。
### 4.2. SSL化の試行錯誤と正しい手順の特定
目的: SSL化ツールの種類を特定し、インストールする。
-
環境の特定: 当初、Bitnami環境専用のSSL化ツール(
bncert-tool
)を試したが、command not found
エラーが発生。これにより、使用しているサーバーがBitnami製ではないことが判明した。 -
正しいツールの採用: 上記の結果から、Linuxの標準的なSSL化ツールである
certbot
を使用する方針に決定した。 -
ツールのインストール: 以下のコマンドで
certbot
とApache連携用のプラグインをインストールした。sudo apt-get update sudo apt-get install certbot python3-certbot-apache
### 4.3. SSL証明書の取得とトラブル解決
目的: certbot
を実行し、発生した問題を解決しながら証明書を取得・設定する。
-
最初の実行 → ファイアウォールエラー:
-
問題:
certbot
実行後、Timeout during connect (likely firewall problem)
というエラーが発生。Let's Encryptのサーバーがこちらのサーバーにアクセスできない状態だった。 - 解決策: GCPのVMインスタンス編集画面で**「Allow HTTP traffic」と「Allow HTTPS traffic」のチェックボックスを有効化**し、ファイアウォールのポート(80, 443)を開放した。
-
問題:
-
二度目の実行 → 設定ファイルの競合エラー:
-
問題: 証明書のダウンロードには成功したが、Apacheへの自動設定に失敗。
The selected vhost would conflict
というエラーが表示された。 -
解決策: 自動設定を諦め、手動でApacheの設定ファイルを編集した。
-
sudo nano /etc/apache2/sites-available/wordpress-https.conf
を実行。 -
SSLCertificateFile
とSSLCertificateKeyFile
のパスを、ダウンロードされた正しい証明書(/etc/letsencrypt/live/t-goto-usa.com/
配下のファイル)に書き換えた。 -
ServerName t-goto-usa.com
を追記した。
-
-
問題: 証明書のダウンロードには成功したが、Apacheへの自動設定に失敗。
### 4.4. 仕上げ
目的: 設定を反映させ、サイトを完全にHTTPS化する。
-
Apacheの再起動: 編集した設定を反映させるため、
sudo systemctl restart apache2
を実行。 -
WordPress設定変更: WordPressの管理画面にログインし、「設定」>「一般」でサイトのURLを
http://
からhttps://
に変更。
以上が、今回の一連の流れです。お疲れ様でした!