我正在尝试了解如何构建 Amazon Web Services 应用程序。
我有一个运行 EBS 的实例。据我了解,我需要安装 EBS 驱动器,以便可以在其上存储我的 MySQL 数据库。
当我以后想扩大规模时,我该怎么做?我知道我可以添加更多服务器实例,但它们将如何访问数据库?因为据我了解,EBS 卷只能附加到一个服务器实例。
我正在尝试了解如何构建 Amazon Web Services 应用程序。
我有一个运行 EBS 的实例。据我了解,我需要安装 EBS 驱动器,以便可以在其上存储我的 MySQL 数据库。
当我以后想扩大规模时,我该怎么做?我知道我可以添加更多服务器实例,但它们将如何访问数据库?因为据我了解,EBS 卷只能附加到一个服务器实例。
我无法谈论这个特定的设置,因为我没有将 EBS 与 MySQL 实例一起使用的经验,但这种类型的扩展通常是通过将特定实例专用于主数据库服务器来完成的。每当您启动其他 Web 服务器时,这些服务器仍在使用主数据库 IP 进行连接。当您的数据库成为瓶颈时,您然后在其中一个盒子(或它自己的专用盒子)上启动一个从数据库实例。然后,您可以在主从方向或循环复制中配置复制,以便您也可以写入从属实例。
如果您选择经典的主从复制,那么您必须确保您的写入仅在主数据库实例上执行。
您可以设置 Zeus 或任何其他连接负载均衡器,这样您只需要连接到单个数据库 IP,然后它将循环路由您的读取连接到您的服务器池。否则,您必须自己管理连接,这绝对不是微不足道的。祝你好运。
EBS Volumes 容量可以使用 Snapshot->launch new volume 技术扩展,或者存储容量可以使用 EBS Striping (RAID 0) 扩展。
在 AWS 中,您不能同时将相同的 EBS 卷挂载到 2 个 EC2 实例,因此当您扩展应用程序时,您需要通过复制或集群扩展/扩展您的 MySQL 数据库。AWS RDS 是 MySQL 的一个非常好的选择,如果您的应用程序是读取密集型的,那么您也可以使用 RDS 只读副本进行横向扩展。如果您需要写入扩展,则可以探索功能分区或 MySQL Shards。
AWS 有一个专门用于此的完整产品:RDS。
除了最罕见和最专业的情况外,您最好使用 RDS,而不是尝试创建和调整您自己的 EBS/EC2/MySQL 基础架构。
RDS 还直接回答您的问题 - 它们直接启用只读数据库的创建以用作查询从属。RDS 还为您执行备份、升级和各种故障转移基础架构。
使用 EBS 无法将磁盘附加到多个 EC2 实例,因此您将无法使用该方法构建故障集群。相反,您将需要某种类型的复制或备份工具。
您可以在 EBS 支持的实例上尝试 MySQL 集群。我有类似的查询,有更多的要求,张贴在这里。