我们在AWS上有以下设置:8个Elastic Beanstalk环境(4个QA,4个PROD)读取和写入数据。 通常情况下,1个环境(API)始终从DynamoDB和RDS读取数据,而1个环境(Data Gatherer的作业服务器)通常会写入数据。
为了提高性能,我们创build了一个可以被应用程序逻辑访问的memcached服务器。 通常,上面提到的API服务器试图从caching中读取(如果找不到该项目,则添加),而作业服务器使caching项目无效,以便强制API从数据库中读取它们。
到目前为止,这么好,一切正常。 主要的问题是现在的安全设置。 memcached要求端口11211打开,全世界都可以telnet到它并阅读我们的caching设置。
我首先设置了memcached服务器的安全组,以便只允许来自我们的VPN服务器的传入连接,以便我们的开发机器可以访问它。 工作正常,只有3个CIDRs。 然后我尝试添加Elastic Beanstalk环境的安全组来执行相同的操作。 这似乎不工作了 。 我无法从Elastic Beanstalk服务器访问memcached服务器。 我基本上在CLI上做了什么
aws ec2 authorize-security-group-ingress --group-name security-group-of-memcached-server --protocol tcp --port 11211 --source-group xxx-rds-associations --group-owner 517999993
其中xxx-rds-associations是Elastic Beanstalk环境及其实例的安全组。 为了避免一个愚蠢的应用程序configuration问题,我也RDPd进入服务器,并试图用telnet访问memcached服务器。 也没有工作。
我身边有一个基本的误解吗? 是否向源添加安全组不允许具有此组的服务器访问目标服务器?
还是我错过了什么?
我欢迎任何意见。 最好的问候Marco