之前由于公司 Training 考取了 AWS-SAP 的证书,更多理解的是概念和理论上的知识,并未实操。但对于学习一门技术来说,实践是加深理解和掌握该技术的必经之路,强调知行合一。所以最近打算重新熟悉相关架构,并利用 AWS global 的 Free tier 进行实操。

本篇主要内容会围绕 AWS 基础概念进行讲解:

  • 云计算定义
  • 云计算类型
  • AWS 基础设施

云计算定义

在具体介绍 AWS 内容前,我们先来看一看对 cloud computing 的定义。

wiki 上这样写到:

Cloud computing[1] is the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user.

云计算是用户在不参与管理的情况下,对系统计算资源的按需使用,特别是在数据存储和计算资源这两个方面。

换成我们可以理解的话来说,就是一个个云厂商,通过自己搭建数据中心,将存储和计算等等资源自己管理后,提供给外界的用户。在不用自己搭建基础设置的情况下,直接按照自己的需要,按需购买云厂商提供的资源,省去了自己管理基础设施的运维成本以及购买相关硬件的费用。从这也可以看到,云计算的本质其实就是资源的共享。

云计算类型

AWS 作为第一家提供云计算的服务商和整个行业的领跑者,这里我们就以 AWS 为例。看看 AWS 怎样看待云计算。

AWS 认为云计算共有三种类型:

  • IaaS - 基础设施即服务
  • PaaS - 平台即服务
  • Saas - 软件即服务

上面是对三种类型的定义,理解起来有些抽象。这里我们依次用我们理解的话来说:

IaaS:

对于 IaaS, 我们可以理解成,作为用户,我们向 AWS 申请的资源是 硬件 + 操作系统。就像我们购买了一台物理服务器,其中包括 CPU, 内存,硬盘,以及使用哪种操作系统进行管理,比如像 AWS EC2 实例资源。

PaaS:

而对于 PaaS 来说,我们向 AWS 申请的资源是 硬件 + 操作系统 + 可以运行软件的平台。相当于基于 IaaS 基础上,多加了一个软件平台。怎么去理解这个软件平台呢。

可以将其理解成,运行软件时必要的环境。比如想运行 docker 应用,那么 PaaS 会把 docker 的环境装好,你只需要上传自己的 image 就可以了。比如想要使用 java web 应用,PaaS 会把 Apace 装好,你直接提供 jar 包就可以了。

SaaS:

最后对于 SaaS 来说,又是 PaaS 的更近一步,除了软件运行环境给你装好了外,需要运行的软件一起给你装好了。比如想使用 MySQL,Redis 这类的软件,直接使用对应的服务就可以了。对于 AWS 就是 RDS,DynamoDB,S3 这类的服务。你完全不需要知道它们是怎么搭建的,只要会用就可以了。

AWS 简要架构

对于一个应用来说常采用如下的架构。

其中第一列是,用户会通过 Route53 - dns 解析,CloudFront(CDN)或者 Web Layer 进入。

第二列对应具体的计算资源,比如像 EC2,EKS 等处理用户的请求。

第三列对应数据存储层,像 RDS ,S3,EBS 这些存储服务

AWS 全球基础设施

AWS 作为世界最大的云厂商,其基础设施遍布全球。

在理解 AWS 的基础设施前,需要理解几个概念:

区域:

区域是 AWS 最基本的改变,很多的服务都依赖于区域。比如 S3 提供的 bucket 服务就可以跨区域,但像 EBS 这类的存储就不能跨区域。

可以把区域理解成,放置数据中心的位置。一个区域,由多个可用区组成。多个可用区的目的在于灾备。

可用区:

可以将可用区理解成一个或者多个实际的数据中心。为了保证可用性,容错性和可拓展性。一个区域由多个可用区组成,多个可用区之间,使用城域光纤互联,距离在 1000 公里以内,保证高吞吐和低延迟的网络。

边缘网络:

在每个区域附近,都会设置边缘站点,其实就可以将其理解成 CDN 节点,缓存各个数据中心的数据。

这里简单说下 CDN,每个region旁的边缘站点,不仅仅缓存本区域的数据,还会缓存其他区域的数据。这就保证了本区域的用户,访问其他区域的数据,请求可以很快被响应。

但你肯定有这样一个疑问,边缘站点容量总是有限的,它怎么缓存多个区域那么多的数据呢。原因在于和 DNS 解析类似,CDN 也有自己的分发网络。

边缘节点用于接收请求,当自己的边缘站点找不到时,会递归查询区域节点,如果区域节点也查不到,就会请求中心节点。可以看到从小到上,节点的容量是不断增加的。最后如果中心节点也没有,就直接去源站点请求了。

所以在有了 CDN 之后,用户请求一个域名,就有原来的 DNS 解析域名所对应的真实服务器的 IP. 变成了用户请求域名后,域名服务器会根据 CNAME 返回一个 cdn 服务器的域名,转而去请求解析这个 cdn 服务器的域名。而 cdn 服务器会根据用户 IP 地址,所在运营商等等情况,选择一台包含原来真实服务器的缓存服务器 IP 地址,请求数据。

参考

云计算类型

基础架构

AWS - Basic 1的更多相关文章

  1. 【kubernetes secret 和 aws ecr helper】kubernetes从docker拉取image,kubernetes docker私服认证(argo docker私服认证),no basic auth credentials错误解决

    aws ecr helper: https://aws.amazon.com/blogs/compute/authenticating-amazon-ecr-repositories-for-dock ...

  2. AWS助理架构师样题解析

    AWS 认证是对其在 AWS 平台上设计.部署和管理应用程序所需的技能和技术知识的一种认可.获得证书有助于证明您使用 AWS 的丰富经验和可信度,同时还能提升您所在的组织熟练使用基于 AWS 云服务应 ...

  3. A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设

    用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...

  4. Azure Function & AWS Function With C#

    Using C# with Azure Functions Two important prerequisites need to be met to build Azure Functions ap ...

  5. AWS Tagging Strategies

    How should I tag my AWS resources? Amazon Web Services (AWS) allows customers to assign metadata to ...

  6. [AWS] Amazon Cognito

    看懂 [AWS] User management and [AWS] OAuth2.0 才方便看到此篇. Ref: 常见 Amazon Cognito 场景 Amazon Cognito 的两个主要组 ...

  7. [AWS] Deploy react project on EC2

    如何在aws部署项目 申请到亚马逊AWS免费账户后,我们可以拥有很多的免费云服务产品项目,其中包括: EC2云服务器. Amazon S3存储. Amazon RDS数据库. Amazon Cloud ...

  8. [RN] 03 - Resource Collection & AWS Auth

    那些资源 一.三个例子 iReading Bilibili-React-Native ZhiHuDaily-React-Native 二.IM 例子 1. React Native Socket.io ...

  9. Amazon AWS S3 操作手册

    Install the SDK The recommended way to use the AWS SDK for Java in your project is to consume it fro ...

随机推荐

  1. 使用WebService的优点

    1.支持跨平台,跨语言,远程调用 WSDL:web service definition language 直译 webservice定义语言 对应一种类型的文件.wsdl2.定义了web servi ...

  2. Linux上搭建meterSphere

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.安装Docker (1)安装CentOS Docker curl -fsSL https://get.docker.com | bash -s ...

  3. 网络编程 基础 基于socket的tcp和udp连接

    网络开发的框架 C/S B/S 架构 程序都是bs架构的程序(b指浏览器,s指服务器) c(client)是客户端,s(server)是服务器 bs架构是cs架构的一种 未来的趋势, pc端bs架构, ...

  4. markdown类型文件编辑大全

    正文: 1.标题的几种写法: 第一种:     前面带#号,后面带文字,分别表示h1-h6,上图可以看出,只到h6,而且h1下面会有一条横线,注意,#号后面有空格 第二种:      这种方式好像只能 ...

  5. unittest 测试用例实现

    unittest框架结构 test_case: 测试套件,每一个.py文件代表一个测试用例,测试用例以test开头,否则框架读取不到测试用例 __init__.py是做什么的? 要弄明白这个问题,首先 ...

  6. 面试之Java String 编码相关

    实话说,作为一个多年Java老年程序员,直到近来,在没有决心花时间搞清楚Java String的编码相关问题之前, 自己也都还是似懂非懂,一脸懵逼的.设想如果在面试中,有同学能够条理清晰的回答下面的问 ...

  7. Bigdecimal 比较问题

  8. 什么是Spring Cloud Bus?

    spring cloud bus 将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务直接的通讯,也可用于监控. 如果修改了配置文件,发送一次请求,所有的客户端便会重新读取配置 ...

  9. Spring-boot-菜鸟-配置-简介

    SpringBoot使用一个全局的配置文件,配置文件名是固定的: •application.properties •application.yml 配置文件的作用:修改SpringBoot自动配置的默 ...

  10. 用TLS/SSL保证EMQ的网络传输安全

    作为基于现代密码学公钥算法的安全协议,TLS/SSL能在计算机通讯网络上保证传输安全,EMQ的MQTT broker支持TLS,也可以用这种方式来确保传输安全. 参考官网:https://www.em ...