最新消息:点击查看大S的省钱秘笈

博客迁移至GCP(Google Cloud Platform)

WordPress Slyar 225浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

去年10月把博客迁移到AWS(Amazon Web Services)并移除了https,流量开始恢复正常,一切都运行的非常好,本来我是没想着要换的,因为换平台真的好麻烦。然而前几天博客被DOS,就是上图最后面的那个dip,让我意识到这台VM实在是太脆弱了,昨天说不行搞一下RDS+S3+Docker吧结果预测了一下价格要好几百刀每个月,用不起,又看了一下VM升级,也好贵。。。现在工作跟GCP(Google Cloud Platform)关系比较密切,再加上GCP刚好也有$300 1y Free Tier,索性下定决心迁移了。。。(人穷志短XD)

迁移之前先说一下这一年用AWS Free Tier的感受吧。基本款,t2.micro (1 vCPU, 1.0 GB memory),位置us-west-2b (US West (Oregon))

稳定性极佳,稳定运行一年无宕机,即使被DOS也只是PHP-FPM死的比较惨,系统还是正常运行的

[root@aws-slyar-com ec2-user]# uptime
21:01:34 up 378 days, 11:03, 1 user, load average: 0.00, 0.01, 0.05

价格嘛,Free Tier本来就免费,就是收了点EBS的流量费,当然一年以后的费用基本$15起

Date Method Amount
11/3/16 CreditCard $0.13
12/3/16 CreditCard $0.79
1/4/17 CreditCard $1.31
2/4/17 CreditCard $1.12
3/3/17 CreditCard $1.08
4/3/17 CreditCard $1.45
5/3/17 CreditCard $1.09
6/3/17 CreditCard $1.22
7/3/17 CreditCard $1.06
8/3/17 CreditCard $1.33
9/11/17 CreditCard $1.96
10/3/17 CreditCard $1.82

AWS美国服务器速度还可以,国内访问比较慢,需要CDN辅助,其他国家无压力

GCP这边一开始是想着用Kubernetes做 1x Persistent Disk + 1x master DB + 1x slave DB + Cloud Storage + 2x WordPress docker container + 2x Apache docker container + Load Balancer,但是依然是成本问题。。。一套下来也是几百刀一个月,即使精简拓扑也要超过200刀,扛不住。 最后还是选了Compute Engine,n1-standard-1 (1 vCPU, 3.75 GB memory),大约$30/月

GCP新建VM也很简单,选好类型、所在区域和镜像,几分钟就建好了,而且新建服务器的时候就可以上传ssh key之后直接ssh,不像aws还要下载pem,烦人。这里有个小插曲,一开始我选的区域是us-central1-b(Iowa),在我装好LNMP配好各种服务以后,我测试了一下国内的连接速度,然后。。。全部超时(尴尬) 好了现在来讲一下如何在GCP上面迁移region (迁移zone很简单一条命令就搞定了 https://cloud.google.com/compute/docs/instances/moving-instance-across-zones):

1.给当前VM创建一个snapshot
2.用这个snapshot创建一个disk
3.用这个disk创建一个image
4.用这个image创建一个新的VM,选择你要的region和zone就好了

在测试了Singapore、Taiwan和Tokyo之后我选择了Taiwan...

完成之后,直接从AWS拷贝所有的文件到GCP上

配置文件放配置目录,网站文件放网站目录,如果权限不对记得给Wordpress目录重置权限

数据库从MySQL换成MariaDB,格式一样没所谓随便导入导出,提前新建好空的数据库

都配置好后DNS一改网站就能访问了

缓存之前用的是WP Super Cache,因为EBS用的是SSD所以I/O不是问题,现在硬盘不是SSD了但是内存增加了很多,所以就考虑使用内存型缓存了。之前有启用Memcached,现在决定彻底把WP Super Cache换成基于Memcached的缓存形式。简单说就是一个存放在内存里的key-value键值对HashMap,第一次访问页面的时候查询数据库生成动态页面存储在内存里,之后全部由内存直接返回。为了取代WP Super Cache,这里需要另外一个插件配合object-cache.php使用,就是batcache

简单说一下方法:

1. 阅读这篇文章完成Memcached和Memcached Object Cache的安装《同时启用WP Super Cache和Memcached Object Cache》,不要启用或者禁用WP Super Cache

2. 下载"advanced-cache.php"和"batcache.php",Github

3. 将"advanced-cache.php"上传到"/wp-content/",将"batcache.php"上传到"/wp-content/plugins/"

4. 在wp-config.php的头部写入"define('WP_CACHE', true);"以激活Cache功能,去掉引号,完成。

5. 参数可以在advanced-cache.php里面修改,缓存时间默认300s,太短,3600s差不多了

新开一个浏览器,不要登录WP(batcache只给游客缓存,管理员需要实时查看文章更新结果等所以不缓存),刷新2次页面(batcache默认只缓存120s内打开2次的页面),查看源代码,可以在上面看到缓存信息

GCP的Load Balancer也挺好玩的,下次更新

转载请注明:Slyar Home » 博客迁移至GCP(Google Cloud Platform)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 网站速度比之前快快了很多,大S 你现在还在Paypal 上班吗?
    rednik2周前 (11-03)回复
  2. 大S博客又搬家啦,速度好像是快了点
    迷妹2周前 (11-01)回复