云是一种”按需付费的模式“,这种模式提供了(计算、存储、网络等资源),这些资源能够被快速提供。实现云计算的底层技术,是虚拟化技术,KVM,VmWare等。
例如阿里云、腾讯云等,获取和部署方便,不需要自己管理硬件设备,但是有可能不安全,核心业务,数据库等托管在人家机房。
私有云:自建机房,自己搭建,所有自行管理 (局限:资源固定)
实现方式:将真实的物理服务器逻辑捆绑成一个虚拟资源池,用户可以根据虚拟资源池按需使用,资源是固定。
混合云(主要业务放私有云、当有临时需求的时候使用公有云,使用结束后释放)
使用场景1:当业务高峰资源不足时,可以临时按量使用公有云,保证业务稳定,同时能节省一定的成本
使用场景2:公司核心业务在自建机房,非核心业务使用公有云;
二、ECS
ECS
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
选择云服务器ECS,您可以轻松构建具有以下优势的计算资源:
每个地域完全独立。每个可用区完全隔离,但同一个地域内的可用区之间使用低时延链路相连。
地域
地域是指物理的数据中心。资源创建成功后不能更换地域
可用区
可用区(Availability Zone,简称AZ)是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。
在同一地域内可用区与可用区之间内网互通,可用区之间能做到故障隔离。是否将实例放在同一可用区内,主要取决于对容灾能力和网络延时的要求。
如果您的应用需要较高的容灾能力,建议您将实例部署在同一地域的不同可用区内。
如果您的应用要求实例之间的网络延时较低,建议您将实例创建在同一可用区内。
不同地域的实例之间内网互不相通;选择靠近您客户的地域,可降低网络时延、提高您客户的访问速度
相同地域,相同可用区内网互通
相同地域,不同可用区之间内网互通
不同地域,相同可用区和不同可用区不互通,需要借助云企业网
4c x 64GB 物理机 磁盘 SAS = 400Mbps
4c x 64GB 云主机 高效云盘 大概 100Mbps
云上 SSD 固态盘 = 400Mbps 相当于 物理盘的SAS
磁盘测试命令:dd | hdparm -t /dev/vda1
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: 数据库组件
1.购买主机:选择付费模式,选择对应的地域,选择实例规格,选择镜像的版本;
2.系统配置:配置VPC网络,配置安全组;
3.主机操作:控制台登录主机方式、Xshell登录主机方式(EIP)、密码重置方式
远程登录方式,可以VNC (向虚拟机那样),也可以Workbench远程连接(相当于xshell)
添加公网IP,实现远程连接
购买EIP一定要买到所在地域的公网IP。
购买后绑定公网IP后就能远程连接了,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 # 扩容文件系统
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植入
阿里云快照服务是一种无代理的数据备份方式,可以为所有类型的云盘创建崩溃一致性快照,用于备份或者恢复整个云盘。它是一种便捷高效的数据容灾手段,常用于数据备份、制作镜像、应用容灾等。
快照是某一时间点云盘数据状态的备份文件。云盘第一份快照是实际使用量的全量快照,不备份空数据块,后续创建的快照均是增量快照,只存储变化的数据块,增量快照
重要操作时,需要临时取创建一个快照;点击对应的云主机,选择云盘–>针对对应的磁盘–>创
建快照
镜像
ECS镜像提供了创建ECS实例所需的信息。创建ECS实例时,必须选择镜像。镜像文件相当于副本文件,该副本文件包含了一块或多块云盘中的所有数据,对于ECS实例而言,这些云盘可以是单块系统盘,也可以是系统盘加数据盘的组合。
ECS镜像根据来源不同,分为公共镜像、自定义镜像、共享镜像和镜像市场镜像。
基于快照–>构建镜像–>基于镜像–>创建实例(与快照那一刻的数据是一致的)
基于镜像–>复制到其他的可用区,其他可用区可以基于镜像启动实例(与快照那一刻的数据是一致的)
基于镜像–>共享给其他阿里云账户
基于镜像–>导出到本地,在本地加载镜像,读取数据(与快照那一刻的数据是一致的)
可以把镜像复制到不同地域,用于恢复,也可以共享给其他人
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
传统型负载均衡CLB(Classic Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。CLB 扩展了应用的服务能力,增强了应用的可用性。
CLB通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能和高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。
CLB默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,CLB还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
CLB实例 (Instances)
一个CLB实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个CLB实例,并至少添加一个监听和两台ECS实例。
监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
后端服务器(Backend Servers)
后端服务器是一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理
产品架构与应用场景
需求:
1.请求负载均衡CLB的 6666 端口转发至 ECS01 的22端口;
2.请求负载均衡的 5555 端口转发至 ECS02 的22端口;
实现:
先购买CLB实例,控制台搜 负载均衡,选择CLB,按需购买即可
需求:
1.所有ECS节点已安装kodcloud网盘,并监听至80端口;
2.通过负载均衡实现轮询调度;
3.通过负载均衡 植入 “cookie” 方式实现会话保持;
需求:
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;
}
}
需求:
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为例,如何实现