将我的博客迁移到亚马逊云端(2)

本文涉及的产品
.cn 域名,1个 12个月
简介: 上篇文章中讲了将我的Octopress博客部署到亚马逊的S3上。而这篇文章则主要讲如何使用亚马逊提供的CloudFront作为内容分发并将自己的独立域名绑定到此CloudFront上。 首先,需要启用亚马逊的CloudFront。

img_a1adc4a1f922139a325d6f501c479b9b.png

上篇文章中讲了将我的Octopress博客部署到亚马逊的S3上。而这篇文章则主要讲如何使用亚马逊提供的CloudFront作为内容分发并将自己的独立域名绑定到此CloudFront上。

首先,需要启用亚马逊的CloudFront。我刚开始以为只需要‘sign up’就行。但是当我在’AWS Management Console’中点击‘Services’中的CloudFront时,却得到了‘Account Blocked’错误。

img_b370aa2f820c28469a5253daf335b48d.png

这个问题很奇怪,CloudFront明明已经在’ Services You’re Signed Up For’ list中了,但是咋个无法使用那?我只好使用gmail给Amazon客服中心发了邮件询问,结果客服中心告诉我需要使用一个business email(商业邮箱)来发送激活申请。我只好使用公司邮箱发送了申请,过了几个小时就收到了回信,告诉我已经可以使用了。

登陆’AWS Management Console’后,点击’Services’中的‘CloudFront’,就可以看到控制界面了。

img_ac75ae889b433a181229eac672fcd8fc.png

点击’Create Distribution’按钮,Delivery method选择Download。 Download主要针对一些html,css,js等静态文件,而Streaming则主要是一些音视频文件。

img_805efae507e9dc668ef53449ae5352f1.png

下一步,要选择Origin,即要进行内容分发的源。虽然亚马逊会自动列出你的S3 bucket,但是千万不要选。而是自己手动输入example.com这个Bucket的Endpoint(Endpoint在S3 Console的Properties标签下的Static Website hosting里看得到)。为什么不直接选S3 bucket那?这是因为当我们访问一个目录时,我们期望能返回默认的object。虽然CouldFront有个Default Root Object设置,只是对根目录起作用,对子目录不起作用。如果使用Bucket的Endpoint,再加上之前已经给该Bucket配置了Default Object,就可以解决这个问题。

img_c6ac295d759783e5675cbeaccc6ec833.png

在CNAMEs项中输入自己的域名,多个域名以逗号分隔。

img_e7605178df1c8bb3445c7963b6a7c7f9.png

这样子CoudFront就算配置好了。通过管理页面也可以配置Error page等。

img_edcf335cc563ceb66b73c1fa7d71454f.png

接下来,需要登录自己域名的提供商的管理后台,添加一条自己独立域名的转发,转发到这个CloudFront的Domain Name上。

img_924a64b6d3a5ba917b71cfb088d76e86.png

一般需要10分钟到2个小时等待新的域名转发设置生效。

另外要专门提一下CloudFront的cache机制。CloudFront主要通过检测Origin中的http header中的cache-control属性。根据cache-control的值来设置cache时间。但是CloudFront最长只保留24小时的cache,过后就会清空并重新cache。对于我的小博客来说24小时太长了,那如何给Octopress注入cache-control这个http header那?其实在上篇文章已经提过了。S3支持给每个object设置 http header,我们可以通过s3cmd来自动设置,这就是为什么在S3 task中要加入这个参数。

1
2
3
4
5
desc "Deploy website via s3cmd"
task :s3 do
  puts "## Deploying website via s3cmd"
  ok_failed system("s3cmd sync --acl-public --reduced-redundancy --add-header \"Cache-Control: max-age=#{s3_cache_secs}\"  public/* s3://#{s3_bucket}/")
end

其中S3_cache_secs就是设置cache时间,我把它设置为3600,也就是一个小时。

至此,我的Octopress博客已经在云端了。感觉访问速度比以前快不少。以前我是部署在github pages,服务器放置在美国。现在使用了CloudFront,亚马逊会自动将请求转发到最近的CloudFront edge location。接下来我再研究下 Amazon Route 53,看看有什么好玩的。

我的博客地址: http://www.huangbowen.net

相关文章
|
存储 SQL 数据库
PingCAP CTO黄东旭:在全球化和多云环境中看开源软件的商业化探索
PingCAP CTO黄东旭:在全球化和多云环境中看开源软件的商业化探索
105 0
PingCAP CTO黄东旭:在全球化和多云环境中看开源软件的商业化探索
|
人工智能 云计算 虚拟化
12个最大云提供商的市场占有率(译文)
虽然竞争非常激烈,但IaaS市场仍然巨大。根据Synergy Research Group的数据,2022年第三季度企业在IaaS上的总支出比2021年第三季度增加了110多亿美元,超过570亿美元。
530 0
|
容灾
《云迁移与云容灾-企业迁移公共云的网络之道》电子版地址
云迁移与云容灾-企业迁移公共云的网络之道
88 0
《云迁移与云容灾-企业迁移公共云的网络之道》电子版地址
|
NoSQL API Redis
全球主流云厂商首发|阿里云Redis7.0正式发布
2022年6月1日,阿里云Redis 7.0正式发布。Redis7.0版本是Redis历史上改变最多的一个大版本,阿里云快速跟进,凭借强大的云服务与管控能力,仅用一个月时间,即实现了全球主流云厂商首发。
745 3
全球主流云厂商首发|阿里云Redis7.0正式发布
|
物联网 开发者
阿里云“银河”来了 支持开发者全球设备分发
全球化大趋势下,越来越多的企业拥有海外业务,然而在各种实际应用场景中,客户会经常遇到以下情况: 1、大陆企业开发的设备,可能会被消费者拿去在欧美区域使用(设备跨地域接入) 2、企业A为企业B订制了一批设备,企业B要求把设备+云端服务做整体交割(设备跨实例、跨账号分发)
307 12
阿里云“银河”来了 支持开发者全球设备分发
|
存储 弹性计算 运维
阿里云麒麟部署平台介绍
阿里云麒麟部署平台介绍
1223 0
阿里云麒麟部署平台介绍
|
NoSQL API Redis
全球主流云厂商首发 | 阿里云Redis7.0正式发布
阿里云Redis 7.0正式发布。Redis7.0版本是Redis历史上改变最多的一个大版本,阿里云快速跟进,凭借强大的云服务与管控能力,仅用一个月时间,即实现了全球主流云厂商首发。
726 0
全球主流云厂商首发 | 阿里云Redis7.0正式发布
|
存储 运维 Cloud Native
一款云迁移产品的成长史
从实现多云迁移到实现对Apsara Stack自动化迁移的全面支持,万博智云为自己的产品开启了顶级流量入口,获取客户信任的时间更短。
271 0
一款云迁移产品的成长史
在线揭秘 | 阿里云混合云重磅发布
6月9日,2020阿里云线上峰会在线揭秘,敬请关注!
634 0
在线揭秘 | 阿里云混合云重磅发布
|
安全 关系型数据库 MySQL
【阿里云新品发布·周刊】第32期:上云后,数据还安全吗? 基于OSS的云上统一数据保护2.0方案发布会
点击订阅新品发布会! 新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多内容,了解更多 云上存储数据保护2.0发布会 “上云后,数据还安全吗”成为越来越多企业关注的问题。云上数据存储到底安全在哪里,面对不同的数据威胁如何应对,针对不同的数据保护需求又如何满足。
1760 0
【阿里云新品发布·周刊】第32期:上云后,数据还安全吗? 基于OSS的云上统一数据保护2.0方案发布会