• AWS Basic 1


    之前由于公司 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 地址,请求数据。

    参考

    云计算类型

    基础架构

  • 相关阅读:
    Please verify that your alternate settings file is specified properly and exists in the workspace.
    史上最全最新微信小程序自动化教程
    Android的WebView调试工具(无需FanQ,可同时调试多个设备,永不过期)
    Android通过Chrome Inspect调试WebView的H5 App出现空白页面的解决方法(不需要FQ)
    appium+java(四)微信公众号自动化测试
    基于APPIUM测试微信公众号的UI自动化测试框架
    Appium测试微信公众号
    通过Debugx5在电脑端调试微信页面
    微信小程序自动化测试实践
    Rocketmq和Kafka区别
  • 原文地址:https://www.cnblogs.com/michael9/p/16128602.html
Copyright © 2020-2023  润新知