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

news2025/3/7 8:48:44

在这里插入图片描述

文章目录

    • 实验架构图
    • 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.coloradmin.cn/o/1328931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Amazon 实验③】验证源请求策略将特定的请求信息转发至源站

文章目录 1. 使用源请求策略1.1 什么是源请求策略1.2 源请求策略和缓存策略的关系 2. 实验:验证源请求策略将特定的请求信息转发至源站 接上一篇文章【Amazon 实验②】使用缓存策略及源请求策略,用于控制边缘缓存的行为及回源行为,本篇文章主…

《每天一分钟学习C语言·七》指针、字节对齐等

1、 对于二维数组如a[3][4]可以当做有三个元素的一维数组,每个元素包含四个小元素。 2、 printf(“%-5d”, i); //负号表示左对齐,5d表示空五个光标的位置 3、 栈:先进后出,堆:先进先出 4、 (1&#xff…

机器学习笔记(一)从波士顿房价预测开始,梯度下降

从波士顿房价开始 目标 其实这一章节比较简单,主要是概念,首先在波士顿房价这个问题中,我们假设了一组线性关系,也就是如图所示 我们假定结果房价和这些参数之间有线性关系,即: 然后我们假定这个函数的损失函数为…

罗德与施瓦茨FSV40-N手持式频谱分析仪

描述 R&S FSV是速度最快、功能最全面的信号和频谱分析仪,适用于从事RF系统开发、生产、安装和服务的注重性能、注重成本的用户。 频率范围高达3.6 GHz/7 GHz/13.6 GHz/30 GHz 40 MHz分析带宽 0.4 dB级测量不确定度,最高7 GHz 针对GSM/EDGE、WCDMA/…

面试高频的TCP知识点总结,比我想象得还要详细

下午好,我的网工朋友。 TCP 作为传输层的协议,了解它,拿下它,是一个网络工程师素养的体现,也是面试中经常被问到的知识点。 我们账号之前的文章里也写过不少关于TCP相关的文章,感兴趣的朋友们可以点击下方…

Tekton

一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案,它由提供构建块的 Tekton Pipelines,Tekton 作为 Kubernetes 集群上的扩展安装和运行,包含一组 Kubernetes 自定义资源,这些资源定义了您可以为…

Vue表格中鼠标移入移出input显示隐藏 ,有输入值不再隐藏

Vue表格中鼠标移入移出input显示隐藏 , 不再隐藏的效果 <el-tableref"table":data"tableDatas"borderstyle"width: 100%":span-method"arraySpanMethod"id"table"row-key"id"cell-mouse-enter"editCell&q…

Tarjan-vDCC,点双连通分量,点双连通分量缩点

前言 双连通分量是无向图中的一个概念&#xff0c;它是指无向图中的一个极大子图&#xff0c;根据限制条件可以分为边双连通分量和点双连通分量&#xff0c;欲了解双连通分量需先了解Tarjan算法&#xff0c;以及割点割边的概念及求解。本篇博客介绍点双连通分量的相关内容。 前…

简单了解一下当前火热的大数据 -- Kylin

神兽麒麟 一、Apache Kylin 是什么&#xff1f;二、Kylin架构结语 一、Apache Kylin 是什么&#xff1f; 由eBay公司中国团队研发&#xff0c;是一个免费开源的OLAP多维数据分析引擎优点 超快的响应速度&#xff0c;亚秒级支持超大数据集&#xff08;PB以上&#xff0c;千亿记…

数字人解决方案——ER-NeRF实时对话数字人模型推理部署带UI交互界面

简介 这个是一个使用ER-NeRF来实现实时对话数字人、口播数字人的整体架构&#xff0c;其中包括了大语言回答模型、语音合成、成生视频流、背景替换等功能&#xff0c;项目对显存的要求很高&#xff0c;想要达到实时推理的效果&#xff0c;建议显存在24G以上。 实时对话数字人 …

关于Python里xlwings库对Excel表格的操作(十六)

这篇小笔记主要记录如何【设置单元格数据的对齐方式】。 前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】&#xff08;1&#xff09;如何安装导入xlwings库&#xff1b; &#xff08;2&#xff09;如何在Wps下…

MyBatis——MyBatis的延迟加载

MyBatis的延迟加载&#xff08;一对多查询案例&#xff09; 1.什么是延迟加载&#xff1f; 开启延迟加载后&#xff0c;在真正使用数据的时候才发起级联查询&#xff0c;不用的时候不查询。 2.pojo User类&#xff1a; package com.wt.pojo;import java.io.Serializable; …

Rust中peekable的使用

在 Rust 中&#xff0c;从迭代器中获取&#xff08;也就是“消费”&#xff09;一个元素时&#xff0c;每次调用 next 方法都会“消费”迭代器的一个元素&#xff0c;这意味着此元素被从迭代器中移除并返回给调用者&#xff0c; 一旦一个元素被消费&#xff0c;它就不能再次从同…

Python中的//, /, % 运算符详解与区别

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在Python中&#xff0c;//, /, % 是常用的数学运算符&#xff0c;用于执行整除、除法和取余操作。本文将深入探讨这三个运算符的作用、用法以及区别&#xff0c;并通过丰富的示例代码帮助大家更好地理解它们的用…

大数据开发职业介绍

........................................................................................................................................................... 大数据开发转正 ...................................................................................…

只更新软件,座椅为何能获得加热功能?——一文读懂OTA

2020年&#xff0c;特斯拉发布过一次OTA更新&#xff0c;车主可以通过这次系统更新获得座椅加热功能。当时&#xff0c;这则新闻震惊了车圈和所有车主&#xff0c;彼时的大家还没有把汽车当作可以“升级”的智能设备。 如今3年过去了&#xff0c;车主对各家车企的OTA升级早已见…

【三维生成与重建】ZeroRF:Zero Pretraining的快速稀疏视图360°重建

系列文章目录 题目&#xff1a;ZeroRF: Fast Sparse View 360◦ Reconstruction with Zero Pretraining 任务&#xff1a;稀疏重建&#xff1b;拓展&#xff1a;Image to 3D、文本到3D 作者&#xff1a;Ruoxi Shi* Xinyue Wei* Cheng Wang Hao Su &#xff0c;来自UC San Dieg…

PyTorch随机数生成:torch.rand,torch.randn,torch.randind,torch.rand_like

在用PyTorch做深度学习开发过程中&#xff0c;时常用到随机数生成功能&#xff0c;但经常记不住几个随机数生成函数的用法&#xff0c;现在正好有点时间&#xff0c;整理一下。 1. torch.rand() torch.rand(*size, *, generatorNone, outNone, dtypeNone, layouttorch.stride…

VBA_MF系列技术资料1-247

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

C语言操作符详解+运算符优先级表格

目录 前言 一、操作符是什么&#xff1f; 二、操作符的分类 三、算术操作符 四、逻辑操作符 五、比较操作符 六、位操作符 七、赋值操作符 八、其他操作符 九、运算符优先级表格 总结 前言 在编写程序时&#xff0c;最常用到的就是操作符&#xff0c;本文将详细的介绍…