我是 Redis 的新手,现在我正在尝试在我所做的亚马逊 EC2 实例上托管 Redis。我的问题是我们是否需要一个完整的新 EC2 实例来托管 redis,或者我们可以使用我们托管服务器的相同实例。这将是最佳做法,请建议我。提前致谢
最佳答案
这取决于您期望的服务器负载以及您扩展基础设施的计划。
一个。如果您希望水平扩展(添加越来越多的 EC2 实例),那么您应该将 Redis 移动到它自己的机器上,这样您就可以将 Web 服务器实例与数据库分离
B.如果您只是希望垂直扩展(越来越多地升级您的 EC2 实例),或者您不希望流量超过您当前分配的资源,那么您可以继续将 Redis 托管在与 Web 服务器相同的机器上。在这种情况下,您应该确保每个服务器(DB 和 WebServer)都至少获得一个核心。
C.如果您使用 redis 进行缓存,而不是所有网络服务器实例的数据库,您可以继续进行设置,其中每个网络服务器都有自己的 Redis 缓存实例。此外,在这种情况下,请确保每个服务器都有足够的 RAM 和 CPU 资源可用。
编辑:对于案例 A,这是典型的场景
- 创建两个安全组,一个用于网络服务器(secWeb),一个用于数据库层(secDB)
- secWeb 只开放端口 80 和 443 (http/s)
- secDB 只为来自 secWeb 的流量打开端口 6379(或者你定义的 redis 在哪个端口上运行)
- 设置两个初始 EC2 实例(一个用于 Web 服务器,一个用于数据库)并在其上安装所有内容
- 为您的 Redis 实例分配一个弹性 IP,并配置 Web 服务器通过此 IP:port 连接到 redis
- 在 Web 服务器实例前面创建一个 ELB 实例,并将 ELB 端点用于您的主要流量(您可以分配一个从您的主域 DNS 区域指向它的 CNAME)
- 根据您的偏好为 EC2 Web 服务器设置自动缩放策略
这应该让你开始。
关于amazon-web-services - 在 Amazon ec2 实例上托管 redis 服务器的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26135500/