1.云基本介绍
1.1) 什么是云?
云是一种”按需付费的模式“,这种模式提供了(计算、存储、网络等资源),这些资源能够被快速提供。
1.包年包月;
2.按需付费; SIM流量一样; 用多少给多少钱;
云只是一种思想,并不是某种具体的技术;
云需要依托于 虚拟化技术才可以实现;
1.2) 云的分类?
公有云(阿里云、腾讯云)只有使用权,按需付费(技术层面:数据不安全)
熊猫TV --> 阿里云; 阿里云投资 --> 斗鱼;
熊猫TV --> 迁移云上的业务 --> 腾讯云;
私有云(自建机房,自己搭建,所有自行管理 (局限:资源固定))
将真实的物理服务器逻辑捆绑成一个虚拟资源池,用户可以根据虚拟资源池按需使用,资源是固定。
Openstack,Docker,Kubernetes, 私有云; 在公司, 使用多台性能较高的物理主机, 逻辑组成一个庞大资源池;
ESXI 集成了linux操作系统 集成虚拟化产品 直接安装到物理机上(虚拟化产品 按需创建主机)
根据业务需要,进行按需创建,使用对应的资源;
不对外开发,仅对本公司开放;
好处: 数据安全,
劣势:
1.自己维护,自己管理,成本高;
2.无法快速的扩展节点; 10台机器组成; 300-400台的;
那私有云跟传统机房有啥区别啊,都是自己弄物理设备
私有云: 多台机器逻辑捆绑在一起;组成的资源池; --> 系统平台;
传统机房: 物理机器托管在机房; 在物理机上运行资源; --> 3台 --> MySQL Mha
也就是都是这堆物理设备,但是对于它们的运用方式不一样
混合云(主要业务放私有云、当有临时需求的时候使用公有云,使用结束后释放)
按需使用、按需付费、保证业务稳定的同时,也能节省一定的成本。
两类场景:
1.公司正常的业务运行,资源不够, 借助公有云来快速,高效扩展业务;
2.重要的业务,核心的业务,在私托有云平台, 官网, OA, 等等 不是很敏感的信息,托管在公有云;
https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.zhiding.cn%2F5%2F902%2FlixpBLHIdcZIc_600.jpg%3Frand%3D155&refer=http%3A%2F%2Fimg.zhiding.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625626132&t=052d86edae7c9ead828070ed1b8c917f
1.3) 为什么要用云?
1)海量资源池灵活调配 [像大海一样|无尽头]
2)无处不在的网络访问 [随时随地能访问云资源]
3)随需应变的自助服务 [包年包月-电话卡|按需付费-流量包]
4)保证服务的高可用性
5)能实现快速弹性伸缩 [扩展|伸缩|自愈]
6) 省钱
扩展: 多加一个web节点;
伸缩: 减少一个web节点;
自愈: 一个节点出现问题 自动调用接口创建相同配置的服务器节点
1.4) 云有哪些厂商?
1) 阿里云 | 腾讯云 | Ucloud | 青云 | [ AWS ]
2) 华为云 | 京东云 | 滴滴云 |
1.5) 云上面的产品名词
1)物理服务器 --> 阿里云
2)服务器 --> ECS、快照、镜像,克隆;
3)负载均衡 --> SLB
4) 数据库 --> RDS
5) 存储服务 --> NAS、OSS
5) 防火墙 --> 安全组iptables,firewalld、高防IP、WAF
6)远程访问 --> VPN | JumpServer + OpenVPN NAT
7) 消息队列 --> MQ
8) 内容分发网络 --> CDN缓存
..........................
1.6) 使用阿里云完成本次课程目标?--> 企业架构
https://www.processon.com/diagraming/5e4bc880e4b0d86ec4089270
2.ECS产品使用
云服务器(Elastic Compute Service,简称 ECS),是一种简单高效、可弹性伸缩的计算服务。
比如: 当服务器运行负荷不够时,通常的做法是增加服务器,那么增加服务器的流程和步骤如下:
1.购买硬件,拆开服务器、安装硬件设备。
2.部署系统、部署应用、接入集群。
但如果使用云主机,可以实现自动化感知、自动化扩展集群。
2.0) ECS云服务逻辑架构
https://help.aliyun.com/document_detail/25367.html?spm=a2c4g.11186623.6.553.32895c4ad25YGi
2.1) ECS地域与可用区说明
https://help.aliyun.com/document_detail/188196.html?spm=a2c4g.11186623.6.556.3e5e53c0ZQ8lpP
地域: 指的是一个城市;
可用区: 指的是城市下面的区;
1.相同地域,不同可用区之间的内网是互通的;
2.不同地域,相同可用区,内网不互通; 但是我们可以通过技术手段来实现互联互通;
3.每一个地域,都有一个VPC路由器; 每一个可用区都需要有一个交换机; 所有的交换机都是连接的同一个VPC路由器;
2.2)ECS云主机配置选型
web节点: 4c x 16Gb
DB节点: 4c x 64Gb 4c x 32Gb 12c x 128GB 建议使用:SSD 性能会受到磁盘的限制;
数据迁移 将物理机的服务 --> 云主机
故障案例:
4c x 64GB 物理机 磁盘 SATA = 400Mbps
4c x 64GB 云主机 磁盘 高效盘 100Mbps | SSD 固态盘 = 400Mbps
dd | hdparm -t /dev/vda1
2.3)ECS中的网络简要说明
EIP: 弹性公网IP
SLB: 负载均衡
NAT: 网关设备
VPN: 远程访问服务
VPC: 软件路由器 ( 可以创建交换机, 可以在每个可用区都创建 )
VPC文档:https://help.aliyun.com/document_detail/54095.html?spm=5176.11182174.content.1.4411488295LcKx#title-oil-ncn-266
2.4)ECS云主机购买|费用选择|地域选择|实例选择|镜像选择|
2.5)ECS系统设置|VPC网络|安全组|
2.6)ECS远程连接(控制台|Xshell|重置密码)
2.7) ECS其他操作(添加数据盘|扩容磁盘)
磁盘挂载过程:
1.购买一块磁盘 挂载到web01
2.进入系统分区
3.格式化
mkfs.xfs /dev/vdb1
4.mount /dev/vdb1 /mnt
磁盘在线扩容:
1.卸载磁盘
2.在线扩容到200G
3.fdisk /vdb
删除原来分区
重新分区
4.挂载
mount /dev/vdb1 /mnt
5.在线扩容文件系统
xfs_growfs /dev/vdb
2.8) ECS搭建kodcloud
2.8.1
安装Nginx
配置Nginx
server {
listen 80;
server_name test.linuxnc.com;
location / {
root /code;
index index.php index.html;
}
location ~ \.php$ {
root /code;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
启动Nginx
PHP-FPM 安装
加入开机自启动
下载可道云
wget http://static.kodcloud.com/update/download/kodbox.1.15.zip
解压到代码目录进行安装
Document: https://help.aliyun.com/product/25365.html?spm=a2c4g.11186623.6.540.4db0505cbq8EHp
3.ECS快照
3.1)快照基本介绍
3.2)快照使用场景
3.3)快照使用方式
手动创建快照
自动创建快照
Document:https://help.aliyun.com/document_detail/25391.html?spm=a2c4g.11186623.6.823.73175b2cIbssVu
4.ECS镜像
4.1)镜像基本介绍和使用
4.2)镜像的生命周期
4.3)基于快照创建镜像 克隆--> (基于快照-->镜像-->启动实例)
4.4)基于镜像启动实例(和此前的应用节点环境一致)
4.3)镜像复制、镜像共享、镜像删除
Document:https://help.aliyun.com/document_detail/25389.html?spm=a2c4g.11186623.6.737.68f9116diWlmEv
5.SLB负载均衡
5.1)SLB是什么
5.2)SLB负载均衡高可用
5.3)SLB负载均衡应用场景 [http场景|https场景|tcp场景]
5.4)SLB基于域名/URL路径进行转发(aliyun.example.com)
1.将/user的请求调度到 web01 8080端口
2.将/pass的请求调度到 web02 8080端口
3.如果直接访问该域名,则返回一个默认站点(ecs01 ecs02 kodcloud)
5.5) SLB基于不同的域名转发到不同的虚拟服务器组 aliyun.example.com slb.example.com
1.配置后端服务器ecs01、ecs02的Nginx
2.配置slb虚拟资源池,test1资源池(8888) test2资源池(9999)
3.配置dns的解析,将域名都解析至slb负载均衡的公网IP上
4.配置slb转发规则,根据域名调度到不同的服务资源池
5.6)作业:
1.阿里云多可用区的高可用解决方案[无法模拟效果-->只有可用区故障才切]
2.使用两个真实域名 a域名调度到两台服务器 b域名调度两台服务器 如果直接访问slb的公网IP则跳转到a域名
Document: https://help.aliyun.com/document_detail/27539.html?spm=a2c4g.11186623.6.544.3ad85339qTtOwW
作业: 配置80端口 配置443端口 自己买证书
80转443
5555->WEB01:22
6666->WEB02:22
6.RDS数据库服务-Redis
6.1)RDS-Redis架构
6.2)RDS-Redis实例创建
1.获取redis集群内网地址
2.配置redis集群用户名和密码 123@qqcom
3.配置谁可以访问redis,设置白名单 加载ECS
4.连接方式redis-cli -h oldboy.redis.rds.aliyuncs.com -a 'oldboy:123@qqcom'
6.3)RDS实例设置设置免密访问
6.4)RDS实例设置外网连接IP (使用密码的方式连接,免密会报错)
6.5)RDS实例设置直连模式
6.6)RDS实例备份与恢复(集群RDB 标准版可以是AOF)
6.7) 实战:实现kodcloud缓存(注意:redis密码不要特殊字符开头)
Document: https://help.aliyun.com/product/26340.html?spm=a2c4g.11174283.6.34.690852feQTaE4k
作业:
1.购买标准版-双副本(社区版)Redis实例,进行AOF备份与恢复。
2.使用redis-shake方式备份 RDS-Redis的集群。
7.RDS数据库服务-mysql
7.1)RDS-MySQL架构
7.1) 购买RDS数据库
7.2) 配置白名单(允许谁能连接),获取RDS内网数据库地址
7.3) 创建用户,点击账号管理,创建用户,等待1分钟。
7.4) 通过ecs云主机的内网连接RDB数据库
7.5) 如何配置RDB能通过外网连接
1.设置白名单,才会显示内网RDS可连接地址 rm-2zea2795fzoaqwqlj35890.mysql.rds.aliyuncs.com
2.配置用户名和密码 (oldboy:123@qqcom)
3.配置外网地址(公司的固定IP|0.0.0.0/0)
7.6) 配置RDB读写分离
1.添加只读实例,购买2台主机
2.数据库代理->开启代理服务->开启读写分离(自动显示架构图)
3.让程序直接连接该地址,自动实现了读写分离
7.7) 配置RDB的备份策略, 备份恢复中点击->备份设置,根据实际情况做调整。
7.8) 实践:搭建wordpress、共享数据至RDS
Document: https://help.aliyun.com/document_detail/96047.html?spm=a2c4g.11174283.6.603.72514c22mb10IC
Oldboy@qqcom
8.NAS存储服务-NFS
10.1) NAS基本介绍
10.2) NAS使用流程
10.3) 实战:共享多ECS静态资源至NAS
Document: https://help.aliyun.com/product/27516.html?spm=a2c4g.750001.list.20.f8277b13O5C1mf
15.OSS对象存储
15.1) 什么是对象存储?
15.2) 对象存储使用场景?
15.3) Kodcloud对接OSS存储构建私有网盘
Document:https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.6.540.152f406cjmJWuA
1)创建Bucket
2)权限管理--> 访问控制 RAM --> 创建子账号
收集子账号信息
3)权限管理--> Bucket 授权策略 --> 将Bucket授权给创建的子账号
4)添加到KOD业务中
1.通过快照创建镜像
2.通过镜像启动两台web
3.购买SLB负载 端口转发 80 5555 6666
4.购买redis 集成 kod
5.购买msyql集成 kod 购买标准版 主从 升级成读写分离
6.购买NAS文件存储 集成到kod
9.DNS
9.1) DNS基本介绍
1.域名对应IP关系 (方便记忆)
2.迁移使用DNS的方式会更加的方便
9.2) DNS分类
公网DNS (万网) 互联网
内网DNS (bind9) 局域网
9.2) DNS解析原理 如何获取的IP地址
9.3)DNS递归查询与迭代查询
递归算法: 我向LocalDNS查询域名—>localDNS不知道域名对应的IP—>但它知道谁知道—>他代为帮你去查找-->最后在返回结果
迭代算法: 我向LocalDNS查询域名—>localDNS不知道域名对应的IP—>但它知道谁知道—>你自己去找它
9.4) DNS几种解析 (A|AAAA|CNAME)
9.3) 配置DNS解析(A记录、CNAME记录)
Document:https://help.aliyun.com/product/29697.html?spm=a2c4g.11186623.6.540.76984dd5MJZuY8
10.CDN
10.1) CDN实现原理
10.2)CDN架构介绍 (回源站|CDN根据OSS存储资源缓存)
10.3)CDN其他产品 SCDN(安全与速度) 全站CDN(动态居多)
10.4) 配置CDN场景
1.简单的验证: 先搭建一个可道云,然后检测是否丛源站获取资源,然后配置加速,在验证是否丛不同的CDN节点获取的资源.
2.分布式缓存:源站提供mp4下载,然后通过不同地域的服务器wget资源,检查是否是从不同地域的边缘节点获取的资源。
3.检测的站点 ( http://tool.chinaz.com/speedtest.aspx | https://tools.ipip.net/ping.php )
10.5) 实践:CDN预热与刷新
1.CDN-缓存配置-缓存过期时间->添加对应格式后缀
2.上传一张图片,使用预热方式缓存,然后替换该图片(名称一致),测试,最后使用刷新,检查是否更新成功。
预热的目的: 减少回源率,提高命中率.
Document:https://help.aliyun.com/product/27099.html?spm=a2c4g.750001.list.74.70497b13IJcDtu
https://docs.qingcloud.com/product/network/cdn
作业:
1.创建web服务 启动nginx 介入CDN
2.上传一张图片 1.png
3.访问网站 查看1.png是否被CDN缓存
4.进入服务器后台 删除1.png 重新上传一个不一样的图片 名称也就1.png
5.在访问网站查看图片是否发生变化
11.HTTPS
11.1) 如何购买HTTPS
11.2) 企业购买HTTPS建议说明
11.3) 实战:配置SLB支持HTTPS
11.4) 实战:配置CDN支持HTTPS
Document:https://help.aliyun.com/product/28533.html?spm=a2c4g.750001.list.180.70497b13IJcDtu
12.WAF
12.1)WAF产品基本介绍
12.2)WAF接入网站架构
12.3)WAF+CDN接入网站架构
12.4)实战:WAF+CDN结合使用
1.购买一个WAF
2.配置WAF防火墙--443-->指向SLB源站负载均衡 (会得到一个WAF的CNAME地址)
3.修改CDN,将CDN的回源地址--443-->WAF的CNAME地址
4.给WAF上传对应域名的HTTPS证书
DDoS 攻击就像是坏人雇了成千上万人堵在奶茶店门口。真正想喝奶茶的人连商店的门都挤不进去。
CC 攻击是 DDoS 攻击的一个分支。
CC 攻击就是雇一堆人站在奶茶店柜台面前,拉着营业员要这要那,但就是不买,也不走。这导致售货员的注意力被牵制,根本没办法服务正常用户
开源产品 云锁waf
https://yunsuo.qianxin.com/cloud/download
13.ESS
13.1) 什么是弹性伸缩?
使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。
13.2) 弹性伸缩应用场景
某视频公司:春晚或每周五热门节目来临时,负载激增,需及时、自动扩展云计算资源。
某视频直播公司:业务负载变化难以预测,需要阿里云自动根据CPU利用率、应用负载、带宽利用率作为衡量指标进行弹性伸缩。
某游戏公司:每天中午12点及晚上6点到9点间需求增长,需要定时扩容。
某电商:在大促中,临时激增大量云服务器需求,需要在数分钟内实现从创建到可用。
13.3) 弹性伸缩模式
定时模式:您自定义自动伸缩发生的时间和频率,如每天 13:00增加 ECS 实例。
动态模式:基于云监控性能指标(如 CPU 利用率),自动增加或减少 ECS 实例。
健康模式:如 ECS 实例为非 Running 状态,弹性伸缩将自动移出或释放不健康的 ECS 实例。
13.4) ESS弹性伸缩配置实践
配置的流程: 配置好负载均衡-->创建伸缩组-->添加伸缩配置-->添加已有ECS实例-->启用伸缩组
1) 创建伸缩组规则
1.1) 添加ECS实例规则 CPU大于80%
1.2) 减少ECS实例规则 CPU小于30%
2) 弹性伸缩规则会在什么时候添加或减少,根据动作来触发.
定时任务
云上监控
Document:https://help.aliyun.com/product/25855.html?spm=a2c4g.11186623.6.540.535448595bgK6Y
14.NAT(运维)网络地址转换
14.1) 内网ECS没有购买公网IP,无法上网
方式一、firewalld实现内部主机共享上网(不推荐)
1.购买一台ECS专门用于共享上网,需要有独立公网IP,主机名称为Manager
2.开启Manager服务器firewalld防火墙,打开masquerade路由转发功能
3.找到需要上网的ECS实例所在的VPC网络,添加一条路由规则,去往0.0.0.0/0 下一跳是Manager 这台ECS实例
方式二、NAT网关实现内网共享上网 (强烈推荐)
1.购买按量付费的NAT网关
2.购买弹性EIP,将EIP捆绑置NAT网关
3.配置NAT网关的SNAT路由条目,进行地址转换,最后测试连通性
注意: NAT网关设备允许多个可用区共用一个NAT网关设备进行上网
Document:https://help.aliyun.com/product/44413.html?spm=a2c4g.11186623.6.540.47462f2aoaZFjK
14.2)解决内网主机无法直连的问题
方式一、跳板机方式
方式二、负载均衡TCP
方式三、NAT网关端口映射( 需要额外在购买一个弹性公网IP地址 )