AWS 专题学习 P3 (RDS、Aurora、ElastiCache)

本文详细介绍了AmazonRDS和Aurora的关系型数据库服务特性,包括自动存储扩展、灾难恢复策略、备份选项、读写副本、Aurora的高可用性和自定义特性,以及ElastiCache缓存解决方案。同时涵盖了数据库安全和优化技术如RDSProxy的使用。
摘要由CSDN通过智能技术生成

专题总览

专题内容总览和系列博客目录
https://blog.csdn.net/weixin_40815218/article/details/135590291
辅助资料(PDF)
https://download.csdn.net/download/weixin_40815218/88741566

1. Amazon RDS Overview

  • RDS 代表关系型数据库服务
  • 它是一种托管数据库服务,用于使用SQL 作为查询语言的数据库。
  • 它允许您在云中创建由 AWS 管理的数据库
    • Postgres
    • MySQL
    • MariaDB
    • Oracle
    • Microsoft SQL Server
    • Aurora(AWS 专有数据库)

RDS v.s. 在 EC2 上部署数据库

  • RDS 是一项托管服务:
    • 自动配置、操作系统修补
    • 持续备份和恢复到指定时间戳(时间点恢复)
    • 监控仪表板
    • 读取副本以提高读取性能
    • DR(灾难恢复)的多可用区设置
    • 升级维护窗口
    • 缩放能力(垂直 & 水平)
    • EBS 支持的存储(gp2 或 io1)
  • 但是不能通过 SSH 直接连接到 RDS 实例

RDS — Storage Auto Scaling

  • 可以动态增加 RDS 数据库实例上的存储
  • 当 RDS 检测到数据库可用存储空间不足时,它会自动扩展
  • 避免手动扩展数据库存储
  • 必须设置最大存储阈值(数据库存储的最大限制)
  • 在以下情况下自动修改存储:
    • 免费存储空间少于分配存储空间的 10%
    • 低存储至少持续 5 分钟
    • 自上次修改以来已过去 6 小时
  • 适用于具有不可预测工作负载的应用程序
  • 支持所有 RDS 数据库引擎(MariaDB、MySQL、PostgreSQL、SQL Server、Oracle)
  • Screen Shot 2023-06-13 at 23.11.59.png

RDS Read Replicas

Read Scalability

  • 最多 5 个只读副本
  • AZ 内、跨 AZ 或 跨 Region
  • 复制是异步的,因此读取是最终一致的
  • 副本可以提升到它们自己的数据库
  • 应用程序必须修改连接地址字符串以利用只读副本

Screen Shot 2023-06-13 at 23.12.37.png

Use Cases

  • 已存在一个正常负载的生产数据库
  • 想使用一个报告应用程序来运行一些分析
  • 创建一个只读副本以运行新的工作负载
  • 希望生产应用不受影响
  • 只读副本仅用于 SELECT (=read) 类型的语句(不是 INSERT、UPDATE、DELETE)

Screen Shot 2023-06-13 at 23.16.09.png

Network Cost

  • 在 AWS 中,当数据 跨 AZ 传输 时会产生网络成本
  • 对于同一 Regoin 内的 RDS 只读副本,无需支付该费用

Screen Shot 2023-06-13 at 23.16.38.png

RDS 多可用区(灾难恢复)

  • SYNC replication
  • 一个 DNS 名称 – 自动将应用故障转移到待机状态
  • 提高可用性
  • 在 AZ 丢失、网络丢失、实例或存储出现故障时进行故障转移
  • 无需手动干预应用程序
  • 不用于缩放
  • 注意:只读副本需要被设置为用于灾难恢复 (DR) 的多可用区

Screen Shot 2023-06-13 at 23.16.58.png

RDS — 从单可用区到多可用区

  • 零停机操作(无需停止数据库)
  • 只需点击数据库的“修改”
  • 以下情况在内部发生:
    • 拍摄快照
    • 从新 AZ 中的快照恢复新数据库
    • 在两个数据库之间建立同步

Screen Shot 2023-06-13 at 23.17.18.png

RDS Custom

  • 通过操作系统和数据库定制管理 Oracle 和 Microsoft SQL Server 数据库
  • RDS:自动设置、操作和扩展 AWS 中的数据库
  • Custom:访问底层数据库和操作系统,这样就可以:
    • 配置设置
    • 安装补丁
    • 启用原生功能
    • 使用 SSH 或 SSM 会话管理器访问底层 EC2 实例
  • 停用自动模式以应用程序自定义配置,在这之前最好生成一份数据库快照
  • RDS vs RDS custom
    • RDS:整个数据库和由AWS管理的操作系统
    • RDS Custom:对底层操作系统和数据库的完全管理员访问权限

2. Amazon Aurora

  • Aurora 是 AWS 的专有技术(非开源)
  • Postgres 和 MySQL 都作为 Aurora DB 得到支持(这意味着您的驱动程序将像 Aurora 是 Postgres 或 MySQL 数据库一样工作)
  • Aurora 是“AWS 云优化”并声称 RDS 上的 MySQL 性能提高了 5 倍,RDS 上 Postgres 的性能提高了 3 倍以上
  • Aurora 存储以 10GB 的增量自动增长,最高可达 128TB。
  • Aurora 可以有 15 个副本,而 MySQL 有 5 个,并且复制过程更快(低于 10 毫秒的副本滞后)
  • Aurora 中的故障转移是即时的。 它是 HA(高可用性)原生的。
  • Aurora 的成本高于 RDS(高出 20%)— 但效率更高

Aurora 高可用性和只读扩展

  • 跨 3 个可用区的 6 个数据副本:
    • 写入所需的 6 个副本中有 4 个副本
    • 6 份中的 3 份需要读取
    • 通过点对点复制进行自我修复
    • 存储跨 100 多个卷条带化
  • 一个 Aurora 实例进行写入(主节点)
  • 在不到 30 秒内完成主服务器的自动故障转移
  • Master + 最多 15 个 Aurora Read Replicas 服务读取
  • 支持跨区域复制

Screenshot 2023-06-14 at 22.51.47.png

Aurora 数据库集群

Screenshot 2023-06-15 at 01.45.15.png

Aurora 的特点

  • 自动故障转移
  • 备份和恢复
  • 隔离和安全
  • 行业合规
  • 一键缩放
  • 零停机自动补丁
  • 高级监控
  • 例行维修
  • 回溯:在任何时间点恢复数据而不使用备份

Aurora Replicas - Auto Scaling

Screenshot 2023-06-15 at 01.45.43.png

Aurora – 自定义端点

  • 将 Aurora 实例的子集定义为自定义端点
  • 示例:对特定副本运行分析查询
  • Reader Endpoint 通常在定义 Custom Endpoints 后不使用

Screenshot 2023-06-15 at 01.46.36.png

Aurora Serverless

  • 基于实际使用情况的自动数据库实例化和自动缩放
  • 适用于不频繁、间歇性或不可预测的工作负载
  • 无需容量规划
  • 按秒付费,更划算

Screenshot 2023-06-15 at 01.46.56.png

Aurora Multi-Master

  • 如果您希望写入节点 (HA) 立即进行故障转移
  • 每个节点都进行 R/W
  • 对比将 RR 提升为新的主节点

Screenshot 2023-06-15 at 01.47.27.png

Global Aurora

  • Aurora 跨区域只读副本:
    • 对灾难恢复有用
    • 安装简单
  • Aurora 全球数据库(推荐):
    • 1 个主要区域(读/写)
    • 最多 5 个次要(只读)区域,复制延迟小于 1 秒
    • 每个次要区域最多 16 个只读副本
    • 有助于减少延迟
    • 提升另一个区域(用于灾难恢复)的 RTO 小于 1 分钟
    • 典型的跨区域复制不到 1 秒
      Screenshot 2023-06-15 at 01.47.55.png

Aurora 机器学习

  • 使您能够通过 SQL 将基于 ML 的预测添加到您的应用程序
  • Aurora 和 AWS ML 服务之间简单、优化和安全的集成
  • 支持的服务
    • Amazon SageMaker(与任何 ML 模型一起使用)
    • Amazon Comprehend(用于情绪分析)
  • 您无需具备机器学习经验
  • 用例:欺诈检测、广告定位、情绪分析、产品推荐
    Screenshot 2023-06-15 at 01.48.25.png

3. Backups

RDS 备份

  • 自动备份:
  • 数据库的每日完整备份(在备份窗口期间)
  • RDS 每 5 分钟备份一次事务日志
  • => 能够恢复到任何时间点(从最旧的备份到 5 分钟前)
  • 1 到 35 天的保留,设置为 0 以禁用自动备份
  • 手动数据库快照
  • 由用户手动触发
  • 备份保留时间不限
  • 技巧:在停止的RDS 数据库中,您仍然需要为存储付费。 如果您打算长时间停止它,您应该改为快照和恢复

Aurora 备份

  • 自动备份
  • 1 到 35 天(无法禁用)
  • 该时间范围内的时间点恢复
  • 手动数据库快照
  • 由用户手动触发
  • 备份保留时间不限

RDS 和 Aurora 还原选项

  • 还原 RDS/Aurora 备份或快照创建新数据库
  • 从 S3 恢复 MySQL RDS 数据库
  • 创建本地数据库的备份
  • 将其存储在 Amazon S3(对象存储)上
  • 将备份文件还原到运行 MySQL 的新 RDS 实例上
  • 从 S3 恢复 MySQL Aurora 集群
  • 使用 Percona XtraBackup 创建本地数据库的备份
  • 将备份文件存储在 Amazon S3 上
  • 将备份文件还原到运行 MySQL 的新 Aurora 集群上

Aurora 数据库克隆

  • 从现有数据库集群创建新的 Aurora 数据库集群
  • 比快照和恢复更快
  • 新数据库集群使用与原始集群相同的集群卷和数据,但会在进行数据更新时发生变化
  • 非常快速且具有成本效益
  • 有助于在不影响生产数据库的情况下从“生产”数据库创建“暂存”数据库

4. RDS & Aurora Security

  • 静态加密:
  • 使用 AWS KMS 的数据库主副本加密 – 必须定义为启动时间
  • 如果主节点未加密,则只读副本无法加密
  • 要加密未加密的数据库,请查看数据库快照并恢复为加密状态
  • 动态加密:默认情况下 TLS 就绪,使用 AWSTLS 根证书客户端
  • IAM 身份验证:连接到您的数据库的 IAM 角色(而不是用户名/密码)
  • 安全组:控制对您的 RDS / Aurora 数据库的网络访问
  • 除 RDS Custom 外,没有可用的 SSH
  • 可以启用审计日志并将其发送到 CloudWatch Logs 以便保留更长时间

5. Amazon RDS Proxy

  • RDS 的完全管理的数据库代理
  • 允许应用程序汇总并共享与数据库建立的 DB 连接
  • 通过减少数据库资源的压力(例如CPU,RAM)来提高数据库效率,并最大程度地减少开放连接(以及超时)
  • 无服务器,自动化,高度可用(多功率)
  • 将 RDS 和 Aurora 故障转移时间减少了66%
  • 支持RDS(MySQL,PostgreSQL,Mariadb)和Aurora(MySQL,PostgreSQL)
  • 大多数应用程序无需更改代码
  • 对 DB 执行 IAM 身份验证,并在 AWS Secrets Manager 中安全存储凭据
  • RDS 代理永远无法公开访问(必须从VPC访问)
    Screenshot 2023-06-15 at 01.49.36.png

6. Amazon Elasticache

概述

  • RDS 的方式是获得托管的关系数据库…
  • Elasticache 是要管理 Redis 或 Memcach
  • 缓存是内存数据库,具有非常高的性能,低延迟
  • 有助于减少数据库的负载,以读取密集工作负载
  • 有助于使您的申请无状态
  • AWS 负责 OS 维护 /修补,优化,设置,配置,监视,故障恢复和备份
  • 使用 Elasticache 涉及重型应用程序代码更改

ElastiCache 解决方案架构 - DB缓存

  • 应用程序查询 Elasticache(如果不可用的话)从 RDS 获取并存储在 Elasticache 中。
  • 有助于减轻 RDS 的负载
  • 缓存必须具有无效策略,以确保其中仅使用最新数据。

Screenshot 2023-06-15 at 01.51.06.png

ElastiCache 解决方案架构 - 用户会话存储

  • 用户登录到任何应用程序
  • 应用程序将会话数据写入 Elasticache
  • 用户击中了我们应用程序的另一个实例
  • 实例检索数据,用户已经登录

Screenshot 2023-06-15 at 01.51.34.png

ElastiCache - Redis vs Memcach

RedisMemCached
- 自动禁用的多 AZ
- 阅读副本以扩展读取并具有高可用性
- 使用 AOF 持久性的数据耐用性
- 备份和还原功能
- 用于分区数据的多节点(碎片)
- 没有高可用性(复制)
- 非持久
- 没有备份和还原
- 多线程体系结构

Elasticache - 缓存安全性

  • Elasticache 支持 REDIS 的 IAM 身份验证
  • IAM 关于 Elasticache 的政策仅用于 AWS API 级安全性
  • redis auth
  • 创建 REDIS 群集时,您可以设置“密码/令牌”
  • 这是您的缓存的额外安全性(在安全组之上)
  • 在飞行加密中支持 SSL
  • 备忘录
  • 支持基于 SASL 的身份验证(高级)

Screenshot 2023-06-15 at 01.52.06.png

Patterns for ElastiCache

  • 懒惰加载:所有读取数据均已缓存,数据可能变为缓存中的陈旧
  • 写入:将缓存中的数据添加或更新数据写入DB(没有陈旧数据)
  • 会话存储:将临时会话数据存储在缓存中(使用TTL功能)
  • Quote:计算机科学中只有两件事:缓存无效和命名事物

Screenshot 2023-06-15 at 01.52.31.png

Elasticache - Redis用例

  • 游戏排行榜在计算上很复杂
  • REDIS 排序设置保证唯一性和元素排序
  • 每次添加新元素时,都会实时排名,然后以正确的顺序添加

Screenshot 2023-06-15 at 01.52.47.png

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值