AWS:Amazon云计算

admin:Breeze

基础存储架构Dynamo

*Dynamo*是Amazon为保证稳定性设计的完全分布式、去中心化的基础存储架构。Dynamo是一个高可靠、高可用且具有良好容错性的系统。

Dynamo数据均衡分布的问题

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

一致性哈希算法的不足:

在设备节点数量较少的情况下,有可能造成哈希环上节点分布的不均匀,并且没有考虑哈希环上不同设备节点的性能差异。

*虚拟节点

为了解决一致性哈希算法的不足,Dynamo中引入了虚拟节点的概念。每个虚拟节点都隶属于某一个实际的物理节点(也就是前面说的设备节点),一个物理节点根据其性能的差异被分为一个或多个虚拟节点。各个虚拟节点的能力基本相当,并随机分布在哈希环上。

*数据分区

为了进一步提高数据分布的均衡性,Dynamo将整个哈希环划分成Q等份,每个等份称为一个数据分区(Partition)。

假设系统中共有S个虚拟节点,且满足Q>>S,则每个虚拟节点负责的数据分区数为V=Q/S。在存储数据时,每个数据会被先分配到某个数据分区,再根据负责该数据分区的虚拟节点,最终确定其所存储的物理节点。

Dynamo中数据备份的问题

在Dynamo中,每个数据的副本备份存储在哈希环顺时针方向上该数据所在虚拟节点的后继节点中。
数据备份在存储数据的同时进行会使每次写操作的延时变长。
Dynamo中对写操作进行了优化,保证一个副本必须写入硬盘,其他副本只要写入节点的内存即返回写成功。
每个虚拟节点上实际存储了分配给它以及分配它的前N-1个前驱虚拟节点的数据。


弹性计算云EC2

弹性计算云服务(Elastic Compute Cloud,EC2)是AWS的重要组成部分,用于提供大小可调节的计算容量。它为用户提供了许多非常有价值的特性,包括低成本、灵活性、安全性、易用性和容错性等。借助Amazon EC2,用户可以在不需要硬件投入的情况下,快速开发和部署应用程序,并方便地配置和管理。

机器映像

Amazon机器映像(Amazon Machine Image,AMI)是包含了操作系统、服务器程序、应用程序等软件配置的模板,可以用于启动不同实例,进而像传统的主机一样提供服务。

实例

(1)EC2中实例由AMI(机器映像)启动,可以像传统的主机一样提供服务。同一个AMI可以用于创建具有不同计算和存储能力的实例。(启动与服务)

(2)目前,Amazon提供了多种不同类型的实例,分别在计算、GPU、内存、存储、网络、费用等方面进行了优化。这些实例类型面向了不同的用户需求。(多样性优化)

(3)Amazon还允许用户在应用程序的需求发生变更时,对实例的类型进行调整,从而实现按需付费。(按需付费)

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

地理区域

地理区域(Region Zone)按照实际的地理位置划分。

目前,Amazon在全世界共有10个地理区域,包括:美东(北佛吉尼亚)、美西(俄勒冈)、美西(北加利佛尼亚)、欧洲(爱尔兰)、亚太(新加坡)、亚太(东京)、亚太(悉尼)、南美(圣保罗)、美西服务政府的GovCloud区域和中国(北京)区域。

可用区域

可用区域(Availability Zone)根据是否有独立的供电系统和冷却系统等进行划分,这样某个可用区域的供电或冷却系统错误就不会影响到其他可用区域,通常将每个数据中心看做一个可用区域。

EC2的通信机制

EC2的实例在创建后会动态地分配公共IP地址和私有IP地址。
私有IP地址由动态主机配置协议(DHCP)分配产生。



发表回复

Breeze Wang

A student majoring in Software Engineering at Central South University has an understanding of software development techniques, software architecture, and is able to use Godot to develop game projects. I am currently in the Game Development Laboratory at Central South University. I have experience participating in Global Game Jam. Loving game development.