Amazon云计算AWS(一)

目录

    • 一、基础存储架构Dynamo
      • (一)Dynamo概况
      • (二)Dynamo架构的主要技术
    • 二、弹性计算云EC2
      • (一)EC2的基本架构
      • (二)EC2的关键技术
      • (三)EC2的安全及容错机制



在这里插入图片描述
提供的服务主要包括:

  • 弹性计算云EC2
  • 简单存储服务S3
  • 简单数据库服务Simple DB
  • 简单队列服务SQS
  • 弹性MapReduce服务
  • 内容推送服务CloudFront
  • 电子商务服务DevPay
  • FPS

一、基础存储架构Dynamo

(一)Dynamo概况

在这里插入图片描述

面向服务的Amazon平台基本架构

为了保证其稳定性,Amazon的系统采用完全的分布式、去中心化的架构。

  • 作为底层存储架构的Dynamo也同样采用了无中心的模式
  • Dynamo只支持简单的键/值(key/value)方式的数据存储,不支持复杂的查询
  • Dynamo中存储的是数据值的原始形式,即按位存储,并不解析数据的具体内容

(二)Dynamo架构的主要技术

  Dynamo在设计时被定位为一个基于分布式存储架构的,高可靠、高可用且具有良好容错性的系统。下表列举了Dynamo设计时面临的主要问题及所采取的解决方案。

Dynamo需要解决的主要问题及解决方案
问题采取的相关技术
数据均衡分布改进的一致性哈希算法
数据备份参数可调的弱quorum机制
数据冲突处理向量时钟(Vector Clock)
成员资格及错误检测基于Gossip协议的成员资格和错误检测
临时故障处理Hinted handoff(数据回传机制)
永久故障处理Merkle哈希树

  Dynamo中的存储节点呈无中心的环状分布。包含两个基本概念:preference list 是存储与某个特定键值相对应的数据的节点列表;coordinator 是执行一次读或写操作的节点。通常,coordinator 是 preference list 上的第一个节点。

在这里插入图片描述
1、数据均衡分布的问题

  Dynamo采用了分布式的数据存储架构,均衡的数据分布可以保证负载平衡和系统良好的扩展性。因此,如何在各个节点上数据的均衡性是影响Dynamo性能的关键问题。Dynamo中使用改进后的一致性哈希算法,并在此基础上进行数据备份,以提高系统的可用性。

在这里插入图片描述
(1)一致性哈希算法

  一致性哈希算法是目前主流的分布式哈希表(Distributed Hash Table,DHT)协议之一,于1997年由麻省理工学院提出。一致性哈希算法通过修正简单哈希算法,解决了网络中的热点问题,使得DHT可以真正地应用于P2P环境中。

在这里插入图片描述
  一致性哈希算法除了能够保证哈希运算结果充分分散到整个环上外,还能保证在添加或删除设备节点时只会影响到其在哈希环中的前驱设备节点,而不会对其他设备节点产生影响。

在这里插入图片描述
  一致性哈希算法可以大大降低在添加或删除节点时引起的节点间的数据传输开销。

(2)改进的一致性哈希算法

  Dynamo中引入了虚拟节点的概念。每个虚拟节点都隶属于某一个实际的物理节点,一个物理节点根据其性能的差异被分为一个或多个虚拟节点。各个虚拟节点的能力基本相当,并随机分布在哈希环上。

在这里插入图片描述
  Dynamo将整个哈希环划分成Q等份,每个等份称为一个数据分区(Partition)。在存储数据时,每个数据会被先分配到某个数据分区,再根据负责该数据分区的虚拟节点,最终确定其所存储的物理节点。

数据分区的好处:

  • 减小数据分布不均衡的可能性
  • 添加或删除设备节点时引起较小的数据传输

在这里插入图片描述
2、数据备份

  在Dynamo中,每个数据的副本备份存储在哈希环顺时针方向上该数据所在虚拟节点的后继节点中。数据备份在存储数据的同时进行,会使每次写操作的延时变长。

  Dynamo中对写操作进行了优化,保证一个副本必须写入硬盘,其他副本只要写入节点的内存即返回写成功。每个虚拟节点上实际存储了分配给它以及分配它的前N-1个前驱虚拟节点的数据。

3、数据冲突问题

在这里插入图片描述
  Dynamo选择通过牺牲一致性来保证系统的可靠性和可用性,没有采用强一致性模型而采用了最终一致性模型。由于Dynamo中可能出现同一个数据被多个节点同时更新的情况,且无法保证数据副本的更新顺序,这有可能会导致数据冲突。

在这里插入图片描述
  Dynamo中采用了向量时钟技术(Vector Clock),Dynamo中的向量时钟通过 [node, counter] 对 来表示。node表示操作节点;counter是其对应的计数器,初始值为0,节点每进行一次更新操作则计数器加1。

4、成员资格及错误检测

  由于Dynamo采用了无中心的架构,每个成员节点都需要保存其他节点的路由信息。为了保证每个节点都能拥有最新的成员节点信息,Dynamo中采用了一种类似于Gossip(闲聊)协议的技术。

在这里插入图片描述
  Dynamo中还通过Gossip来实现错误检测任何节点向其他节点发起通信后,如果对方没有回应,则认为对方节点失效。

  为了避免新加入的节点之间不能及时发现其他节点的存在,Dynamo中设置了一些种子节点(Seed Node)。种子节点和所有的节点都有联系。当新节点加入时,它扮演一个中介的角色,使新加入节点之间互相感知。

在这里插入图片描述

  • 自底向上每一层代表一次随机通信
  • 第一层节点1将信息交换给节点2
  • 第二层节点1和2同时开始随机选择其他节点交换信息
  • 直到N个节点全部传遍

在这里插入图片描述
结论:Dynamo中的节点数不能太多;Amazon采用了分层Dynamo结构来解决该问题。

5、容错机制

(1)临时故障处理机制

  为了处理临时失效的节点,Dynamo中采用了一种带有监听的数据回传机制(Hinted Handoff)。当虚拟节点A失效后,会将数据临时存放在节点D的临时空间中,并在节点A重新可用后,由节点D将数据回传给节点A。

在这里插入图片描述
(2)永久性故障处理机制

  Dynamo采用Merkle哈希树技术来加快检测和减少数据传输量。

在这里插入图片描述

二、弹性计算云EC2

(一)EC2的基本架构

  主要包括了Amazon机器映象、实例、存储模块等组成部分,并能与S3等其他Amazon云计算服务结合使用。

在这里插入图片描述
1、Amazon机器映象(AMI)

  Amazon机器映像(Amazon Machine Image,AMI)是包含了操作系统、服务器程序、应用程序等软件配置的模板。当用户使用EC2服务去创建自己的应用程序时,首先需要构建或获取相应的AMI。

在这里插入图片描述
  构建好的AMI分为Amaznon EBS支持和实例存储支持两类。

2、实例(Instance)

  EC2中实例由AMI启动,可以像传统的主机一样提供服务。同一个AMI可以用于创建具有不同计算和存储能力的实例。Amazon提供了多种不同类型的实例,分别在计算、GPU、内存、存储、网络、费用等方面进行了优化。Amazon还允许用户在应用程序的需求发生变更时,对实例的类型进行调整,从而实现按需付费。

  Amazon EC2还为实例提供了许多附加功能,帮助用户更好地部署和管理应用程序。

3、弹性块存储(EBS)

  EBS存储卷的设计与物理硬盘相似,其大小由用户设定,目前提供的容量从1GB到1TB不等。

在这里插入图片描述
  EBS存储卷适用于数据需要细粒度地频繁访问并持久保存的情形,适合作为文件系统或数据库的主存储。快照功能是EBS的特色功能之一,用于在S3中存储Amazon EBS卷的时间点副本。

(二)EC2的关键技术

1、地理区域和可用区域


  EC2系统中包含多个地理区域,而每个地理区域中又包含多个可用区域。为了确保系统的稳定性,用户最好将自己的多个实例分布在不同的可用区域和地理区域中。

在这里插入图片描述
2、EC2的通信机制

在这里插入图片描述
  EC2的实例一旦被创建就会动态地分配公共IP地址和私有IP地址。私有IP地址由动态主机配置协议(DHCP)分配产生。

3、弹性负载平衡

在这里插入图片描述
  弹性负载平衡功能允许EC2实例自动分发应用流量,从而保证工作负载不会超过现有能力,并且在一定程度上支持容错。弹性负载平衡功能可以识别出应用实例的状态,当一个应用运行不佳时,它会自动将流量路由到状态较好的实例资源上,直到前者恢复正常才会重新分配流量到其实例上。

4、监控服务

在这里插入图片描述
  用户只需要选择EC2实例,设定监视时间,CloudWatch就可以自动收集和存储检测数据。

5、自动缩放

自动缩放可以按照用户自定义的条件,自动调整EC2的计算能力:

  • 需求高峰期:确保EC2实例的处理能力无缝增大
  • 需求下降时:自动缩小EC2实例规模以降低成本

自动缩放功能特别适合周期性变化的应用程序,它由CloudWatch自动启动。

6、服务管理控制台

  各项技术通过互相配合来实现EC2的可扩展性和可靠性。

在这里插入图片描述

(三)EC2的安全及容错机制

  安全组是一组规则,用户利用这些规则来决定哪些网络流量会被实例接受,其他则全部拒绝。当用户的实例被创建时,如果没有指定安全组,则系统自动将该实例分配给一个默认组。默认组只接受组内成员的消息,拒绝其他消息。当一个组的规则改变后,改变的规则自动适用于组中所有的成员。

  SSH是目前对网络上传输的数据进行加密的一种很可靠的协议,当用户创建一个密钥对时,密钥对的名称(Key Pair Name)和公钥(Public Key)会被存储在EC2中。

在这里插入图片描述
  EC2引入了弹性IP地址的概念。弹性IP地址和用户账号绑定而不是和某个特定的实例绑定;弹性IP地址和用户账号绑定而不是和某个特定的实例绑定;通过弹性IP地址改变映射关系总可以保证有实例可用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17837.shtml

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

相关文章

Python自动化办公Excel数据处理实战指南

目录 一、引言 二、需求分析 三、技术选型 四、实战操作 数据读取 数据清洗 数据分析 数据输出 五、学习资源推荐: 六、结语 一、引言 在现代办公环境中,Excel数据处理是一项不可或缺的技能。然而,当数据量庞大、处理流程复杂时&a…

Linux文本文件管理003

★排序、去重、统计★ 1)排序 sort -n按照数值排序 -r降序排列 2)去重 uniq 过滤相邻、重复的行 -c 对重复行计数 3)统计 wc 统计文件中的字节数、单词数、行数 -l 显示行数 今天通过使用grep、awk、cut指令和上面几个选项提取文本文件…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(八)

本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 继续接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 现在,我们…

三十、openlayers官网示例解析Double click, Drag and Zoom——第二次点击鼠标拖拽缩放地图效果、取消地图双击放大事件

这篇展示了如何在地图上添加第二次按下鼠标移动鼠标实现拖拽缩放地图效果。 官网demo地址: Double click, Drag and Zoom 官网介绍文字的翻译如下: 示例比较简单,直接贴代码: const map new Map({//添加第二次点击拖拽缩放地图i…

一文了解等保2.0中IPS与IDS的差异

IPS(入侵防御系统) 入侵防御系统是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。 对异常的、可能是入侵行为的数据进行检测和报警&#xff…

MM模块六(收货)

接到供应商收到的货以后,进行一个收货的动作 收货:MIGO 1.消耗物料的采购订单 数量是供应商的数量 消耗物料的采购订单,收进来的货物直接进入消耗,不会增加库存,所以这里没有库存地点进行选择 点击过账 收货后在采购…

微服务架构五大设计模式详解,助你领跑行业

微服务架构设计模式详解(5种主流模式) 微服务架构 微服务,一种革命性的架构模式,主张将大型应用分解为若干小服务,通过轻量级通信机制互联。每个服务专注特定业务,具备独立部署能力,轻松融入生产环境,为系…

2005-2022年各省全体居民人均可支配收入数据(无缺失)

2005-2022年各省全体居民人均可支配收入数据(无缺失) 1、时间:2005-2022年 2、来源:国家统计局、统计年鉴 3、指标:全体居民人均可支配收入 4、范围:31省 5、缺失情况:无缺失 6、指标解释…

java多线程创建方式

1. 继承Thread类 这种方式是通过创建一个新的类继承自Thread类,并覆盖run()方法来创建线程。然后通过创建这个类的对象并调用其start()方法来启动线程。 public class MyThread extends Thread { public void run() { // 在这里定义线程的执行逻辑 …

Java—选择排序

选择排序是一种简单但高效的排序算法。它的基本思想是从未排序的部分中选择最小(或最大)的元素,并将其放置在已排序部分的末尾。 实现步骤 具体实现选择排序的步骤如下: 遍历数组:从数组的第一个元素开始&#xff0…

webpack构建流程

对webpack的理解: webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具 可以使用webpack管理模块 因为在webpack看来,项目中的所有资源皆为模块,通过分析模块间的依赖关系,在其内部构建出一个依赖图,最终编…

【MATLAB】数字滤波器的设计

一、引言 在信号处理过程中,所处理的信号往往混有噪声,从接收到的信号中消除或减弱噪声是信号传输和处理中十分重要的问题。根据有用信号和噪声的不同特性,提取有用信号的过程称为滤波,实现滤波功能的系统称为滤波器。在以往的模拟电路中用的…

OrangePi AIpro测评:智能与创新的完美结合

OrangePi AIpro上手指南 简介 香橙派与华为合作发布的香橙派AiPro为Ai主力,为边缘设备的Ai计算提供了可能。 集成图形处理器,拥有8GB/16GB LPDDR4X(我这个是8G内存版本的),可以外接32GB/64GB/128GB/256GB eMMC模块&a…

大模型备案VS算法备案:差异、要求与合规快照

​下图为最新的直至第五批深度合成服务算法备案信息的公告 根据目前公开的国内大模型算法备案统计来看,首批境内深度合成服务算法备案清单,总共通过了五批。 以第二批举例,境内深度合成服务算法备案清单,总共通过110家&#xff0…

拉格朗日插值及牛顿差商方法的实现(Matlab)

一、问题描述 拉格朗日插值及牛顿差商方法的实现。 二、实验目的 掌握拉格朗日插值和牛顿差商方法的原理,能够编写代码实现两种方法;能够分析多项式插值中的误差。 三、实验内容及要求 利用拉格朗日插值及牛顿差商方法估计1980 年的人口,并…

牛!华为《Linux 面试笔记大全》太赞了,完整版PDF 开放下载!

在QQ和微信社群中,我注意到许多人都在寻找一份全面的Linux学习资料。因此,我在这里为大家整理和分类了相关的信息,可以看作是对重点内容的梳理和归纳。 这份《Linux面试笔记》主要分为三大部分:基础篇-进阶篇-高级篇 本书笔记针…

【SQL学习进阶】从入门到高级应用(二)

文章目录 简单查询查一个字段查多个字段查所有字段查询时字段可参与数学运算查询时字段可起别名as关键字省略as关键字别名中有空格别名中有中文 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博客,很高兴能够在这里和您见面&#xf…

44、Flink 的 Interval Join 详解

Interval Join Interval join 组合元素的条件为:两个流(暂时称为 A 和 B)中 key 相同且 B 中元素的 timestamp 处于 A 中元素 timestamp 的一定范围内,即 b.timestamp ∈ [a.timestamp lowerBound; a.timestamp upperBound] 或…

TCL华星揽获技术创新奖,创新能力与伙伴价值再获肯定

近日,以“拥抱AI共创美好”为主题的2024年联想全球供应商大会在深圳圆满举办,重磅分享联想战略愿景和目标。 TCL华星应邀设置品牌展区,携手机、IT等领域10余款前沿显示产品亮相会场,以先锋显示科技演绎联合共创的多元化场景。联想…

5-26作业

网络聊天室 服务器&#xff1a; 1 #include <myhead.h>2 int main(int argc, const char *argv[])3 {4 if(argc!3)5 {6 printf("请输入IP和端口号\n");7 return -1;8 }9 int sfd socket(AF_INET, SOCK_DGRAM, 0);10 if(…