1

我想允许组中的节点与app-server组中的 mysql 和 redis 机器对话database。但是,我只能使显式 IP 用于入口规则。当我尝试定义组时,为了使自动缩放更容易,流量被阻止。

这是我的设置

当我跑

ec2-describe-group database

我明白了

PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    USER    890752071609    NAME default    ID sg-5ce3766c  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    USER    890752071609    NAME app-server ID sg-b81b8088  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    USER    890752071609    NAME default    ID sg-5ce3766c  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    USER    890752071609    NAME app-server ID sg-b81b8088  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     0       65535   FROM    USER    890752071609    NAME database   ID sg-d262f1e2  ingress
PERMISSION      890752071609    database        ALLOWS  tcp     22      22      FROM    CIDR    0.0.0.0/0       ingress

但是,当我尝试从app-server组中的一台机器上使用 redis-cli 连接到端口 6379 时,我收到了 redis 超时错误。

如果我明确添加要连接的服务器的弹性 IP,就像这样

PERMISSION      890752071609    database        ALLOWS  tcp     3306    3306    FROM    CIDR    111.snip.25/32        ingress
PERMISSION      890752071609    database        ALLOWS  tcp     6379    6379    FROM    CIDR    222.snip.25/32        ingress

redis-cli 调用有效。但是,我想更加灵活,而是添加整个安全组。

亚马逊文档状态

通过将安全组指定为源,您允许来自属于源安全组的所有实例的传入流量。您允许的传入流量基于源安全组中实例的私有 IP 地址。如果您正在创建三层 Web 服务,您可以在您的帐户中指定另一个安全组(请参阅创建三层 Web 服务)。

这应该有效,不是吗?我究竟做错了什么?

4

1 回答 1

2

检查/尝试的一些建议:

  1. AWS sec 组不允许跨区域规则。不知道你们的redis机器是不是在同一个区域。
  2. 尝试从 AWS Web Interface 或 Dome9 控制台 (www.dome9.com) 创建此设置,以确保没有未显示的隐藏设置。

不要失去希望 - 这种设置应该有效 - AWS sec 组是为这个用例设计的。

于 2012-11-04T14:48:13.353 回答