当前位置: 首页 > 知识库问答 >
问题:

无法访问AWS ECS EC2实例中的端口

盖成弘
2023-03-14

我正在运行一个AWS ECS服务,它正在运行一个具有多个容器的任务。任务在awsvpc网络模式下运行。(EC2,不是Fargate)

集装箱港口映射在ECS任务定义中。

PS:目标(公共IP)可以从远程PC访问。只是不是从港口来的。

共有1个答案

叶嘉颖
2023-03-14

我正在运行一个AWS ECS服务,它正在运行一个具有多个容器的任务。任务在awsvpc网络模式下运行。(EC2,不是Fargate)

Ec2,不是Fargate,不同的马适合不同的球场。在awsvpc网络模式下运行的任务具有自己的弹性网络接口(ENI)、主私有IP地址和内部DNS主机名。那么如何使用AWS EC2公共IP访问该容器呢?

awsvpc网络模式提供的任务网络特性为Amazon ECS任务提供了与Amazon EC2实例相同的网络属性。当您在任务定义中使用awsvpc网络模式时,从该任务定义启动的每个任务都将获得自己的弹性网络接口(ENI)、主专用IP地址和内部DNS主机名。任务网络功能简化了容器网络,使您能够更好地控制容器化应用程序如何相互通信以及VPC内的其他服务。

当您为这些服务创建任何目标组时,您必须选择ip作为目标类型,而不是实例。这是因为使用awsvpc网络模式的任务与ENI相关联,而不是与AmazonEC2实例相关联。

因此配置有问题或缺乏对网络模式之间的理解。我会推荐阅读这篇文章。

当我执行docker ps inside实例时,Ports列为空。

优化-Amazon-ECS-Task-Density-Using-AWSVPC-Network-Mode

 类似资料:
  • 我使用terraform创建了一个新的EC2实例来安装vertica,但无法在实例中访问Internet或pinggoogle.com。 我已使用私有子网设置了 ec2 实例,并使用公有子网设置了 nat 网关。 主路由表允许 0.0.0.0/0 作为目标,目标作为 nat 网关。另一个路由表将子网关联作为私有子网 10.103.2.0/24。互联网网关也连接到 VPC。 我的ec2实例安全组允许

  • 我想让具有多个内部类的抽象类对其进行扩展,并可以通过静态方法创建其内部类的实例,但我得到编译器错误“无法访问ITask类型的封闭实例。必须使用ITask类型的封闭实例限定分配(例如,x.new A(),其中x是ITask的实例)。” 我发现内部类应该由外部类的实例创建,但是我的外部类有抽象方法,我不能创建它的实例。我创建了扩展父类的内部类,因为我习惯于控制它们的创建。那么有没有办法让我的模式发挥作

  • 我有一个叫做GreenhouseControls的类,它有很多 内置于其中的类,例如: 我从文本文件中提取值以获取事件名称(如“ThermostatNight”)和时间值(如“2000”)。为了用这些值实例化一个新对象,我构建了一个EventFactory,它接受这些值作为参数。 这是我构建的类,用于从文本文件值创建新的事件对象: 当我运行这个程序时,一切都运行得很好,直到我将EventFacto

  • 刚刚将我的MySQL RDS实例从自由层db.t2.micro升级为db.r3.large。相同的存储、相同的安全组、相同的用户组/凭据、相同的VPC、相同的endpoint名称、相同的一切。 在升级之前,我可以通过MySQL workbench远程访问同一个实例,根据AWS的说法,我的endpoint位置没有改变。 收到的错误消息: 无法连接到'blahblah.rds.amazonaws.co

  • 如题所示,我正在努力通过EC2实例连接到我的elasticache实例。我有一个orm连接到EC2实例中的redis,但它在我的日志中失败了,所以我登录到EC2实例,尝试手动连接到redis实例,但超时了: < code >无法连接到位于的Redis 它们位于不同的VPC中(弹性缓存实例和EC2实例),但在我的弹性缓存实例的安全组中,我在端口6379处有来自任何来源的自定义TCP入站规则。 哈尔普

  • 我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute