首页 文章

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

提问于
浏览
0

我使用Terraform在AWS中设置了这个VPC架构:

  • 1适用于具有1个Internet网关的所有环境的VPC

  • VPC在一个地区

  • 3可用区域包含1个私有子网和1个公共(实用程序)子网(共6个子网)

  • 3 NAT网关 - 每个公用事业子网一个,分配给其网络接口的3个弹性IP

  • 3 EIP - 每个EIP与公共子网的网络接口相关联

  • 1 Bastion Host(与公共IP关联)允许SSH访问私有EC2实例

  • EC2实例(每个私有子网中有1个主节点和1个节点)

  • 1 3个AZ中的弹性负载均衡器,ELB中的实例引用3个主站 .

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

谢谢你的帮助 .

阿卜杜勒 .

2 回答

  • 2

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

    • 添加您希望将流量定向到ELB的特定实例 . 也就是说,删除您不想从负载均衡器访问的实例 . 这不是一个安全的选择 .

    • 假设堡垒可以访问Web服务器上的端口,则在您的堡垒上使用SSH port forwarding . 请参阅"Local tunnels"部分 . 你的命令看起来像这样: ssh -L 8080:your-webserver-ip:5000 ip-of-your-bastion -N ;然后,在浏览器中,导航到http://localhost:8080/

    • 安装OpenVPN appliance以通过VPN直接连接到您的实例

    • 使实例公开(将其移动到公共子网中)并为其分配EIP

  • 0

    我假设公用事业子网是公有子网?如果是,那么您将需要在那里部署一些内容来指导Web流量 . 通常这将是一个弹性负载均衡器,但您可以部署和运行Nginx或Apache的EC2实例 .

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

相关问题