最近把博客从 Farbox 迁到了亚马逊的 AWS 平台上,其实迁出已经有一段时日了,今天有空就写写相关的细节。
之前博客一直托管在 Farbox,然后通过 Dropbox 来同步更新文章。Farbox 其实是一个很不错的服务,方便,轻巧,可谓是物廉价美,开启了 CN 加速服务之后,大陆的访客访问的是香港 Rackspace 的机房,速度和稳定性都还可以,但是缺点也是无法掩饰的:不支持 SSL 加密,不能配合 CDN 使用,无法很好地解决根域名的 CNAME 和 MX 记录会冲突的问题,可自定义的东西也少,所以权衡之下决定迁出自建。
选用了 Hexo 作为博客的静态化生成器,一直很喜欢 Hexo,其实喜欢 Hexo 的一大原因就是因为静态博客很好部署,不依赖数据库,不依赖服务器。
大部分 Hexo 使用者都喜欢部署在 Github 上,但是这样的话稳定性和速度不能保证,在国内老是会抽风,而且不能部署 SSL 防止运营商劫持和中间人攻击,所以决定架设在自己的服务器上,对于服务器选择的这一块,做过很多尝试,使用过 阿里云 HK B区,Google Cloud Platform,Azure HK 等等方案,但是后来考虑到静态博客其实没必要对服务器这块要求很高,所以没采用服务器部署的方案。
经过试验和斟酌,最后决定把 Hexo 生成的静态博客部署在 AWS S3,然后通过 AWS Cloudfront 的 CDN 服务来加速全球访问速度。
因为我之前一直使用的个人域名 jiahui.im
上面跑着很多服务,有很多服务需要保持高可用性,所以新的博客使用了新的域名,和原来的域名独立开,以保持稳定和安全性。几经折腾,终于把一直心心念念的 log.my
这个域名收入囊中,.my
这个域名后缀是属于马来西亚的顶级域名,只开放给马来西亚的实体注册。
目前所使用的产品选型如下:
- 域名: 注册于 yeahhost.com.my
- DNS: Dyn Managed DNS 和 NSONE
- 文件存储: AWS S3
- CDN : AWS CloudFront
- SSL 证书: AWS ACM
这样的一套部署方案其实很合算,S3 和 CloudFront 每个月的花销都很少,最贵的就是 DNS 解析这一块了,选用了个人认为最好的方案,DynECT 作为 Master DNS Server ,NSONE 作为 Slave DNS Server,关于这个我会新写一篇文章讲述一下其中实现的技术细节。