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

在这里插入图片描述

文章目录

    • 实验架构图
    • 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.hqwc.cn/news/295071.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】Spring data JPA整合ShardingSphere-JDBC静态读写分离实现

大佬栽树,我乘凉 许大仙老师:【yuque.com/fairy-era/yg511q/ud9uli67b6gxgdh7】 开整 数据库准备 一主两从 数据库脚本 CREATE DATABASE IF NOT EXISTS dbtest CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE dbtest; -- 创建表 CREATE TA…

论文查重率高如何快速降重 papergpt

大家好,今天来聊聊论文查重率高如何快速降重,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 论文查重率高如何快速降重 当论文查重率过高时,需要快…

骑砍战团MOD开发(24)-module_particle_system粒子系统

一.粒子实现方式 创建2D平面模型作为粒子基本单元,系统预制平面在particle_meshes.brf文件中,通过particle_blend着色器实现粒子透明度和着色效果. #雨点粒子平面 prtcl_rain #雪粒子平面 prtcl_snow #烟尘粒子平面(马匹奔跑时产生) prtcl_dust_a prtcl_dust_b #火焰粒子平面 …

汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?

M24C64-DRMN3TP/K是一款64 Kbit串行EEPROM汽车级设备,工作温度高达125C。符合汽车标准AEC-Q100 1级规定的极高可靠性。 该设备可通过一个高达1MHz的简单串行I2C兼容接口访问。 存储器阵列基于先进的真EEPROM技术(电可擦除可编程存储器)。M2…

DETR++: Taming Your Multi-Scale Detection Transformer论文解读

文章目录 前言一、摘要二、引言三、相关研究四、模型方法1、Removing the Encoder方法2、Multi-Head方法3、Shifted Windows方法4、Bi-directional Feature Pyramid方法5、DETR方法 五、实验结果总结 前言 今天查看了一篇DETR论文,本想网络上找博客大概浏览一下&am…

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…

【飞凌 OK113i-C 全志T113-i开发板】一些有用的常用的命令测试

一些有用的常用的命令测试 一、系统信息查询 可以查询板子的内核信息、CPU处理器信息、环境变量等 二、CPU频率 从上面的系统信息查询到,这是一颗具有两个ARMv7结构A7内核的处理器,主频最高1.2GHz 可以通过命令查看当前支持的频率以及目前所使用主频 …

C++ 之LeetCode刷题记录(一)

😄😊😆😃😄😊😆😃 从今天开始cpp刷题之旅,多学多练,尽力而为。 先易后难,先刷简单的。 1、两数之和 给定一个整数数组 nums 和一个整数目标值…

【笔记】Spring的循环依赖

Spring的循环依赖 ObjectFactory:函数式接口,可以将lambda表达式作为参数放在方法的实参种,在方法执行的时候,并不会实际的调用当前lambda表达式,只有在调用getObject方法的时候才回去调用lambda表达式 为什么spring要用三级缓存…

青少年CTF-qsnctf-Web-include01include02(多种方法-知识点较多-建议收藏!)

PHP常见伪协议 php://filter是PHP中独有的一种协议,它是一种过滤器,可以作为一个中间流来过滤其他的数据流。通常使用该协议来读取或者写入部分数据,且在读取和写入之前对数据进行一些过滤,例如base64编码处理,rot13处…

TrustZone之与非安全虚拟化交互

到目前为止,我们在示例中忽略了非安全状态中可能存在的虚拟化程序。当存在虚拟化程序时,虚拟机与安全状态之间的许多通信将通过虚拟化程序进行。 例如,在虚拟化环境中,SMC用于访问固件功能和可信服务。固件功能包括诸如电源管理之…

maven完结,你真的学完了吗

书接上文:必学的maven的起步-CSDN博客 分模块开发与设计 分模块开发: 创建模块书写代码模块 模块中需要其他的模块,就将他安装到仓库然后再dep中导入依赖通过maven指令安装模块到本地仓库(install) 聚合与继承 聚合…