简单设置 Amazon CloudFront

1 简介

Amazon CloudFront 是亚马逊云服务的内容分发网络服务,即CDN(Content Delivery Network),

详细介绍 https://aws.amazon.com/cn/cloudfront/

价格介绍 https://aws.amazon.com/cn/cloudfront/pricing/

CloudFront 一般主要为两种 Origin 提供内容分发, 即 Amazon S3 和 Elastic Load Balance。

2 为 Amazon S3 设置CloudFront

2.1 设置 Amazon S3

可以使用默认设置创建一个 S3 Bucket, 创建的Bucket默认将不允许被公开访问, 详细其他设置可搜寻并参见具体设置方法。

在 Amazon S3 上传一个文件如 1.txt, 上传后, 点击该文件, 点击 Permissions -> Edit, 在 Everyone (public access) 为 Objects 勾上 Read, 设置该文件为公开访问。

2.2 设置 CloudFront

CloudFront 里点击 ‘Create Distribution', 打开后在 'Origin domain' 里选择你创建的 Amazon S3 名字,  在 'Name' 里为你的 CloudFront 定义一个名字 mycloudfront。

如果只使用 HTTPS, 在 Defaut cache behavior -> Viewer -> Viewer protocol policy 选择 HTTPS only。

在 Cache key and origin requests 选择 Cache policy and origin request policy, Cache plicy 选择为S3 默认的 CachingOptimized。

如果要使用自定义的域名, 在 ’Altermate domain name (CNAME)' 部分点击 ‘Add item', 输入域名如 www.mys3cloudfront.com, 在 ’Custom SSL certificate' 里上传SSL 证书。

其他为默认设置,点击最下方按钮 Create distribution, 返回等待它部署完成。

为了用自定义的域名直接访问, 在你的 DNS 服务商那建立 www.mycloudfront.com 与 这个 CloudFront 的域名, 如 xxxxxxxx.cloudfront.net 的映射。 映射生效后,可在浏览器上输入 https://www.mys3cloudfront.com/1.txt 下载之前创建的 Amazon S3 里上传的 1.txt。 如果没有自定义域名, 可在浏览器上输入 https://xxxxxxxx.cloudfront.net/1.txt 下载 1.txt。

2.3 更新文件

Amazon S3 里上传的文件为静态文件, 如果需要 CloudFront 的所有结点更新该文件要让原来的文件无效 (Invalidation), 否则只在 Amazon S3 上传更新了文件后, 用户通过 CloudFront 链接下载的仍然是旧文件。 步骤为:

-  在Amazon S3 上传一个新的 1.txt

- 在 CloudFront 里点击创建的 mycloudfront -> Invalidations -> Create invalidation, 输入 /1.txt ,

- 点击 Create invalidation

等待重新部署后, 即可下载最新的 1.txt 

3 为 Elastic Load Balance 设置 CloudFront

3.1 设置 EC2

建立 EC2 的一个 Instance, 在该 Instance 里设置自定义域名(需要有该域名的SSL证书) www.myelbcloudfront.com。

3.2 设置 Target groups

在 Load Balancing -> Target Groups 里点击 Create target group, 打开后输入名称 mytg, 在 VPC 里选择 Instance 在的 VPC 地址, Health checks -> Health check path 里设置一个健康检查的URL。

3.3 设置 Load balance

在 Load Balancing -> Load balancers 里点击 Create load balancer, 点击 Network Load Balancer 下的 Create。 打开后在 Load balancer name 里输入名称 mybl。 

在 VPC 里选择 Instance 在的 VPC 地址, Mappings 里选择 Instance 在的 Avalibility Zone, 选择一个 Subnet 。 如需要Elastic IP address (静态 IP地址), 在 IPv4 settings 里选择一个空余有效的。

在  Listener -> Protocol 选择 TLS (如只需要 HTTPS) , 在 Default action 里选择刚创建的 Target group : mytg。

点击最下方 Create load balancer。

3.4 设置 CloudFront

设置与 Amazon S3 的 CloudFront 基本一致, 不一致的为:

- 在 Origin domain' 里选择你创建的 Load balancer 名称

- Allowed HTTP methods 里选择 GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE

- Cache key and origin requests 选择 Legacy cache settings -> Headers -> Include the following headers, Add header 里选择 Host, Query strings 里选择 All 或者你指定的 Query String,这样在 CloudFront 里请求的 Host 和 Get 的请求参数都能传递到 EC2。

为了用自定义的域名直接访问, 在你的 DNS 服务商那建立 www.myelbcloudfront.com 与 这个 CloudFront 的域名, 如 xxxxxxxx.cloudfront.net 的映射。 映射生效后,可在浏览器上输入 www.myelbcloudfront.com 访问该网站。 如果没有自定义域名, 可在浏览器上输入 https://xxxxxxxx.cloudfront.net 访问它。

参考: AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动+静分离站点_wzlinux的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值