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