云计算ECS

一、云计算基本概念

1.1 什么是云

云是一种”按需付费的模式“,这种模式提供了(计算、存储、网络等资源),这些资源能够被快速提供。实现云计算的底层技术,是虚拟化技术,KVM,VmWare等。
在这里插入图片描述

1.2 为何需要云

  1. 海量资源池灵活调配 [像大海一样|无尽头]
  2. 无处不在的网络访问 [随时随地能访问云资源]
  3. 随需应变的自助服务 [包年包月-电话卡|按需付费-流量包]
  4. 保证服务的高可用性
  5. 能实现快速弹性伸缩 [扩展|收缩|自愈]

1.3 云的分类

1.3.1 公有云

例如阿里云、腾讯云等,获取和部署方便,不需要自己管理硬件设备,但是有可能不安全,核心业务,数据库等托管在人家机房。

1.3.2 私有云

私有云:自建机房,自己搭建,所有自行管理 (局限:资源固定)
实现方式:将真实的物理服务器逻辑捆绑成一个虚拟资源池,用户可以根据虚拟资源池按需使用,资源是固定。

1.3.3 混合云

混合云(主要业务放私有云、当有临时需求的时候使用公有云,使用结束后释放)
使用场景1:当业务高峰资源不足时,可以临时按量使用公有云,保证业务稳定,同时能节省一定的成本
使用场景2:公司核心业务在自建机房,非核心业务使用公有云;

1.4 云厂商

  1. 阿里云 | 腾讯云 | Ucloud | 青云 | AWS
  2. 华为云 | 京东云 | 滴滴云 | 美团云

1.5 云名词

  1. 物理服务器 --> 阿里云
  2. 服务器 --> ECS、快照、镜像
  3. 负载均衡 --> SLB(ALB,CLB)
  4. 数据库 --> RDS
  5. 存储服务 --> NAS、OSS
  6. 防火墙 --> 安全组、高防IP、WAF
  7. 远程访问 --> VPN | JumpServer | OpenVPN
  8. 消息队列 --> MQ

二、ECS

2.1 什么是

ECS
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

2.2 为什么选择ECS

选择云服务器ECS,您可以轻松构建具有以下优势的计算资源:

  • 无需自建机房,无需采购以及配置硬件设施。
  • 分钟级交付,快速部署,缩短应用上线周期。
  • 快速接入部署在全球范围内的数据中心和边界网关协议BGP(Border Gateway Protocol)机房。
  • 成本透明,按需使用,支持根据业务波动随时扩展和释放资源。
  • 提供GPU和FPGA等异构计算服务器、弹性裸金属服务器以及通用的x86架构服务器。
  • 支持通过内网访问其他阿里云服务,形成丰富的行业解决方案,降低公网流量成本。
  • 提供虚拟防火墙、角色权限控制、内网隔离、防病毒攻击及流量监控等多重安全方案。
  • 提供性能监控框架和主动运维体系。
  • 提供行业通用标准API,提高易用性和适用性
    在这里插入图片描述

2.3 ECS地域与可用区

在这里插入图片描述
每个地域完全独立。每个可用区完全隔离,但同一个地域内的可用区之间使用低时延链路相连。

  • 地域
    地域是指物理的数据中心。资源创建成功后不能更换地域

  • 可用区
    可用区(Availability Zone,简称AZ)是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。

在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。是否将实例放在同一可用区内,主要取决于对容灾能力和网络延时的要求。
如果您的应用需要较高的容灾能力,建议您将实例部署在同一地域的不同可用区内
如果您的应用要求实例之间的网络延时较低,建议您将实例创建在同一可用区内
不同地域的实例之间内网互不相通;选择靠近您客户的地域,可降低网络时延、提高您客户的访问速度

相同地域,相同可用区内网互通
相同地域,不同可用区之间内网互通
不同地域,相同可用区和不同可用区不互通,需要借助云企业网

2.4 ECS主机选型

  • web节点: [ 4c x 16Gb | 4c x 32Gb ]
  • DB节点: [ 4c x 64Gb | 4c x 32Gb | 12c x 128Gb ]

4c x 64GB 物理机 磁盘 SAS = 400Mbps
4c x 64GB 云主机 高效云盘 大概 100Mbps
云上 SSD 固态盘 = 400Mbps 相当于 物理盘的SAS
磁盘测试命令:dd | hdparm -t /dev/vda1

2.5 ECS网络

在这里插入图片描述
运维访问ECS实例

  1. 先拨上VPN,VPN会分配一个虚拟的IP地址,假设为10.8.0.1;
  2. 运维请求内网服务器,假设请求的是172.16.1.7这个IP,由于本机有VPN推送过来的路由条目,有去往172.16.1.0这个网段;请求报文从10.8.0.1送出去;
  3. VPNServer接收到请求有两种处理方式

3.1 NAT:把源地址(10.8.0.1)替换为VPNServer私网(假设为172.16.1.61)(SNAT),通信,
10.8.0.1 —172.16.1.7 (SNAT) 172.16.1.61-----172.16.1.7
回去 172.16.1.7—172.16.1.61 (DNAT) 172.16.1.7 -----10.8.0.1

3.2.路由:源地址进来,通过VPN内网送到指定的节点,指定的节点没有到达10.8.0.x这个网段的路由,走默认路由(需要添加一条静态路由规则),所有去往10.8.0.x网段的吓一跳为VPNServer;

用户访问ECS业务:
通过域名–>EIP–>捆绑SLB–>代理方式找到ECS,ECS返回给代理,代理在返回给用户;

EIP: 公网IP,可以正常被互联网用户访问到
NAT: 专用于内网服务器上网的,例如内网业务需要调用第三方接口发短信(SNAT)
VPC: 虚拟网络,在地域下面,地域下面有一个或多个路由器,多个交换机(不同的可用区)

VPN: 虚拟专用网络
RDS: 数据库组件

三、ECS服务操作

3.1 ECS主机购买

1.购买主机:选择付费模式,选择对应的地域,选择实例规格,选择镜像的版本;
2.系统配置:配置VPC网络,配置安全组;
3.主机操作:控制台登录主机方式、Xshell登录主机方式(EIP)、密码重置方式

创建路由器和交换机:专有网络
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

远程登录方式,可以VNC (向虚拟机那样),也可以Workbench远程连接(相当于xshell)
在这里插入图片描述
添加公网IP,实现远程连接
在这里插入图片描述

购买EIP一定要买到所在地域的公网IP。
购买后绑定公网IP后就能远程连接了,ECS也可以访问外网。
在这里插入图片描述

3.2 ECS磁盘扩容-实践

1.创建数据盘:点击云盘–>创建云盘–> 选择大小–>挂载到指定的节点;
2.服务器挂载:分区–>格式化–>创建目录–>挂载
3.数据盘扩容:点击云盘–>进行扩容–>卸载服务器的挂
载–>然后重新分区–>xfs_growfs /dev/vdb1

在这里插入图片描述
云盘购买与地域可用区保持一致。云盘购买后要进行挂载操作。
需要对磁盘进行分区格式化,然后挂载

[root@iZ2ze8jw4vlonoou6byvz7 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk 
└─vda1 253:1    0  40G  0 part /
vdb    253:16   0  50G  0 disk  #未分区的新盘
[root@iZ2ze8jw4vlonoou6byvz7 ~]# 

[root@iZ2ze8jw4vlonoou6byvz7 ~]# fdisk /dev/vdb # 分区
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa9a774ad.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


[root@iZ2ze8jw4vlonoou6byvz7 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  40G  0 disk 
└─vda1 253:1    0  40G  0 part /
vdb    253:16   0  50G  0 disk 
└─vdb1 253:17   0  50G  0 part  # 已经分区完毕

[root@iZ2ze8jw4vlonoou6byvz7 ~]# mkfs.xfs /dev/vdb1 # 格式化为xfs文件系统
meta-data=/dev/vdb1              isize=512    agcount=4, agsize=3276736 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13106944, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6399, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@iZ2ze8jw4vlonoou6byvz7 ~]# mkdir /data # 创建挂载目录
[root@iZ2ze8jw4vlonoou6byvz7 ~]# 

[root@iZ2ze8jw4vlonoou6byvz7 ~]# mount -t xfs /dev/vdb1 /data # 将分区挂载到/data目录

[root@iZ2ze8jw4vlonoou6byvz7 ~]# df
Filesystem     1K-blocks    Used Available Use% Mounted on
devtmpfs          471508       0    471508   0% /dev
tmpfs             482056       0    482056   0% /dev/shm
tmpfs             482056     532    481524   1% /run
tmpfs             482056       0    482056   0% /sys/fs/cgroup
/dev/vda1       41152812 2489152  36759952   7% /
tmpfs              96412       0     96412   0% /run/user/0
/dev/vdb1       52402180   32992  52369188   1% /data

[root@iZ2ze8jw4vlonoou6byvz7 ~]# touch  /data/111 # 尝试写入数据
[root@iZ2ze8jw4vlonoou6byvz7 ~]# touch /data/222

[root@iZ2ze8jw4vlonoou6byvz7 ~]# ll /data
total 0
-rw-r--r-- 1 root root 0 Nov  3 17:53 111
-rw-r--r-- 1 root root 0 Nov  3 17:53 222


如果数据盘满了,可以对数据盘进行扩容,点击更多,云盘扩容,先扩容分区,在扩容文件系统。
在这里插入图片描述

[root@iZ2ze8jw4vlonoou6byvz7 ~]# umont /data # 卸载掉/data

[root@iZ2ze8jw4vlonoou6byvz7 ~]# fdisk /dev/vdb /重新分区

[root@iZ2ze8jw4vlonoou6byvz7 ~]# fdisk /dev/vdb /重新扩容分区


Command (m for help): d # 删除分区
Selected partition 1
Partition 1 is deleted

Command (m for help): n # 创建新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-209715199, default 2048): 
Using default value 2048
Last sector, +sectors or +size{
    
    K,M,G} (2048-209715199, default 209715199): 
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set

Command (m for help): w # 保存


[root@iZ2ze8jw4vlonoou6byvz7 ~]# mount -t xfs /dev/vdb1 /data # 重新挂载

	
[root@iZ2ze8jw4vlonoou6byvz7 ~]# xfs_growfs /dev/vdb1 # 扩容文件系统

3.5 ECS构建云盘

1.下载nginx
2.下载高版本php

 wget http://cdn.xuliangwei.com/php.zip

3.统一用户身份运行nginx和php-fpm例如用nginx用户

4.递归授权可道云目录/code 为nginx
5.配置nginx代理

server {
    
    

	listen 80;
	server_name kod.bertwu.net;
	root /code;
	location / {
    
    
		index index.php;
	}
	
	location ~ \.php$ {
    
    

		fastcgi_pass 127.0.0.1:9000;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}


# 后期可以用这个kodcloud对接其他产品:
# 1.Redis、MySQL
# 2.NAS、OSS
# 3.DNS、CDN、HTTPS
# 4.SLB cookie植入

然后去云解析DNS上添加一条A记录
在这里插入图片描述

四、ECS快照服务

阿里云快照服务是一种无代理的数据备份方式,可以为所有类型的云盘创建崩溃一致性快照,用于备份或者恢复整个云盘。它是一种便捷高效的数据容灾手段,常用于数据备份、制作镜像、应用容灾等。

4.1 什么是快照

快照是某一时间点云盘数据状态的备份文件。云盘第一份快照是实际使用量的全量快照,不备份空数据块,后续创建的快照均是增量快照,只存储变化的数据块,增量快照

在这里插入图片描述

4.2 快照使用场景

  • 容灾备份:为云盘创建快照,再使用快照创建云盘获取基础数据,实现同城容灾和异地容灾。
  • 环境复制:使用系统盘快照创建自定义镜像,再使用自定义镜像创建ECS实例,实现环境复制。
  • 提高容错率:出现操作失误时,能及时回滚数据,降低操作风险,实现版本回退。
  • 定期创建快照,避免因操作失误或外部攻击等原因导致数据丢失。例如,团队成员不慎在云盘上存储了错误的数据、ECS实例被误释放、应用错误导致了数据错误、或骇客利用应用漏洞恶意删除业务数据等
  • 执行重要操作前创建一份快照,常见的运维操作包括更换操作系统、应用软件升级或业务数据迁移等

4.3 手动创建快照-实践

重要操作时,需要临时取创建一个快照;点击对应的云主机,选择云盘–>针对对应的磁盘–>创
建快照
在这里插入图片描述

4.4 自动快照策略

左侧导航栏存储与快照–快照–自动快照策略
在这里插入图片描述

五、ECS镜像服务

镜像
ECS镜像提供了创建ECS实例所需的信息。创建ECS实例时,必须选择镜像。镜像文件相当于副本文件,该副本文件包含了一块或多块云盘中的所有数据,对于ECS实例而言,这些云盘可以是单块系统盘,也可以是系统盘加数据盘的组合。

5.1 镜像类型

ECS镜像根据来源不同,分为公共镜像、自定义镜像、共享镜像和镜像市场镜像。
在这里插入图片描述

5.2 镜像生命周期

在这里插入图片描述
基于快照–>构建镜像–>基于镜像–>创建实例(与快照那一刻的数据是一致的)
基于镜像–>复制到其他的可用区,其他可用区可以基于镜像启动实例(与快照那一刻的数据是一致的)
基于镜像–>共享给其他阿里云账户
基于镜像–>导出到本地,在本地加载镜像,读取数据(与快照那一刻的数据是一致的)

5.3 手动创建镜像

基于快照手动创建镜像,然后基于镜像创建实例。
在这里插入图片描述

5.4 镜像的复制与共享

可以把镜像复制到不同地域,用于恢复,也可以共享给其他人

5.5 镜像的导出与删除

六、CLB 负载均衡

CLB文档
负载均衡SLB(Server Load Balancer)是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
阿里云负载均衡SLB分为两类:传统型负载均衡CLB和应用型负载均衡ALB。
在这里插入图片描述
ALB:专门面向七层,提供超强的业务处理性能,例如HTTPS卸载能力。单实例每秒查询数QPS(Query Per Second)可达100万次。同时ALB提供基于内容的高级路由特性,例如基于HTTP报头、Cookie和查询字符串进行转发、重定向和重写等,是阿里云官方云原生Ingress网关。应用型负载均衡ALB
CLB:支持TCP、UDP、HTTP和HTTPS协议,具备强大的四层处理能力,以及基础的七层处理能力。传统型负载均衡CLB
在这里插入图片描述

6.1 什么CLB

传统型负载均衡CLB(Classic Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。CLB 扩展了应用的服务能力,增强了应用的可用性。

CLB通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能和高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。

CLB默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,CLB还具备抗DDoS攻击的能力,增强了应用服务的防护能力。

6.2 CLB组成部分

  1. CLB实例 (Instances)
    一个CLB实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个CLB实例,并至少添加一个监听和两台ECS实例。

  2. 监听 (Listeners)
    监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。

  3. 后端服务器(Backend Servers)
    后端服务器是一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理
    在这里插入图片描述
    产品架构与应用场景

6.3 CLB实践

6.3.1 TCP协议实现端口映射

需求:
1.请求负载均衡CLB的 6666 端口转发至 ECS01 的22端口;
2.请求负载均衡的 5555 端口转发至 ECS02 的22端口;
实现:
先购买CLB实例,控制台搜 负载均衡,选择CLB,按需购买即可

在这里插入图片描述
购买成功后绑定EIP,然后点击监听向导,配置
在这里插入图片描述
最终效果展示
在这里插入图片描述

6.3.2 基于HTTP实现负载均衡

需求:
1.所有ECS节点已安装kodcloud网盘,并监听至80端口;
2.通过负载均衡实现轮询调度;
3.通过负载均衡 植入 “cookie” 方式实现会话保持;
在这里插入图片描述
在这里插入图片描述

6.3.3 基于http协议实现URL调度

需求:
1.请求域名/user, 调度到 web01 8080,8081端口;
2.请求域名/pass, 调度到 web02 8080,8081端口;
3.如果直接访问域名,则返回一个默认站点(web01 web02 80端口;)
实现:
1.以Nginx为例,如何实现;
2.以Haproxy为例,如何实现;
3.以SLB为例,如何实现;

创建虚拟服务器组,添加后端虚拟主机8080 和8081

[root@iZ2ze75lwzp5qwd7k6jn21Z ~]# cat /etc/nginx/conf.d/url.conf 
server {
    
    
	listen 8080;
	#server_name xxx.com;
	root /user/8080;
	location / {
    
    
		index index.html;
	}

}

server {
    
    
        listen 8081;
        #server_name xxx.com;
        root /user/8081;
        location / {
    
    
                index index.html;
        }

}

在这里插入图片描述
然后配置转发策略
在这里插入图片描述

6.3.4 基于HTTP实现域名调度

需求:
1.[ aly slb kod ] 多个域名解析到同一台
SLB服务器
2.将请求 aly.example.com 调度到 test1资源
池(web01 web02 8888)
3.将请求 slb.example.com 调度到 test2资源
池(web01 web02 9999)
4.将请求 kod.example.com 调度到 test3资源
池(web01 web02 80)
实现:
1.以Nginx为例,如何实现;
2.以Haproxy为例,如何实现;
3.以SLB为例,如何实现

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46090675/article/details/121115199