我在 ec2 实例上部署了一个小 Web 应用程序,我想在不公开的情况下对其进行测试。
使用弹性 IP 并不能解决我的问题,因为 IP 会将其暴露给外界,而我们还没有为此做好准备。
我知道 Amazon VPC,但它似乎有点矫枉过正,因为我不需要所有这些功能并且我不想处理设置。我所需要的只是能够通过使用私有 IP 或类似的东西来访问网络服务器。
有没有一个快速而肮脏的解决方案?
我在 ec2 实例上部署了一个小 Web 应用程序,我想在不公开的情况下对其进行测试。
使用弹性 IP 并不能解决我的问题,因为 IP 会将其暴露给外界,而我们还没有为此做好准备。
我知道 Amazon VPC,但它似乎有点矫枉过正,因为我不需要所有这些功能并且我不想处理设置。我所需要的只是能够通过使用私有 IP 或类似的东西来访问网络服务器。
有没有一个快速而肮脏的解决方案?
您可以将 Web 服务器设置为仅在 127.0.0.1(而不是 0.0.0.0)上侦听,然后使用 SSH 将连接从本地计算机连接到实例。
在您的桌面上,设置 SSH 连接:
$ ssh -L 3000:localhost:80 ec2-user@ec2-instance.amazonaws.com
然后http://localhost:3000
在您的浏览器中访问,它将通过 SSH 连接将您桌面上的端口 3000 转发到实例上的端口 80。
创建一个安全组,只允许从您的 IP(运行您将在其中进行测试的浏览器的机器的 IP)到 Web 服务器端口(可能是 80)的流量,并将此安全组分配给您的 ec2 实例。
这样只有您可以访问网络应用程序。
如果您需要在不同的位置工作,请编写一个简单的脚本来更新安全组并添加您当前的 IP。这些更改会立即应用,不需要重新启动。您可以从whatismyip获取您当前的 IP并使用Amazon SDK更新安全组。
您不需要 EIP 即可访问您的实例 - 它具有自动关联的公有 DNS 名称。
如果您想要一个真正私有的 EC2 实例,您需要考虑在 VPC 内启动它。您需要公共子网中的堡垒主机和私有子网中的实例。