HEARTBEATS

こんにちは。CTOの馬場です。

このエントリはGoogle Cloud Platform Advent Calendar 2014の18日目です。

濃いエントリばかりのなかで恐縮ですが、 カンタン方向に寄せて「クリックデプロイ」を使ってWordPressをインストールしてみます。

クリックデプロイでLEMPスタック(Linux, Nginx, MySQL, PHP)とphpMyAdminをインストールし、さらにWordPressをインストールします。

まずはブラウザでGoogle Cloud Consoleにアクセスします。 やりかたがわからないかたは Google Cloud Platformをはじめようチュートリアル #gcpja - インフラエンジニアway - Powered by HEARTBEATS を参考にしてください。

コンソールにアクセスしたらプロジェクトを選択(なければ作成)し、 計算処理 > クリック デプロイ を選択します。

クリックデプロイ

ブラウザから、ソフトウェアをインストール済みのGCEインスタンスを起動できる仕組みです。

今のところ、割と個性的なプロダクトが多くラインナップされています。

gce-wp01.png

gce-wp02.png

WordPressを使うにはLEMPもしくはLAMP(Linux, Apache, MySQL, PHP)を使いましょう。私はNginxが好きなので今回はLEMPを使うことにします。

LEMPの枠の 移動 ボタンを押すと詳細画面に移動します。 ここでインストールの設定をします。 phpMyAdminが必要な場合はここでチェックを入れておきましょう。

gce-wp03.png

gce-wp04.png

なお DATA DISK TYPE はSSDも選択できます。

gce-wp05.png

詳細オプションを表示すると、所属させるネットワークや起動するインスタンスのインスタンス名prefixを指定できます。 ちょっとお試しなら特に変更する必要はないでしょう。

gce-wp06.png

Deploy LEMP Server ボタンを押すとデプロイが始まります。 デプロイの進捗はブラウザ上に表示され、随時更新されます。

gce-wp07.png

ここでしばし待ちます。 インスタンスの起動は速いのですが、デプロイは少し時間がかかりました(今回は5分程度)。

完了したら画面がこのようになります。 ここで次に選ぶべきは Compute Engine Instance List です。 うっかり Delete server しないように気をつけてください。

gce-wp08.png

これで起動は完了です!

インスタンス一覧から、今回起動した lemp-xxx-xxx というインスタンスを選択しましょう。 ネットワークHTTP トラフィックを許可する にチェックをつけるとHTTPでアクセスできるようになります。

gce-wp09.png

なお、この画面の一番上の SSH ボタンを押すと、ブラウザからインスタンスにSSH接続できます。これはいい。

gce-ssh01.png

gce-ssh02.png

起動したインスタンスの中を見てみる

ログインして色々見てみます。

OSは Debian 7.7 (wheezy) です。 指定したPersisttence Diskは /lemp にマウントされています。

Nginxのドキュメントルートである /usr/share/nginx/www/lemp へのシンボリックリンクになっています。


root@lemp-y5yg:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.7 (wheezy)
Release:        7.7
Codename:       wheezy
root@lemp-y5yg:~# cat /proc/mounts | grep ^/
/dev/disk/by-uuid/68c02a3a-9b6a-4dd0-b36b-6a93b5931ac0 / ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/sdb /lemp ext4 rw,relatime,user_xattr,barrier=1,data=ordered,discard 0 0
root@lemp-y5yg:~# df -h
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  9.9G  1.2G  8.3G  13% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   171M  124K  171M   1% /run
/dev/disk/by-uuid/68c02a3a-9b6a-4dd0-b36b-6a93b5931ac0  9.9G  1.2G  8.3G  13% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   342M     0  342M   0% /run/shm
/dev/sdb                                                 99G  188M   94G   1% /lemp
root@lemp-y5yg:~# ls -al /usr/share/nginx/www
lrwxrwxrwx 1 root root 5 Dec 18 00:00 /usr/share/nginx/www -> /lemp

起動しているのは MySQL、php-fpm、Nginxです。


root      6725  0.0  0.0   4184   732 ?        S    00:00   0:00 /bin/sh /usr/bin/mysqld_safe
mysql     7052  0.1  2.4 363112 42988 ?        Sl   00:00   0:00  \_ /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plug
root      7053  0.0  0.0   4092   636 ?        S    00:00   0:00  \_ logger -t mysqld -p daemon.error
root      8503  0.0  0.2 140244  4896 ?        Ss   00:00   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data  8504  0.0  0.2 140244  4308 ?        S    00:00   0:00  \_ php-fpm: pool www
www-data  8505  0.0  0.2 140244  4308 ?        S    00:00   0:00  \_ php-fpm: pool www
root      8922  0.0  0.0  78412  1408 ?        Ss   00:00   0:00 nginx: master process /usr/sbin/nginx
www-data  8924  0.0  0.0  78708  1720 ?        S    00:00   0:00  \_ nginx: worker process
www-data  8925  0.0  0.0  78708  1720 ?        S    00:00   0:00  \_ nginx: worker process
www-data  8926  0.0  0.0  78708  1720 ?        S    00:00   0:00  \_ nginx: worker process
www-data  8927  0.0  0.0  78708  1720 ?        S    00:00   0:00  \_ nginx: worker process

Nginxはパッケージの nginx-full で、1.2.1でした。


root@lemp-y5yg:~# dpkg -l | grep -i nginx
ii  nginx                              1.2.1-2.2+wheezy3            all          small, powerful, scalable web/proxy server
ii  nginx-common                       1.2.1-2.2+wheezy3            all          small, powerful, scalable web/proxy server - common files
ii  nginx-full                         1.2.1-2.2+wheezy3            amd64        nginx web/proxy server (standard version)

PHPはパッケージの5.4.35でした。 php5-cli は入っていないので php コマンドはインストールされていません。


root@lemp-y5yg:~# dpkg -l | grep -i php
ii  php5-common           5.4.35-0+deb7u2      amd64  Common files for packages built from the php5 source
ii  php5-fpm              5.4.35-0+deb7u2      amd64  server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php5-gd               5.4.35-0+deb7u2      amd64  GD module for php5
ii  php5-mcrypt           5.4.35-0+deb7u2      amd64  MCrypt module for php5
ii  php5-mysql            5.4.35-0+deb7u2      amd64  MySQL module for php5
ii  phpmyadmin            4:3.4.11.1-2+deb7u1  all    MySQL web administration tool

MySQLは5.5.40でした。


root@lemp-y5yg:~# dpkg -l | grep -i mysql-server
ii  mysql-server          5.5.40-0+wheezy1     all    MySQL database server (metapackage depending on the latest version)
ii  mysql-server-5.5      5.5.40-0+wheezy1     amd64  MySQL database server binaries and system database setup
ii  mysql-server-core-5.5 5.5.40-0+wheezy1     amd64  MySQL database server binaries

Listen Portは80, 3306です。HTTPSはデフォルトではセットアップされません。


root@lemp-y5yg:~# ss -ln
State      Recv-Q Send-Q                                  Local Address:Port                                    Peer Address:Port
LISTEN     0      50                                          127.0.0.1:3306                                               *:*
LISTEN     0      128                                                 *:80                                                 *:*
LISTEN     0      128                                                :::22                                                :::*
LISTEN     0      128                                                 *:22                                                 *:*

設定ファイルをひと通り見てみましたが、特別にチューニングされている感じはありませんでした。

WordPressをインストール

それではいよいよWordPressをインストールします。 まずはブラウザでphpMyAdminにアクセスして、データベースとユーザを作成します。

ブラウザで http://グローバルIP/phpMyAdmin/ にアクセスしてください。もし接続できない場合にはインスタンス詳細画面で ネットワークHTTP トラフィックを許可する にチェックがついているか確認してみてください。

ユーザ名は root 、パスワードはクリックデプロイのときに入力したものです。

gce-wp10.png

ログインできたら データベース を選択します。

gce-wp11.png

今回は wordpress という名前で作成しました。

gce-wp12.png

次に 特権 に移動して新しいユーザを作成します。

gce-wp13.png

これで準備は完了です。

次にSSHで作業します。先ほどのコンソールを開いて以下のコマンドを入力してください。

  1. rootユーザに昇格
  2. もともと配置されている index.html を削除
  3. WordPress(4.0.1-ja)をダウンロードして/tmpに解凍
  4. 解凍したファイルをwww-dataユーザ権限に変更
  5. ドキュメントルートにコピー

しています。


sudo su -
rm /usr/share/nginx/www/index.html
curl -kL https://ja.wordpress.org/wordpress-4.0.1-ja.tar.gz | tar zxf - -C /tmp
chown -R www-data:www-data /tmp/wordpress
cp -a /tmp/wordpress/* /usr/share/nginx/www/.

これでファイルの配置も完了です。

ブラウザで http://グローバルIP/ にアクセスしてください。

gce-wp14.png

あとはウィザードに従ってインストールしていくだけです。おつかれさまでした!

注意事項1

OSのタイムゾーンが UTC+0:00 です。時刻指定公開などがいまいちうまく動かない感じがするときは、WordPressの設定でタイムゾーンを UTC +9:00 に変更してください。

gce-wp15.png

注意事項2

WordPressの管理画面やphpMyAdminをそのままにしておくと狙われやすいので、接続元制限などのセキュリティ強化策を実施してください。 いまいちよくわからない・自信がない・プロに任せたい方は弊社までご用命くださいませ

まとめ

最先端の使い方をしなくてもGCPは便利ですよ!

ぜひご活用ください。

株式会社ハートビーツの技術情報やイベント情報などをお届けする公式ブログです。



ハートビーツをフォロー

  • Twitter:HEARTBEATS
  • Facebook:HEARTBEATS
  • HATENA:HEARTBEATS
  • RSS:HEARTBEATS

殿堂入り記事