繁体   English   中英

AWS VPC-通过堡垒主机访问在私有子网中运行的Webapp

[英]AWS VPC - Access webapp running in private subnet through bastion host

我使用Terraform在AWS中设置了VPC体系结构:

  1. 具有1个Internet网关的所有环境均具有1个VPC
  2. 一个地区的VPC
  3. 3个可用区,每个带1个私有子网和1个公共(公用)子网(总共6个子网)
  4. 3个NAT网关-每个公用事业子网一个,将3个弹性IP分配给它们的网络接口
  5. 3个EIP-每个与公共子网的网络接口相关联
  6. 1个堡垒主机(与公共IP关联),允许通过SSH访问私有EC2实例
  7. EC2实例(每个专用子网中有1个主节点和1个节点)
  8. 1个弹性负载均衡器跨越3个可用区,ELB中的实例引用了3个主节点。

我可以通过SSH堡垒主机进行SSH连接,而不会出现任何问题。 我在其中一个EC2实例中部署了一个简单的webapp(假设一个webapp在端口5000的docker容器中运行)。 现在如何从浏览器访问运行在端口5000上的此Webapp? 是通过堡垒主机的公共IP吗? 如果是,端口转发如何发生在运行webapp的正确EC2实例上?

谢谢你的帮助。

阿卜杜勒

要从浏览器访问它,您必须执行以下操作之一:

  • 添加您想要将流量定向到您的ELB的特定实例。 即,从负载均衡器中删除您不想访问的实例。 这不是一个安全的选择。
  • 假设堡垒可以访问Web服务器上的端口,请在其堡垒上使用SSH端口转发 请参阅“本地隧道”部分。 您的命令将如下所示: ssh -L 8080:your-webserver-ip:5000 ip-of-your-bastion -N ; 然后,在您的浏览器中,导航到http:// localhost:8080 /
  • 安装OpenVPN设备以直接通过VPN连接到您的实例
  • 将实例设为公共(将其移动到公共子网中)并为其分配EIP

我会假设实用程序子网是公共子网? 如果是,那么您将需要在那里部署一些东西来引导网络流量。 通常这将是一个弹性负载平衡器,但是您可以部署和运行Nginx或Apache的EC2实例。

这会将流量从Internet传递到专用子网中的EC2实例,以便您浏览Web应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM