WordPressとMySQLの2つのGCEインスタンスを内部IP接続させる

 

今回はGCEインスタンスを2つ使用して、ワードプレスサイトを構築してみたいと思います。

1つはMySQL専用で、もう1つはWordPress専用のものとして構成します。

これらを内部IPで通信させて、無事ワードプレスが使えるようにすることを目標とします。

 

こちら記事内容は勉強目的が大きいので、参考にしていただく際には自己責任でお願いします。

※マーケットプレイスに公開されているテンプレートを使用したほうが早く・楽に作成できます。

GCEインスタンス作成

Compute Engine>VMインスタンス>インスタンスを作成を選択し、以下のインスタンスを立ち上げます。

MySQL用インスタンス

デフォルトから以下の部分を変更します。

 

  • 名前をwp-mysqlにする
  • マシンのシリーズをN1、マシンタイプをf1-microにする
  • ブートディスクをUbuntu 18.04 LTS Minimalにする

 

MySQL用インスタンス設定

 

gcloudコマンドを使う場合は以下のようにできると思います。

gcloud compute --project=<your-project-id> instances create wp-mysql \
--zone=us-central1-a \
--machine-type=f1-micro \
--subnet=default \
--image=ubuntu-minimal-1804-bionic-v20210827 \
--image-project=ubuntu-os-cloud \
--boot-disk-size=10GB \
--boot-disk-type=pd-balanced \
--boot-disk-device-name=wp-mysql

 

WordPress用インスタンス

デフォルトから以下の部分を変更します。

 

  • 名前をwp-serverにする
  • マシンのシリーズをN1、マシンタイプをf1-microにする
  • ブートディスクをUbuntu 18.04 LTS Minimalにする
  • ファイアウォールのHTTPトラフックを許可するにチェックを入れる
  • ファイアウォールのHTTPSトラフックを許可するにチェックを入れる

 

WordPress用インスタンス設定
WordPress用インスタンス設定2

 

gcloudコマンドを使う場合は以下のようにできると思います。

gcloud compute --project=<your-project-id> instances create wp-server \
--zone=us-central1-a \
--machine-type=f1-micro \
--subnet=default \
--tags=http-server,https-server \
--image=ubuntu-minimal-1804-bionic-v20210827 \
--image-project=ubuntu-os-cloud \
--boot-disk-size=10GB \
--boot-disk-type=pd-balanced \
--boot-disk-device-name=wp-server

 

MySQLインスタンスの設定

MySQLインスタンスにmysqlをインストールします。

Compute Engine>VMインスタンスのページで wp-mysqlインスタンスへのSSHを選択します。

 

mysql-serverのインストールを行います。

$ sudo apt-get update
$ sudo apt-get -y install mysql-server-5.7

 

基本的なセキュリティ設定をします。ここでは以下のようにしておきます。

$ sudo mysql_secure_installation
# Would you like to setup VALIDATE PASSWORD plugin?
# Press y|Y for Yes, any other key for No: 
enter

# Please set the password for root here.
# パスワードを設定

# Remove anonymous users? (Press y|Y for Yes, any other key for No) : 
Y

# Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 
Y

# Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
Y

# Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 
Y

 

/etc/mysql/mysql.conf.d/mysqld.cnfにある設定ファイルbind-addressという項目をwp-mysqlインスタンスの内部IPアドレスに置き換えます。

$ sudo apt-get -y install vim # viコマンドが使えない場合
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# bind-address を wp-mysqlインスタンスの内部IPアドレスに置き換え

$ sudo service mysql restart

# mysqlに入れることを確認
$ sudo mysql -u root -p

 

ここで、wp-serverインスタンスの内部IPアドレスを調べておきます。

mysqlにユーザーを作成します。mysqlに入った状態にして以下を実行します。

mysql> CREATE USER 'user'@'<wp-serverの内部IP>' IDENTIFIED BY 'userpass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'<wp-serverの内部IP>' IDENTIFIED BY 'userpass';

 

mysqlにワードプレス用データベースを作成しておきます。

mysql> CREATE DATABASE wordpress;

 

ここまで来たらwp-mysqlインスタンスの外部IPは不要なので削除します。

Compute Engine>VMインスタンスのページで wp-mysqlインスタンスを選択します。編集をクリックし、以下の箇所を編集します。

  • ネットワーク インターフェースの外部 IPをなしにする

 

MySQL用インスタンスのネットワーキングを変更

 

WordPressインスタンスの設定

WordPressインスタンスにapacheとPHPとWordPressをインストールします。

Compute Engine>VMインスタンスのページで wp-serverインスタンスへのSSHを選択します。

 

apacheのインストール・起動を行います。

$ sudo apt-get update
$ sudo apt-get -y install apache2
$ sudo systemctl enable apache2 
$ sudo systemctl start apache2

$ curl http://<wp-serverの外部IPアドレス>
# htmlが表示される

 

次にWordPressに必要なPHPのインストールを行います。

$ sudo apt-get -y install php7.2 php7.2-mysql

$ php -v
# バージョンが表示される

 

次にWordPress本体をインストールします。

$ cd /var/www/html
$ sudo wget https://ja.wordpress.org/latest-ja.tar.gz
$ sudo tar xvf latest-ja.tar.gz
$ sudo chown -R www-data:www-data wordpress
$ sudo rm latest-ja.tar.gz

 

ここまできたらwp-serverインスタンスの外部IPアドレスにアクセスすることで、ワードプレスページを表示させることができます。

http://<wp-serverインスタンスの外部IP>/wordpress

 

ワードプレスの初期設定

 

http://<wp-serverインスタンスの外部IP>/wordpress

にアクセスすることで、以下のページが表示されます。「さあ、始めましょう!」を選択します。

WordPressの設定開始ページ

 

データベース接続設定ページが出ますので、先程作成した、データベース名・ユーザー名・パスワード・MySQL用インスタンス名(wp-mysql)を入力します。

WordPressのデータベース接続設定ページ

 

接続に成功すると、サイトの設定ページが出ますので、そちらを好みの設定にしましょう。

WordPressのサイト設定ページ

 

その後もう一度トップページ(http://<wp-serverインスタンスの外部IP>/wordpress)にアクセスすると、無事ページが表示されていました。

ワードプレスデフォルトトップページ

 

最後に

 

無事、2つのGCEインスタンスを利用してワードプレスを動かすことができました。

マーケットプレイスから導入した場合と比べて、設定することが多く大変だった印象でしたがカスタマイズしていくことは勉強になるかなとは思いました。

もし今後使うことがなければ、課金されないようにプロジェクトごと削除など使用しているリソースを削除しておくことを忘れないようにしましょう。

 

Google Cloud Platformの最新記事4件