【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发

news/2024/11/24 5:29:11/

在这里插入图片描述

文章目录

    • 实验架构图
    • 1. 准备实验环境
    • 2. 创建CloudFront分配、配置动、静态资源分发
      • 2.1 创建CloudFront分配,添加S3作为静态资源源站
      • 2.2 为CloudFront分配添加动态源站

在本实验——使用CloudFront进行全站加速中,将了解与学习Amazon CloudFront服务,配置Amazon CloudFront distribution分发Web应用,实现动态内容加速、静态内容缓存的功能,并了解如何控制缓存键(缓存策略)和源请求策略。

实验架构图

image-20231220144604560

1. 准备实验环境

点击下载本实验CLoudFormation模版 , 点击Cloudformation us-east-1,进入亚马逊云科技CloudFormation服务上传模版文件

将在美国弗吉尼亚区域(us-east-1)创建CloudFormation堆栈。该模版将创建实验中的Web服务所需资源:

  • 应用负载均衡器Application Load Balancer和Amazon EC2实例,作为API服务
  • S3存储桶,用于存放静态文件

image-20231220144839206

在指定堆栈详细信息页面,网络参数配置中,指定VPC,并选择2个此VPC中的公有子网,其余参数保持默认,点击下一步。

image-20231220145029749

配置堆栈选项页面保持默认设置,点击下一步,进入堆栈审核页面,勾选我确认,Amazon CloudFormation可能创建IAM资源,点击提交,CloudFormation将开始部署实验所需资源。

image-20231220145115846

等待部署完成,大约时间需要5分钟左右。

image-20231220145150167

状态显示CREATE_COMPLETE,显示部署完成。

image-20231220145453587

点击CloudFormation堆栈的输出标签,进入S3存储桶,上传index.html和infra.png文件。


点击输出,查看ALB、S3BucketConsole,有两个链接。

image-20231220145547451

点击S3BucketConsole存储桶的链接,选择上传以下两个配置文件,index.htmlinfra.png


index.html文件下载:点击下载index.html 文件,如下HTML内容。这个HTML文件使用iframe tag 调用了动态内容。实际上,当一个用户发出一个请求给index.html的时候,浏览器送出了一个对/api的子请求。


infra.png下载:点击下载infra.png

image-20231220145941979

提示上传成功

image-20231220150007447

查看此时该存储桶中拥有两个配置文件。

image-20231220150048252

验证实验环境

  • 验证ALB访问:点击CloudFormation堆栈的输出标签,获得ALB URL,在浏览器中打开ALB URL,如下图所示。

image-20231222195231296

2. 创建CloudFront分配、配置动、静态资源分发

开始创建CloudFront分配,并为该分配添加CloudFormation创建的S3存储桶和ALB两个源,分别作为静态资源、动态资源以测试CloudFront分发效果。

2.1 创建CloudFront分配,添加S3作为静态资源源站

  • 进入CloudFront控制台,点击创建CloudFront分配按钮。

  • 源域中,从下拉菜单中选择CloudFormation创建的S3桶。

  • 来源访问中,选择 来源访问控制(推荐),点击下方 创建控制设置 按钮,保持控制设置的默认选项,点击创建。 出于安全因素考虑,S3 存储桶创建时关闭了 public access 权限,所以我们设置了通过 CloudFront OAC(Origin Access Control)的方式来让 CloudFront 获取私有 S3 的内容。 如banner中提示,稍后创建完 CloudFront 初始化后,我们将获取到 Policy Statement,在后续的步骤我们再将 Policy Statement 更新到 S3 的存储桶策略设置中。

  • Web应用程序防火墙(WAF) 中,在本实验中选择 不要启用安全保护。

  • 默认根对象处,键入 index.html 。这会使得在访问CloudFront分配根目录时即能提供主页文件。

  • 其余选项保持默认,点击创建分配

image-20231220151512592

在创建完成分配后,回到分配概览页面,点击上方banner中复制策略按钮,并点击转到S3存储桶权限以更新策略进入S3存储桶权限页面,以更新OAC policy。

image-20231220151458769
image-20231221104823827

image-20231220151447659

验证CloudFront分配的静态资源缓存

待CloudFront分配部署成功,点击CloudFront分配域名,通过多次刷新页面可观察到在根目录/ 和 infra.png的响应header中,x-cache未hit from cloudfront,表示S3中的静态资源已被成功缓存在CloudFront边缘站点。由于此时我们未添加/api路径的源站,故对于/api的访问报错。

image-20231220151545167

验证CloudFront分配的动态资源分发

待CloudFront分配部署成功,点击CloudFront分配域名,通过多次刷新页面可观察到在/api路径的响应header中,x-cache始终为miss from cloudfront,表示CloudFront未缓存关于/api路径的请求,对于/api路径访问始终回到其源站。

image-20231221105728358

image-20231220152852374

2.2 为CloudFront分配添加动态源站

为CloudFront分配,添加ALB作为动态资源API源站

进入上一步创建的CloudFront分配,在源处点击创建源。

image-20231221110005994

源域中,从下拉菜单中选择CloudFormation创建的ALB,协议选择仅HTTP。点击创建源

image-20231221110137682
image-20231221110231031

在CloudFront分配额的行为标签中,点击创建行为

image-20231221110317608

其余选项保持默认,点击创建行为。

image-20231221110457220

image-20231221110529992

验证CloudFront分配的动态资源分发

待CloudFront分配部署成功,点击CloudFront分配域名,通过多次刷新页面可观察到在/api路径的响应header中,x-cache始终为miss from cloudfront,表示CloudFront未缓存关于/api路径的请求,对于/api路径访问始终回到其源站。

image-20231221111949742

修改ALB安全组(可选)

为了使得ALB HTTP 80端口访问不对公网开放、仅允许来自CloudFront的流量进入,可在ALB安全组中使用CloudFront托管前缀列表进行访问控制。在ALB的安全组入展规则中删除协议为HTTP、源为0.0.0.0/0的安全组规则,添加一条新的安全组规则,协议为HTTP,源为com.amazonaws.global.cloudfront.origin-facing的前缀列表。

image-20231221112116472

在这里插入图片描述


http://www.ppmy.cn/news/1278843.html

相关文章

STM32项目设计:智能门禁系统核心板版本 4种解锁方式

文章目录 一、项目简介二、原理图设计![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/809dd6c70b34425eb42f69187020c717.png)程序设计 哔哩哔哩视频链接: https://www.bilibili.com/video/BV1K64y1V7Y9?p4&spm_id_frompageDriver&vd_sourcee…

2023/12/21作业

思维导图 代码 .text .global _start _start: 灯1 gpio时钟使能 [4]->1 0x5000A28 LDR R0,0x50000A28 指定寄存器地址 LDR R1,[R0]将寄存器取出放到R1 ORR R1,R1,#(0x1<<4)将第四位设置为1 STR R1,[R0]读取R0寄存器到R1 PE…

ruoyi若依前后端分离版部署centos7服务器(全)

目录 VMware虚拟机 centos7 安装环境如下 一、msql 5.7 二、nginx1.23.3 三、java8 四、redis 3.2.1 五、部署若依前端 六、部署若依后端 前言 虚拟机的桥接与nat模式 : 重点 重点&#xff01;&#xff01;&#xff01; 无线不可以用桥接模式 &#xff0c;而你用了nat模式会…

负载均衡:一致性哈希解决了哪些问题?

在业务开发中&#xff0c;缓存服务和其他数据服务一样&#xff0c;需要满足高可用性&#xff0c;而高可用最常用的手段就是集群扩展。 缓存的集群高可用 目前 Redis 流行的集群方案有 官方 Cluster 方案、twemproxy 代理方案、哨兵模式、Codis 等方案&#xff0c;关于这几种方…

CSS新手入门笔记整理:CSS3动画

平移&#xff1a;translate() 语法 transform: translateX(x);    /*沿x轴方向平移*/ transform: translateY(y);    /*沿y轴方向平移*/ transform: translate(x, y);   /*沿x轴和y轴同时平移*/ 缩放&#xff1a;scale() 语法 transform: scaleX(x);    /*沿x轴…

Qt通用属性工具:随心定义,随时可见(一)

一、开胃菜&#xff0c;没图我说个DIAO 先不BB&#xff0c;给大家上个效果图展示下&#xff1a; 上图我们也没干啥&#xff0c;几行代码&#xff1a; #include "widget.h" #include <QApplication> #include <QObject> #include "QtPropertyEdit…

自定义通用物联网网关的MIB结构的参考

文章目录 说明参考代码开源项目地址 说明 由于时间有限&#xff0c;本人精力有限&#xff0c;所以给出的网关MIB结构&#xff0c;并非完美&#xff01;本文网关MIB结构的结构定义构思在使用MIB builder自定义物联网网关的MIB结构欢迎小伙伴&#xff0c;点赞、关注和评论&#…

vue-内网,离线使用百度地图(地图瓦片图下载静态资源展示定位)

前言 最近发现很多小伙伴都在问内网怎么使用百度地图&#xff0c;或者是断网情况下能使用百度地图吗 后面经过一番研究&#xff0c;主要难点是&#xff0c;正常情况下我们是访问公网百度图片&#xff0c;数据&#xff0c;才能使用 内网时访问不了百度地图资源时就会使用不了&…