云计算知识点总结
一、环境与权限(比赛必写)
1. 操作系统
- 使用 Amazon Linux 2(最新稳定版)
- AMI 选择: Amazon Linux 2 AMI (AWS 官方)
2. 监听指定 TCP 端口(默认 80)权限
AWS 中国区(必记)
- 官网:https://www.amazonaws.cn/
- 控制台:https://console.amazonaws.cn/
- 免费套餐:https://www.amazonaws.cn/free
- 区域:北京(cn-north-1)、宁夏(cn-northwest-1)
AWS 国际区(Global)
- 官网:https://aws.amazon.com/
- 控制台:https://console.aws.amazon.com/
- 免费套餐:https://aws.amazon.com/free
- 常用亚太区域:香港(ap-east-1)、新加坡(ap-southeast-1)、东京(ap-northeast-1)
1. 安装依赖:
bash
yum install -y gcc make
2. 允许普通用户监听 80 端口
bash
sudo /usr/sbin/setcap cap_net_bind_service=+ep /usr/bin/python3.9
getcap /usr/bin/python3.9
3. 防火墙放行 80 端口
yum install -y firewalld
systemctl start firewalld
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
4. AWS 安全组放行 TCP 80 入方向
二、配置文件要求(必须叫 server.ini)
kms->cmk:
key actions(cancel)再点enable
将effect:deny 改为effect:allow
session manager:sudo -i
s3 backets labstack->KeyToGetPassword
aws s3 cp +s3url(复制过来的)
enter_kms_key_id(替换成kms最上面复制的东西)
cat outputpile获得秘钥的值
# 创建目录(-p 表示如果父目录不存在也一并创建)
sudo mkdir -p /etc/myapp # 再次查看,
确认目录已创建 ls /etc/myapp
touch /etc/myapp/server.ini
ls /etc/myapp
nano /etc/myapp/server.ini
# 服务器基础配置 [server] # 监听地址(0.0.0.0 表示允许所有IP访问) host = 0.0.0.0 # 监听端口(你之前配置了80端口权限,这里用80) port = 80 # 运行模式(debug为调试模式,生产环境可改为production) mode = debug # 最大连接数 max_connections = 1000 # 日志配置 [logging] # 日志级别:DEBUG/INFO/WARNING/ERROR/CRITICAL level = INFO # 日志文件路径 file_path = /var/log/myapp/server.log # 是否输出到控制台 console_output = True # 应用配置 [app] # 应用名称 name = MyWebApp # 静态文件目录(如前端页面、图片等) static_dir = /var/www/static # 模板文件目录(如HTML模板) template_dir = /var/www/templates
修复路由
route print | findstr "161.189.116.17"
route print | findstr "169.254.169.254"
route delete 169.254.169.254(删除错误路由)
$ifIndex = (Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -like '10.*' }).InterfaceIndex(主网卡接口)
route add 169.254.169.254 mask 255.255.255.255 10.0.1.1 metric 1 if $ifIndex(添加正确路由)
route add 161.189.116.17 mask 255.255.255.255 10.0.1.1 metric 1 if $ifIndex
$token = Invoke-RestMethod -Method Put -Uri "http://169.254.169.254/latest/api/token" -Headers @{"X-aws-ec2-metadata-toke
n-ttl-seconds" = "21600"}(重点获取token)
iwr -Uri "http://169.254.169.254/latest/meta-data/" -Headers @{"X-aws-ec2-metadata-token" = $token} -UseBasicParsing(重点返回200)
三、目录权限(服务器必须能写)
1. 日志目录(写 app_log)
mkdir -p /var/log/myapp
sudo chown -R ec2-user:ec2-user /var/log/myapp
nano /var/log/myapp/app_log
import configparser
import logging
import os
from datetime import datetime
# 1. 读取配置文件(和你的server.ini关联)
config = configparser.ConfigParser()
config.read('/etc/myapp/server.ini')
# 2. 获取日志配置(从server.ini中读取路径)
log_dir = config['server']['log_dir'] # /var/log/myapp
log_file = config['server']['log_file'] # app_log
log_path = os.path.join(log_dir, log_file) # 拼接成 /var/log/myapp/app_log
# 3. 确保日志目录存在(避免写入失败)
os.makedirs(log_dir, exist_ok=True)
# 4. 配置日志格式(大赛规范:时间+级别+模块+内容)
logging.basicConfig(
level=logging.INFO, # 日志级别(和配置文件一致)
format='%(asctime)s [%(levelname)s] %(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S', # 时间格式
handlers=[
logging.FileHandler(log_path, encoding='utf-8'), # 写入日志文件
logging.StreamHandler() # 同时输出到控制台(方便调试)
]
)
# 5. 示例:在程序中记录日志(大赛中按需调用)
负载均衡器不会自动监听特定端口的流量,你必须添加一个监听器
- 选择资源映射标签,查看无监听器并配置规则
- 选择“监听者与规则”标签
选择并按照以下步骤配置听众:
规程:HTTP
移植版:80
默认作:转发到目标群体
ipv6拒绝外部攻击:
vpc 创建子网的时候选10.0.16.0 第三位为16的倍数 子网编辑网络自动创建ipv6
安全组出站规则无 入站tcp ipv6 实例类似
nslookup -query=AAAA ipv6.baidu.com
logger = logging.getLogger(__name__)
# 记录服务启动日志
logger.info(f"Web服务启动成功,监听端口:{config['server']['port']}")
# 记录数据库连接日志
try:
logger.info(f"尝试连接MySQL:{config['mysql']['host']}:{config['mysql']['port']}")
# 这里写实际的MySQL连接代码
logger.info("MySQL连接成功")
except Exception as e:
logger.error(f"MySQL连接失败:{str(e)}")
# 记录Redis连接日志
try:
logger.info(f"尝试连接Redis:{config['redis']['host']}:{config['redis']['port']}")
# 这里写实际的Redis连接代码
logger.info("Redis连接成功")
except Exception as e:
logger.error(f"Redis连接失败:{str(e)}")
cat /var/log/myapp/app_log
2. 缓存存储区域
mkdir -p /var/cache/myapp
chown -R ec2-user:ec2-user /var/cache/myapp
四、Redis 访问要求
使用应用负载均衡器提供高可用性:
让负载均衡的目标群组,注册ec2实例之后为健康 路径/health(多实例加多可用区)
负载均衡vpc和子网至少两个可用区
① 进入 EC2 控制台,打开「目标群体」列表,选中目标群体;
② 切换到「属性」标签,点击「编辑」;
③ 在「负载均衡算法」下拉菜单中选择目标算法(轮询/最小未完成请求数/源 IP 粘性)
1. 安装客户端
yum install -y redis6
2.测试连通性
redis6-cli -h 127.0.0.1 -p 6379 ping
五、MySQL 访问要求(指定表结构)
- 导航至 VPC -> 路由表
- 选择一个路由
- 前往子网关联标签页
- 点击右侧的“编辑子网关联”
- Select 一个子网
- 点击保存关联
- 对其他路由表和子网关联也一样
监听协议选择https 协议版本http1
刷新在自动缩放组中运行的实例
- 将可用性设置为终止并启动
- 取消选择启用跳过匹配
增加自动缩放组中期望实例数量
将所需容量更新为2
1. 安装客户端
yum install -y mariadb105-server mariadb105
2. 测试连接
mysql -u root
-- 1. 创建数据库
CREATE DATABASE IF NOT EXISTS app_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 切换到新数据库
USE app_db;
-- 3. 创建用户表
CREATE TABLE `user_info` (
`id` INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '用户唯一ID,自增主键',
`username` VARCHAR(50) NOT NULL COMMENT '用户名,最大50字符',
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间,默认当前时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户基础信息表';
-- 4. 验证表是否创建成功
SHOW TABLES;
DESC user_info;
https://docs.aws.amazon.com/zh_cn/
- RDS PostgreSQL:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_ConnectToPostgreSQLInstance.html
- EC2:https://docs.aws.amazon.com/zh_cn/ec2/
- IAM:https://docs.aws.amazon.com/zh_cn/iam/
- VPC:https://docs.aws.amazon.com/zh_cn/vpc/
堡垒机配置它的安全组放行rdp 外部windows连接
更多推荐

所有评论(0)