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 地址,请求数据。
参考
AWS - Basic 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 ...
- AWS助理架构师样题解析
AWS 认证是对其在 AWS 平台上设计.部署和管理应用程序所需的技能和技术知识的一种认可.获得证书有助于证明您使用 AWS 的丰富经验和可信度,同时还能提升您所在的组织熟练使用基于 AWS 云服务应 ...
- A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
用户选择云计算平台构建应用程序的一个重要原因是高弹性的云平台和可扩展性. 面向Internet应用程序通常需要支持用户使用大量,但要建立一个高度可扩展.具有一定的挑战,高度可用的应用程序,只有立足AW ...
- Azure Function & AWS Function With C#
Using C# with Azure Functions Two important prerequisites need to be met to build Azure Functions ap ...
- AWS Tagging Strategies
How should I tag my AWS resources? Amazon Web Services (AWS) allows customers to assign metadata to ...
- [AWS] Amazon Cognito
看懂 [AWS] User management and [AWS] OAuth2.0 才方便看到此篇. Ref: 常见 Amazon Cognito 场景 Amazon Cognito 的两个主要组 ...
- [AWS] Deploy react project on EC2
如何在aws部署项目 申请到亚马逊AWS免费账户后,我们可以拥有很多的免费云服务产品项目,其中包括: EC2云服务器. Amazon S3存储. Amazon RDS数据库. Amazon Cloud ...
- [RN] 03 - Resource Collection & AWS Auth
那些资源 一.三个例子 iReading Bilibili-React-Native ZhiHuDaily-React-Native 二.IM 例子 1. React Native Socket.io ...
- Amazon AWS S3 操作手册
Install the SDK The recommended way to use the AWS SDK for Java in your project is to consume it fro ...
随机推荐
- Java数组经典例题
数组中元素的求和 public class T02 { public static void main(String[] args) { int[][]arr=new int[][]{{1,2,3,4 ...
- 解决使用DBeaver连接MySQL时报错-The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
解决使用DBeaver连接MySQL时报错,其实提示很明显. The server time zone value '�й���ʱ��' is unrecognized or represents ...
- 如何使用 Spring Boot 实现异常处理?
Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法. 我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常.
- Java Concurrency API 中的 Lock 接口(Lock interface) 是什么?对比同步它有什么优势?
Lock 接口比同步方法和同步块提供了更具扩展性的锁操作. 他们允许更灵活的结构,可以具有完全不同的性质,并且可以支持多个相关类的 条件对象. 它的优势有: 可以使锁更公平 可以使线程在等待锁的时候响 ...
- Java 线程具有五中基本状态 ?
1.新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(): 2.就绪状态(Runnable):当调用线程对象的 start()方法(t.st ...
- 如何获取所有的参数名和参数值?用request.getParameterNames(); Enumeration enu=request.getParameterNames(); while(enu.hasMoreElements()){ String paraName=(String)enu.nextElement(); System.out.println(paraName+"
用request.getParameterNames(); Enumeration enu=request.getParameterNames(); while(enu.hasMoreElemen ...
- Redis 集群的主从复制模型是怎样的?
为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,所 以集群使用了主从复制模型,每个节点都会有 N-1 个复制品.
- JRE、JDK、JVM 及 JIT 之间有什么不同?
JRE 代表 Java 运行时(Java run-time),是运行 Java 引用所必须的.JDK 代 表 Java 开发工具(Java development kit),是 Java 程序的开发工 ...
- 使用 Spring 框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约 2MB.控制反转:Spring 通过控制反转实现了松散耦合,对象们给出它们的依 赖,而不是创建或查找依赖的对象们.面向切面的编程(AOP):Spring ...
- 学习JDK之“Future机制==>多线程”
什么是Future接口 Future是java.util.concurrent.Future,是Java提供的接口,可以用来做异步执行的状态获取,它避免了异步任务在调用者那里阻塞等待,而是让调用者可以 ...