Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 访问ec2的fargate任务的安全组配置不工作_Amazon Web Services_Amazon Ec2_Aws Security Group_Aws Fargate - Fatal编程技术网

Amazon web services 访问ec2的fargate任务的安全组配置不工作

Amazon web services 访问ec2的fargate任务的安全组配置不工作,amazon-web-services,amazon-ec2,aws-security-group,aws-fargate,Amazon Web Services,Amazon Ec2,Aws Security Group,Aws Fargate,我对AWS的设置有非常严重的问题,我认为这将是一个全新的设置 我有一个从lambda函数运行的fargate任务。 此fargate任务的awsvpc配置如下: 'awsvpcConfiguration': { 'subnets': [ 'subnet-toing', 'subnet-xxxx', 'subnet-yyyy'

我对AWS的设置有非常严重的问题,我认为这将是一个全新的设置

我有一个从lambda函数运行的fargate任务。 此fargate任务的awsvpc配置如下:

'awsvpcConfiguration': {
                'subnets': [
                    'subnet-toing',
                    'subnet-xxxx',
                    'subnet-yyyy'
                ],
                'securityGroups': [
                    'sg-toing'
                ],
                'assignPublicIp': 'ENABLED'
            }
fargate任务运行一个docker映像,该映像连接到一个EC2实例(其IP映射到db.toing.kp),该实例在上运行一个db,比如说端口n。我的ec2实例的安全组配置为允许从
sg到端口n上的
的请求。ec2实例在
子网toing
子网上运行。所有子网均来自同一VPC

正如额外信息:在我的EC2实例中,hosts文件有一行代码来解析其子网上的请求。假设实例本地ip为172.x.y.z。有一句话:

172.x.y.z. db.toing.kp
这基本上是用于复制任务的,因此数据库数据不会通过internet连接到副本

所以问题是,当我尝试运行fargate任务时,它无法连接到EC2实例,连接超时


但是,如果我从
sg toing
安全组中删除连接的防火墙规则并允许所有连接,那么一切都会按预期工作。有人能解释一下为什么EC2实例不接受来自fargate任务的连接吗?提前谢谢

您的
sg toing
配置为接受来自端口
n
的请求。但您的主机条目将请求发送到
172.x.y.z
,而不是
172.x.y.z:n

如果您可以使用
ip:port
连接到数据库,而不使用主机条目,则不会出现问题


我希望这有帮助。

我们无法在主机文件中定义端口。实际上,问题出在hosts文件上,在我删除了条目并通过本地子网IP直接访问之后,一切正常。我不知道服务器本地主机文件会如何影响安全组,但AWS也不支持,显然:)是的,我们不能在主机文件中定义端口。在我的回答中,我说过:“如果您可以使用ip:port连接到数据库,而不需要主机条目”。这不是你为解决问题所做的吗?基本上是的!但是我很确定EC2实例甚至拒绝了本地IP,因为我为AWS代理重新创建了这个问题。但是,当我删除hosts文件时,情况很好,问题是hosts文件与AFAIK传入的请求无关。总之,是的,我找到了一个解决方案,但不是我想要的,因为我必须更改整个replicaset配置:(也许我在什么地方做了傻事,我不知道,但不管怎样,谢谢你的帮助!PS:关于你的回答,我不能同意前两句话。