之前由于公司 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. Mybatis传递参数的几种方式

    使用Map传递 优点:直接在sql中取出key即可 缺点:适用于小项目,不符合大公司规范 对象传递参数 优点:符合标准规范 缺点:麻烦 3.只有一个基本类型参数的情况下,直接在sql中取中 4.多个参 ...

  2. 4月16日 python学习总结 封装之property、多态 、classmethod和staticmethod

    一.封装之property @property把一个函数伪装成一个数据类型  @伪装成数据的函数名.setter   控制该数据的修改,修改该数据时触发 @伪装成数据的函数名.delect  控制该数 ...

  3. RPC框架 和 fegin原理

    打个比方,你有一些想法,你把他们变成文字写在信纸上,这是http 你把这个信纸塞进信封,这个信封是tcp 你把这个信封写上地址交给邮局,这地址是IP 一层套一层 会话层,表示层,应用层归到一起  就是 ...

  4. 什么是Ribbon?

    ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为.feign默认集成了ribbon.

  5. 什么是 zuul路由网关?

    (1)Zuul 包含了对请求的路由和过滤两个最主要的功能:其中 责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负 请求的处理过程进行干预,是实现请求校验.服务聚合等功 ...

  6. Oracle入门基础(一)一一基本查询

    SQL> --当前用户 SQL> show user SQL> --当前用户下的表 SQL> select * from tab; TNAME TABTYPE CLUSTERI ...

  7. 接口是否可继承(extends)接口?抽象类是否可实现 (implements)接口?抽象类是否可继承具体类(concrete class)?

    接口可以继承接口,而且支持多重继承.抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类.

  8. java-第三方工具去做一些校验

    推荐大家使用第三方 jar 的工具类去做判空.比如:从 Map 中取一个 key 的值,可以用 MapUtils 这个类:对字符串判空使用 StringUtils 这个类:对集合进行判空使用 Coll ...

  9. npm run start 后台运行

    yum provides */nohup nohup npm start & 原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用. 停止程序   ps -ef ...

  10. list集合的快速筛选条件方法

    List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若" ...