ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AWS RDS MySQL 实战指南:从创建 MySQL 数据库实例到配置只读副本(devops-exercises 实操)

AWS RDS MySQL 实战指南:从创建 MySQL 数据库实例到配置只读副本(devops-exercises 实操) 文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载本篇技术指南以 devops-exercises 仓库中的 MySQL DB 练习 为核心完整讲解如何在 AWS RDS 上创建一个符合生产要求的 MySQL 数据库实例db.t2.micro、gp2 存储、存储自动扩容阈值 500 GiB、公网访问、3306 端口、数据库名 db、备份保留 10 天并在此基础上创建只读副本Read Replica。读完本文你将掌握 RDS 控制台的完整创建流程、每个关键配置项的作用与取值范围以及只读副本的适用场景与使用注意事项可直接用于 Devops 面试准备或真实云环境演练。练习目标速览本练习exercise.md包含两项核心目标创建一个 MySQL 数据库并满足以下全部属性要求实例类型db.t2.micro存储类型gp2启用存储自动扩容Storage Auto Scaling阈值设置为 500 GiB启用公网访问Public access端口设置为3306数据库名db备份保留期10 天为已创建的数据库创建只读副本Read Replica这是一道典型的 AWS 面试实操题覆盖了 RDS 创建中最常被问到的几个核心概念实例规格选型、存储类型与自动扩容、网络访问、端口、备份策略以及读写分离架构。一、前置准备与注意事项在开始之前有几个前提需要明确费用提示仓库的 AWS README 明确提醒Some of the exercises cost $$$ and cant be performed using the free tier or resources即部分练习会产生费用无法完全在免费额度内完成。RDS 实例与存储按运行时长计费记得在练习结束后删除数据库实例避免持续扣费。建议结合 IaC 练习README 同时建议尽量使用 Terraform、Pulumi 等 IaC 技术来解决练习Its recommended you use IaC technologies to solve the exercises。本文先给出控制台操作路径与官方 solution 一致符合理解底层概念的目标若想进阶可参照仓库中 new_vpc 等目录下的 terraform/pulumi 写法自行落地。版本说明本练习以 AWS 控制台为标准创建流程实操时界面布局可能随 AWS 更新略有变化但核心配置项名称与含义不变。二、分步创建 MySQL RDS 数据库控制台完整流程以下步骤完整继承自 solution.md并补充了每个配置项的作用说明。第 1 步进入 RDS 服务并开始创建登录 AWS 控制台进入RDS服务。点击左侧菜单Databases数据库点击Create database创建数据库按钮。第 2 步选择创建方式与引擎选择Standard create标准创建。该方式允许逐项手动配置适合本练习需要精确控制每个属性的场景。数据库引擎选择MySQL并采用 AWS 推荐的版本Recommended version。RDS 是托管服务Managed Service引擎补丁与基础运维由 AWS 负责你无需也无法SSH 登录实例内部。第 3 步选择模板选择Production生产模板。生产模板会预置更强的默认配置如启用了部分高可用与备份选项与练习中备份保留 10 天等生产化要求相契合。注意练习后续步骤明确选择Do not create a standby instance不创建备用实例即不启用 Multi-AZ这与仓库 README 中RDS Multi-AZ 主要用于灾难恢复的定位一致——本练习只关注单实例 只读副本的架构而不是 Multi-AZ 高可用架构。第 4 步实例标识与凭据指定DB instance identifier数据库实例标识符例如mysql-db-exercise。指定Credentials主用户名与密码设置 master username如admin和密码。这是连接数据库的根级凭据务必妥善保管。第 5 步实例规格DB instance class实例类型选择Burstable classes可突发类下的db.t2.micro。关于db.t2.micro需要理解几点db.t2.micro是 RDS 的可突发Burstable入门级实例提供 1 vCPU 与 1 GiB 内存适合开发、测试与学习场景在空闲时段可累积 CPU 积分实现突发性能但长时间高负载会耗尽积分。命名规则与 EC2 一致db前缀标识 RDS 实例类t为通用型2为世代micro为尺寸决定 vCPU 与内存规格。从 Aurora DB 练习 可以看到同类题目使用了db.t3.small说明这类题目考察的是能读懂实例规格并正确选择的能力。第 6 步存储配置核心考点Storage type存储类型选择gp2。gp2属于通用型 SSDGeneral Purpose SSD仓库 AWS README 在 EBS 问答部分指出 SSD 分为io1/io2最高性能与gp2/gp3通用型而gp2的特点是存储越大IOPS 越高In EBS gp2 volume type, IP will increase if the disk size increases。对于 RDS 而言gp2 同样遵循容量越大基线 IOPS 越高的规律是性价比均衡的默认选择。Enable storage autoscaling存储自动扩容勾选启用并将Maximum storage threshold最大存储阈值设置为500 GiB。这是本练习的核心考点之一。RDS Storage Auto Scaling 的行为在 AWS README 中有明确说明RDS 存储可以在空间不足时自动增加容量自动扩展用户需要设置 Maximum Storage Threshold 来限制存储扩到的上限典型使用场景是负载不可预测的应用Use cases: applications with unpredictable workloads该特性支持多种 RDS 数据库引擎。实际机制当实例实际存储使用量超过某个比例例如 90%且剩余空间不足以支撑增长时RDS 会自动按一定的步长通常约为当前容量的 10%扩容直至达到你设定的 500 GiB 上限。设置上限的目的是防止无限扩容造成费用失控——这是面试中经常追问的点自动扩容解决容量规划问题阈值解决成本控制问题。第 7 步可用性与网络另一核心考点Availability and durability可用性与持久性选择Do not create a standby instance不创建备用实例。练习刻意不启用 Multi-AZ因为本练习的重点是只读副本而非高可用备用实例两者切勿混淆详见下文第四节。Connectivity网络连接选择默认 VPC 与默认子网Choose a default VPC and subnet。默认 VPC 已预置了互联网网关与默认路由便于后续验证公网访问。Public access公网访问选择Yes是。⚠️ 需要强调启用公网访问意味着数据库实例会获得公网可达性必须配合安全组Security Group严格限制入站来源。若只为练习验证建议将安全组入站规则限定为你的办公 IP 或临时 IP而不是 0.0.0.0/0。生产环境强烈不建议开放公网访问更推荐通过 VPC 内网或 Bastion 访问。Availability Zone可用区选择No preference无偏好由 AWS 自动分配。Database port数据库端口设置为3306。这是 MySQL 的默认端口应用侧连接串JDBC/连接池应与此保持一致。第 8 步认证与数据库名Database authentication数据库认证选择Password and IAM database authentication密码与 IAM 数据库认证。该选项同时启用传统密码认证与 AWS IAM 认证。关于 IAM 认证仓库 README 给出了工作原理EC2 实例使用 IAM 角色发起 API 调用获取认证令牌auth token该令牌配合 SSL 加密用于访问 RDS 实例 令牌有效期lifetime为15 分钟。这意味着你可以让应用/服务器通过 IAM 角色动态获取短期令牌连接数据库而不是在代码里硬编码密码——这是生产环境推荐的实践方向。Initial database name初始数据库名设置为db。AWS 会为该实例创建一个名为db的初始数据库schema。第 9 步备份策略第三个核心考点Backup retention period备份保留期增加到10 天默认值为 7 天。关于 RDS 备份机制仓库 README 说明如下RDS 提供自动备份Automated backups每天在维护窗口内执行一次完整备份Full daily backup每 5 分钟备份一次事务日志Transactions logs backup every 5 minutes配合完整备份即可支持任意时间点恢复Point-in-Time Restore保留期默认 7 天可以按需增加本练习要求 10 天。备份保留期的含义自动备份与事务日志会保留最近 N 天此处为 10 天在保留期内你可以将数据库恢复到任意时间点超过保留期的备份会被自动清理。更长的保留期意味着更强的容灾能力也意味着更高的存储费用。第 10 步完成创建点击Create database创建数据库按钮等待实例状态变为Available。创建过程通常需要数分钟首次创建可能需要 515 分钟期间实例状态为Creating。三、创建只读副本Read Replica数据库创建并进入Available状态后执行练习的第二项目标回到Databases数据库左侧菜单找到刚创建的数据库。点击Actions操作→Create read replica创建只读副本。按需确认副本配置实例规格、可用区等点击Create read replica创建只读副本完成创建。只读副本背后的原理面试高频结合仓库 README 的知识点理解以下事实用途Read Replica 用于横向扩展读能力scale reads——Amazon RDS Read Replicas provide enhanced performance and durability for RDS database instances. They make it easy to elastically scale out beyond the capacity constraints of a single DB instance for read-heavy database workloads。简言之只读副本解决读多写少场景的读瓶颈让报表、分析、日志等重读应用走副本主实例专注写入。复制方式只读副本使用异步复制asynchronous replicationREADME 明确 RDS read replicas are asynchronous. This is done so the reads are consistent。这意味着副本上可能存在短暂的延迟replica lag——仓库在 FAQ 中有一个典型场景题用户更新论坛帖子后读取不到最新内容原因正是访问了尚未同步完成的只读副本。设计读副本架构时必须接受这种最终一致的语义。部署范围只读副本支持同可用区within AZ、跨可用区cross AZ与跨区域cross regionREADME 明确 True。跨区域副本常用于灾备与就近读取。连接方式对于 RDS非 Aurora只读副本有独立的端点endpoint与 DNS 名称应用若想让部分读流量走副本需要修改连接串指向副本端点README 明确 True. Since read replicas add endpoints, each with its own DNS name, you need to modify your app to reference these new endpoints to balance the load read。副本不支持写入。与 Multi-AZ 的区别极易混淆面试必考Multi-AZ用于灾难恢复/高可用主实例与另一可用区中的备用standby实例之间是同步复制应用始终访问同一个 DNS 名称主实例故障时 DNS 自动切换到备用实例实现自动故障转移README 明确数据同步复制、同一 DNS、故障时 DNS 自动指向 standby。Read Replica用于性能扩展读扩展异步复制、有独立端点、不提供自动故障转移。一句话总结Multi-AZ 可用性Read Replica 读性能。本练习同时体现了单实例无 standby只读副本这一架构组合。只读副本的典型使用场景仓库 README 给出示例主应用访问主数据库同时希望新增一个用于日志、分析analytics等场景的独立应用又不希望它干扰主库。此时为该应用创建只读副本实例第二个应用只访问副本主库压力不受影响。四、配置项速查表与验证清单配置项本练习要求含义与说明创建方式Standard create逐项精确控制配置引擎MySQL推荐版本RDS 托管关系型数据库模板Production生产级默认配置实例类型db.t2.micro可突发入门级1 vCPU / 1 GiB存储类型gp2通用型 SSD容量越大 IOPS 越高存储自动扩容启用阈值 500 GiB空间不足自动扩容阈值控制成本上限备用实例不创建无 standby本练习不启用 Multi-AZVPC/子网默认 VPC 与子网便于验证网络连通公网访问是练习需要公网可达生产慎用并配合安全组可用区无偏好AWS 自动分配端口3306MySQL 默认端口认证密码 IAM 数据库认证IAM 令牌有效期 15 分钟配合 SSL初始数据库名db实例内创建的初始 schema备份保留期10 天每天全量备份 每 5 分钟事务日志支持时间点恢复创建完成后建议执行以下验证确认数据库实例状态为Available终端节点endpoint与端口显示正确主机名:3306。用主用户名/密码通过 MySQL 客户端如mysql -h endpoint -P 3306 -u user -p从外部连接验证公网访问、端口与安全组配置是否正确。在控制台查看Monitoring与CloudWatch指标确认读/写连接正常。查看副本状态确认副本处于Available且Replica lag副本延迟指标为合理小值。确认备份保留期显示为 10 天存储自动扩容设置中最大阈值显示 500 GiB。五、进阶方向结合 IaC 与关联练习仓库的 AWS README 建议使用 IaC 解决练习。你可以参照仓库中已有的 Terraform/Pulumi 结构如 new_vpc、subnets、s3/new_bucket 下的main.tf/__main__.py自行编写 RDS 资源声明将本练习中的全部属性实例类、存储类型、自动扩容阈值、端口、备份保留期、公网访问、只读副本固化为可重复执行的代码。此外建议横向对比关联练习 Aurora DB 练习 及其解决方案同样要求端口 3306、公网访问、备份 10 天但使用 Aurora MySQL 引擎db.t3.small并要求创建跨可用区的 reader 节点最终集群包含一读一写两个实例。通过对比可以看出RDS MySQL 与 Aurora 在副本/读节点模型上的差异——这也是面试中关于数据库选型的经典话题。六、面试与实战要点回顾RDS 是什么Relational Database Service托管关系型数据库服务支持 MySQL、Oracle、Aurora 等引擎你无法 SSH 进入实例补丁与基础运维由 AWS 负责README 依据。为什么用 RDS 而不是自建 EC2 数据库自动供给与打补丁、持续备份与任意时间点恢复、水平/垂直扩展、监控面板与只读副本README 依据。存储自动扩容自动扩容解决容量规划Maximum Storage Threshold 解决成本控制。备份机制每天全量 每 5 分钟事务日志默认保留 7 天可调本练习调至 10 天。只读副本异步复制、有独立端点、支持跨 AZ 与跨区域、只读不写、存在副本延迟。Multi-AZ vs Read Replica同步复制 同一 DNS 自动故障转移高可用vs 异步复制 独立端点读扩展。完成本练习后你不仅能在控制台上独立创建 MySQL RDS 实例与只读副本还能清晰回答存储自动扩容阈值的作用只读副本与 Multi-AZ 的区别为什么读副本会有延迟等面试高频问题并将同一套配置迁移到 Terraform 等 IaC 实践中。赞分享文档教程DevOps运维【免费下载链接】devops-exercisesLinux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions项目地址https://gitcode.com/GitHub_Trending/de/devops-exercises点击查看免费下载相关推荐掌握高效Instagram视频下载技巧Next.js构建的专业下载工具全解析掌握高效Instagram视频下载技巧Next.js构建的专业下载工具全解析 还在为无法保存Instagram上的精彩视频而烦恼吗Gram Grabberz文档教程DevOps运维Foundry forge test --json-file 详解将结构化测试结果写入文件而不干扰控制台输出Foundry forge test json file 详解将结构化测试结果写入文件而不干扰控制台输出 本文聚焦 Foundry 中 forge test文档教程DevOps运维组件开箱即用Eino中ChatModel、Tool与Retriever核心组件速览组件开箱即用Eino中ChatModel、Tool与Retriever核心组件速览 Eino 是一个用 Go 语言编写的 LLM大语言模型应用开发框架以人工智能大模型AI AgentRAG上一篇GetQzonehistory5步轻松备份你的QQ空间青春记忆永久珍藏数字时光下一篇GetQzonehistory5步轻松备份你的QQ空间青春记忆永久珍藏数字时光创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表