【问题标题】:Understanding how amazon Autoscale will Autoscale了解亚马逊自动缩放将如何自动缩放
【发布时间】:2020-09-16 11:08:37
【问题描述】:

自 3 天以来,我一直在亚马逊 aws 上设置 prestashop 服务器架构,现在一切都已启动并运行。我有一个 ELB、RDS 和一个带有警报的自动缩放组(如果 cpu > 80% 则添加一个实例)。 我只有一个运行我的 prestashop 网站的实例,附加到我上传网站的额外 EBS 卷。

现在我不明白的是,如果 CPU 大于 80%,自动缩放将如何发挥作用? 它会自动创建一个与正在运行的实例完全相同的新实例吗? 如果是,那么它还会复制附加的 EBS 卷吗?因为我每天都添加产品,所以如果创建一个新实例,它必须与原始实例完全相同,否则客户将找不到他们想要的新产品。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 autoscaling


    【解决方案1】:

    要使用自动缩放,您的实例必须是无状态的。当 AS 组向外扩展时,它会从您在 AS 启动配置中设置的 AMI 结束一个实例。

    如果是这个图像,它将是精确的副本,而不是已经运行的实例。

    状态(产品、会话、诸如此类)应该存储在其他地方,例如某些数据库中(您提到了 RDS)。

    【讨论】:

    • 是的,但这并不能回答主要问题:我附加的卷会发生什么,它会被复制吗?如果不是解决方案是什么,因为自动缩放以拥有 2 个不同的网站版本非常愚蠢!无论是在主实例中还是在自动缩放创建的新实例中,人们都必须找到相同的产品,那么你们如何解决这个问题?
    • 使用 AMI 启动实例。您可以在启动时更新实例,获取您的应用程序的新版本等。正如我所说,您必须制作无状态应用程序并将您的状态保留在其他地方,与 aws 自动缩放一样,您的实例将根据 AS 策略创建和终止,并且你的触发器。
    • 如何让 prestashop 电子商务网站无状态?白天,您将在网站中添加产品或更改内容,突然 CPU 达到 80% 并自动缩放启动一个新实例。所以我之前没有机会更新 AMI。在创建实例之前,是否有一种自动化的方法可以让自动缩放制作一个新图像?你们具体如何处理电子商务网站?
    • 保存在别处改变的东西。 db 在别处是这个。 s3 在别处是这个。
    • 自动缩放并不是让您的所有烦恼消失的魔术。它有它的局限性。
    【解决方案2】:

    您当前的设置将不起作用,因为集群中运行的每个容器都需要彼此共享某些目录。这是因为 PrestaShop v1.7 在撰写本文时将某些状态信息存储在文件系统中。

    我觉得接受的答案不正确。相反,“要使用自动缩放,最好您的实例是无状态的” - 但这不是硬性要求。至此,我通过在 EFS 上存储某些共享目录,然后从集群中运行的每个容器挂载这些目录,成功地在自动缩放 ECS 集群中运行 PrestaShop。需要共享的目录有:

    • 图片
    • 模块
    • 覆盖
    • 缓存
    • 主题
    • 配置

    更多信息和代码可以在here找到。

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 2013-01-09
      • 2023-04-03
      • 2015-02-16
      • 1970-01-01
      • 2012-05-30
      • 2021-01-15
      • 2019-11-07
      • 2011-05-30
      相关资源
      最近更新 更多