之前由于公司 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. [NOIP2013 普及组] 表达式求值

    [NOIP2013 普及组] 表达式求值 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. Input 一行,为需要你计算的表达式,表达式中只包含数字.加法运算符"+" ...

  2. k8s.gcr.io、gcr.io仓库的镜像下载

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 获取这类镜像的方法一般有2种: 1.通过拉取国内镜像仓库的内容(操作简单直接拉取即可,缺点是镜像的版本更新可能较慢,可能无法获取最新的镜像) 2 ...

  3. 超详细GoodSync11.2.7.8单机、两个服务器之间的文件同步使用教程

    GoodSync安装教程 第一步:双机GoodSync_v11.2.7.8.exe文件 链接:https://pan.baidu.com/s/16FVater4f9vu07QiGGIK9A 提取码:b ...

  4. meterpreter中使用mimikatz获取windows密码

    进去meterpreter后getuid一下 这获得系统管理员权限 开始 加载mimikatz模块 load mimikatz 加载成功. 第一种方法: 获取登录密码的hash值 msv 上面已经是得 ...

  5. GO后端开发+VUE实列

    因为我是从java转到go,代码结构跟我之前用java的很像 在这里只浅显的实战运用,没有过多理论讲解 工作环境:IDE:Goland , Go 1.17.7 框架 Gin+Gorm ,前端VUE 这 ...

  6. 27.Java 飞机游戏小项目

    开篇 游戏项目基本功能开发 飞机类设计 炮弹类设计 碰撞检测设计 爆炸效果的实现 其他功能 计时功能 游戏项目基本功能开发 这里将会一步步实现游戏项目的基本功能. 使用 AWT 技术画出游戏主窗口 A ...

  7. C++ md5 函数

    转 http://www.zedwood.com/article/cpp-md5-function MD5 is no longer considered cryptographically safe ...

  8. HMS Core 机器学习服务6.4.0版本更新啦,文本翻译功能增加10种小语种语言类型!

    近日,HMS Core机器学习服务(ML Kit)文本翻译功能在6.4.0版本更新中增加了10种小语种语言类型,分别是马其他语.马其顿.冰岛.乌尔都语.波斯尼亚语.乌克兰语.加泰罗尼亚语.斯洛文尼亚语 ...

  9. Redis 最适合的场景?

    1.会话缓存(Session Cache) 最常用的一种使用 Redis 的情景是会话缓存(session cache).用 Redis 缓存会 话比其他存储(如 Memcached)的优势在于:Re ...

  10. 打败算法 —— 删除链表的倒数第n个结点

    本文参考 出自LeetCode上的题库 -- 删除链表的倒数第n个结点,官方的双指针解法没有完全符合"只遍历一遍链表"的要求,本文给出另一种双指针解法 https://leetco ...