将Terraform入口/出口的专用网络端口映射到\u端口和从\u端口配置?

将Terraform入口/出口的专用网络端口映射到\u端口和从\u端口配置?,terraform,Terraform,我不确定这里的Terraform port forwarding术语。如果我在专用网络的5000端口上有一个应用程序,我想在8000端口上公开该应用程序-我应该设置哪些变量 是否会从专用网络的角度 from_port: 5000 to_port: 8000 还是从公共网络的角度 from_port: 8000 to_port: 5000 如果我的内部应用程序需要用数据响应,我还需要设置出口值吗 示例来自: 将安全组(SG)视为实例周围的一个封闭的气泡。它与实例中发生的事情无关。它在实例之外

我不确定这里的Terraform port forwarding术语。如果我在专用网络的5000端口上有一个应用程序,我想在8000端口上公开该应用程序-我应该设置哪些变量

是否会从专用网络的角度

from_port: 5000
to_port: 8000
还是从公共网络的角度

from_port: 8000
to_port: 5000 
如果我的内部应用程序需要用数据响应,我还需要设置出口值吗

示例来自:


将安全组(SG)视为实例周围的一个封闭的气泡。它与实例中发生的事情无关。它在实例之外运行

您设置的SG规则,在这个气泡中打洞,指定允许哪些端口上的流量(TCP、UDP)进入实例和实例外部

在您的情况下,由于您希望允许端口
8000
上的传入流量进入您的实例,因此您需要在端口
8000
上打一个“洞”:

resource "aws_security_group" "elb" {
  name = "terraform-example-elb"
  # Allow all outbound
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
  # Inbound port 8000 from anywhere
  ingress {
    from_port   = 8000
    to_port     = 8000
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}
上述SG将允许8000端口上的传入流量发送到您的实例。不允许使用其他端口,因此
从\u port==到\u port
。您的实例正在做什么一旦允许此流量,它就超出了SG的范围和规则。因此,通常情况下,实例上必须有一台服务器在端口8000上侦听。如果您的应用程序在端口5000上工作,那么您需要反向代理,例如实例上的nginx。Nginx将接受端口8000上的连接,并将其重定向到端口5000上的应用程序:

client--->SG:8000--->Instance:8000--->Nginx:8000--->Your app:5000
相反,如果你写了

from_port: 5000
to_port: 8000

您将打开从5000到8000的所有端口,通过气泡到达您的实例。

您有完整的示例吗?什么的进出规则?AWS安全组?您好-我在原来的queston中添加了一个示例。这是来自流行的博客文章“地形简介”,这就是我的问题的来源。由于该示例对from_port和to_port使用了相同的端口号,因此我无法理解哪个端口是哪个[oh wow okay-我不知道from_port
to_port
指定了一个范围!这为我清除了它,谢谢。@alex没问题。很高兴我能提供帮助。
from_port: 5000
to_port: 8000