Amazon web services 如何在AWS中实现负载平衡?

Amazon web services 如何在AWS中实现负载平衡?,amazon-web-services,Amazon Web Services,基本上,我有两个问题: 要使用“负载平衡器”,我需要有两个或多个实例吗 我是否需要在每个实例中复制我的应用程序 例如,我有一个应用程序Moodle。我的站点Moodle托管在一个具有30Gb卷的实例上。我有一个60GB的EBS卷用于Moodledata存储 知道了这一点,为了使用负载平衡器,我是否需要在另一个实例中复制Moodle 你的问题很模糊,因为不清楚你想平衡哪种负荷。例如,cpu绑定或i/o绑定的应用程序可能会在您的站点上产生高负载。您可以使用负载平衡将工作分配到多个实例。简言之: 是的

基本上,我有两个问题:

  • 要使用“负载平衡器”,我需要有两个或多个实例吗

  • 我是否需要在每个实例中复制我的应用程序

    例如,我有一个应用程序Moodle。我的站点Moodle托管在一个具有30Gb卷的实例上。我有一个60GB的EBS卷用于Moodledata存储

    知道了这一点,为了使用负载平衡器,我是否需要在另一个实例中复制Moodle


  • 你的问题很模糊,因为不清楚你想平衡哪种负荷。例如,cpu绑定或i/o绑定的应用程序可能会在您的站点上产生高负载。您可以使用负载平衡将工作分配到多个实例。简言之:

  • 是的,您应该选择两个或更多实例

  • 我可能会说是的

  • 一个常见的例子是托管网站的Web服务器。当你网站的用户增加时,会有更多的请求来获取内容。(但在这类应用程序上分配负载的方式可能有很多种,例如缓存、使用cdn等)


    也许可以从亚马逊上看到。

    你的问题非常模糊,因为不清楚你想要平衡哪种负载。例如,cpu绑定或i/o绑定的应用程序可能会在您的站点上产生高负载。您可以使用负载平衡将工作分配到多个实例。简言之:

  • 是的,您应该选择两个或更多实例

  • 我可能会说是的

  • 一个常见的例子是托管网站的Web服务器。当你网站的用户增加时,会有更多的请求来获取内容。(但在这类应用程序上分配负载的方式可能有很多种,例如缓存、使用cdn等)


    可能从amazon上看到。

    您需要自己回答的第一个问题是:

    “我的应用程序能否在多台服务器上运行?”

    这个概念中经常使用的另一个术语是:“应用程序集群”

    Moodle确实支持“服务器集群”,并且他们有相关文档:

    很明显,数据库和存储都需要共享,才能实现负载平衡。数据库本质上能够进行集群,因此这不是问题

    但是,在服务器上装载的ebs卷上存储数据是行不通的

    您需要某种形式的“共享”存储,这可能意味着所有“应用程序实例”都需要装载的NFS服务器。如果您不是一个有经验的系统管理员/devops人员,那么这可能是一个相当大的练习。您还可以使用Amazon的,本质上是SaaS NFS

    一旦您知道您的应用程序可以集群化,那么使用负载平衡器的问题就开始出现了

    使用负载平衡器,您当然不需要2台服务器,但这并不是使用aws“负载平衡器”即“弹性负载平衡器”的唯一原因

    有了AWS,你可以(而且在我看来,应该)将你的服务器放在VPC中。这是一个良好的安全实践,但也是一个非常重要的实践

    对于VPC,标准做法是使用弹性负载平衡器为应用服务器提供安全的入口。当然,使用AWS负载平衡器会带来巨大的成本,您应该注意这一点

    对于任何负载平衡器,您都需要知道是否需要LB提供“粘性会话”。粘性会话由负载平衡器提供,其中它添加一个cookie或url参数,一旦用户第一次被路由到LB中的同一服务器,该参数就会将用户连续路由到该服务器。如果您可以避免使用粘性会话,那么这是最好的

    如果没有粘性会话,LB可以循环请求到集群

    这涉及到会话管理的思想,以及应用程序的会话状态是位于服务器上还是跨集群

    同样,穆德尔对此也有选择。如果您将会话数据存储在数据库中,那么在集群设置中(前面有一个LB)应该可以不使用粘性会话,但如果您使用memcached进行会话存储(这是性能方面的建议),则需要共享memcached实例,正如数据库和文件存储需要共享一样。这意味着您可以将memcached作为amazon服务运行,也可以在它自己的服务器(或memcached集群)上运行,甚至可以在您作为NFS服务器运行的同一台服务器上运行


    如果您想为每个Moodle服务器缓存一个小内存,则需要在LB中打开粘性会话。

    您需要自己回答的第一个问题是:

    “我的应用程序能否在多台服务器上运行?”

    这个概念中经常使用的另一个术语是:“应用程序集群”

    Moodle确实支持“服务器集群”,并且他们有相关文档:

    很明显,数据库和存储都需要共享,才能实现负载平衡。数据库本质上能够进行集群,因此这不是问题

    但是,在服务器上装载的ebs卷上存储数据是行不通的

    您需要某种形式的“共享”存储,这可能意味着所有“应用程序实例”都需要装载的NFS服务器。如果您不是一个有经验的系统管理员/devops人员,那么这可能是一个相当大的练习。您还可以使用Amazon的,本质上是SaaS NFS

    一旦您知道您的应用程序可以集群化,那么使用负载平衡器的问题就开始出现了

    使用负载平衡器,您当然不需要2台服务器,但这并不是使用aws“负载平衡器”即“弹性负载平衡器”的唯一原因

    有了AWS,你可以(而且在我看来,应该)把你的ser