【问题标题】:best practice to host redis server on Amazon ec2 instance?在 Amazon ec2 实例上托管 redis 服务器的最佳实践?
【发布时间】:2014-11-25 22:44:18
【问题描述】:

我是 redis 新手,现在我正在尝试在我所做的亚马逊 EC2 实例上托管 redis。我的问题是我们是否需要一个完整的新 EC2 实例来托管 redis,或者我们可以使用托管服务器的同一个实例。这将是最佳实践,请建议我。提前致谢

【问题讨论】:

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


    【解决方案1】:

    这取决于您预期的服务器负载以及您扩展基础架构的计划。

    A.如果您希望水平扩展(添加越来越多的 EC2 实例),那么您应该将 Redis 移动到它自己的机器上,这样您就可以将 Web 服务器实例与数据库分离

    B.如果您只是希望垂直扩展(越来越多地升级您的 EC2 实例),或者您不希望流量超过您当前分配的资源,那么您可以继续在与 Web 服务器相同的机器上托管 Redis。在这种情况下,您应该确保每台服务器(DB 和 WebServer)都至少获得一个内核。

    C.如果您使用 redis 进行缓存,而不是所有 Web 服务器实例的数据库,则可以继续进行设置,其中每个 Web 服务器都有自己的 Redis 缓存实例。此外,在这种情况下,请确保每个服务器都有足够的 RAM 和 CPU 资源可用。

    编辑:对于案例 A,这是典型场景的样子

    • 创建两个安全组,一个用于 Web 服务器 (secWeb),一个用于 DB 层 (secDB)
    • secWeb 仅打开端口 80 和 443 (http/s)
    • secDB 只为来自 secWeb 的流量打开 6379 端口(或者您定义的要在哪个端口上运行 redis)
    • 设置两个初始 EC2 实例(一个用于 Web 服务器,一个用于 DB)并在其上安装所有内容
    • 为您的 Redis 实例分配一个弹性 IP,并将 Web 服务器配置为通过此 IP:port 连接到 Redis
    • 在 Web 服务器实例前面创建一个 ELB 实例,并将 ELB 端点用于您的主要流量(您可以分配一个从您的主域 DNS 区域指向它的 CNAME)
    • 根据您的偏好为 EC2 Web 服务器设置自动扩展策略

    这应该能让你一开始就开始。

    【讨论】:

    • 谢谢,我试图根据负载水平缩放它,所以你能简要解释一下我为什么要使用它
    猜你喜欢
    • 2015-06-02
    • 2018-08-28
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2018-06-12
    • 2012-11-10
    相关资源
    最近更新 更多