はじめに
お世話になっていたAzureもそろそろ無料で利用できなくなるので Google Cloud Platform (以降GCP)に移行をしてみました。
GCPは、Google社が自社で提供しているサービスが実際に動いている基盤をクラウドサービスとして利用できるようになっているクラウドサービスです。特に安くて早いと評判ですね。GCPの目指すところは、運用入らずの「NoOps」ということなので運用も楽になるといいなと思っています。
GCP上では色々な方式でWordpressを動かすことが出来ますが今回は、Containerでするか、Google App Engineでするか、通常のVM(Google Compute Engine)で行うか悩んだのですが、まずは Google Compute Engine(GCE)で行ってみることにしました。
環境
移行前 Azure (VM)
- Standard DS1 (1 vcpu, 3.5 GB memory)
- Ubuntu 16.04 LTS
- Nginx(1.10.3-0ubuntu0.16.04.2) + php(7.0) + php-fpm + mySQL(5.7)
- Region : Japan East
移行後 Google Cloud Platform (GCE)
- f1-micro(vCPU x 1、メモリ 0.6 GB)
- Intel(R) Xeon(R) CPU @ 2.20GHz
- Ubuntu 17.10
- Nginx(1.12.1-0ubuntu2) + php(7.1) + php-fpm + mySQL(5.7)
- Region: asia-northeast1-a
PHPが少しだけバージョンが上がった事、OSの新しいリリースがその差になります。
移行の流れ
WordPressの以降についてはもう散々語られているので特に書くべきことはないのですが
- 元のサイトでバックアップの取得(今回は, BackWPup プラグインを利用しました)
- 新規サイト側でOSからMySQLいれてPHP動くところまで構築(普段使っている Ansible Scritpt で流した)
- バックアップを htdocsに展開、wp-config.phpを修正、mySQLを復元
- CDNで利用しているCloudFlareでサイトの方向を新規に切替
で動きました。
ちょっとメモ
MySQL5.7のメモリ利用量が多い
こちらで記載されていますが初期設定のメモリの量が増えている模様です、この設定無効化するオプションを /etc/mysql/conf.d/mysql.cnf
に追記しました。初期の導入中では、大きなサイズのインスタンスでインストールしていたので、メモリサイズを小さいインスタンスにしたらmySQLが起動せず気が付きました。ログを見るとAppArmorのエラーが出るのですがそもそも起動していたので関係ないのだと思います。
[mysqld]
performance_schema = off
CDNの構成
普段からCDNには、CloudFlare を利用しています。私みたいに、普段からちょいちょいサイトを移動する人にはこういったフロントエンドを利用しておくと切り替える時に便利です。このサービスはCDNと同時にDNSの管理もしてくれておりとても便利です。
- CloudFlare(CDN) -> { LB -> Instance Group -> wordpress_server }
という構成にしてみました。GCP上では1台なのですがLBの配下においています。したがって CloudFFlareに登録するIPアドレスは LBの「静的IP」を指定しています。
スペック不足..
やはりg1-small(vCPU x 1、メモリ 1.7 GB)に変更しています。もう少し時間が有る時に調べていきたいと思いますがメモリなさすぎて落ちまくっていました。定期的に何かのプログラムがメモリ食ってKillされているという流れ。事前に全く調べてなかったのですが Swapが指定されていないですね。 cat /proc/meminfo で確認するとSwapが0KBです。
sudo dd if=/dev/zero of=/swapfile bs=1024K count=1024
sudo mkswap /swapfile
sudo /sbin/swapon /swapfile
- [todo] 自動マウントさせようとしたけどなんか旨く動かないので後で確認する
- とりあえずは動いているのでf1-micro(vCPU x 1、メモリ 0.6 GB)で様子を見てみる。
ちなみにStackDriver使うとあとからでもログを管理コンソールから参照できてすごく便利
あとから調べたら結構似たような人は沢山いる。いま f1-micro(US)は1つまで無料なのですね。
まとめ
- スペックはIaaSとしてはCPUの性能比を除けばメモリサイズとなります。メモリが割当たっていれば当面は十分そうです。この辺はStackDriverなりの画面を後で見ながら確認して行こうと思います。
- 監視とかそのあたりの機能については出来ることを全部やってみてみたいと思います(特に StackDriverまわり)
.