AWS VPC - 通过堡垒主机

时间:2018-02-07 16:04:42

标签: amazon-web-services amazon-ec2 web-applications cloud amazon-vpc

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

  1. 1个具有1个Internet网关的环境的VPC
  2. 一个地区的VPC
  3. 3个可用区域,每个子网拥有1个私有子网和1个公共(实用程序)子网(共6个子网)
  4. 3个NAT网关 - 每个公用事业子网一个,其网络接口分配了3个弹性IP
  5. 3个EIP - 每个EIP与公共子网的网络接口相关联
  6. 1允许SSH访问私有EC2实例的堡垒主机(与公共IP关联)
  7. EC2实例(每个私有子网中有1个主节点和1个节点)
  8. 1个AZ中的弹性负载均衡器,ELB中的实例引用了3个主站。
  9. 我可以通过堡垒主机SSH连接到达EC2实例,没有任何问题。我在其中一个EC2实例中部署了一个简单的webapp(让我们说一个在端口5000中的docker容器中运行的webapp)。现在如何从浏览器访问在端口5000上运行的此webapp?它是通过堡垒主机的公共IP吗?如果是,那么端口转发如何发生在正在运行webapp的正确EC2实例上?

    感谢您的帮助。

    阿卜杜勒。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

这会将来自互联网的流量传递到私有子网中的EC2实例,以便您可以浏览网络应用。