Amazon web services 使用NAT网关在VPC中启动到EB实例的SSH

Amazon web services 使用NAT网关在VPC中启动到EB实例的SSH,amazon-web-services,amazon-elastic-beanstalk,amazon-vpc,Amazon Web Services,Amazon Elastic Beanstalk,Amazon Vpc,我使用NAT网关(因为我想通过固定的公共ip地址路由我的应用程序流量)在一个VPC中启动了一个弹性Beanstalk应用程序,使用Amazon RDS(postgresql),并遵循以下说明: 如何从本地系统ssh到实例? eb ssh显示以下错误,但我的实例可用且未终止 错误:此实例没有公共IP地址。这可能是因为实例正在终止 如何登录到postgresql客户端? 以下命令未提示任何内容: psql--host=--port=5432--username=--password--dbname

我使用NAT网关(因为我想通过固定的公共ip地址路由我的应用程序流量)在一个VPC中启动了一个弹性Beanstalk应用程序,使用Amazon RDS(postgresql),并遵循以下说明:

如何从本地系统ssh到实例?
eb ssh显示以下错误,但我的实例可用且未终止

错误:此实例没有公共IP地址。这可能是因为实例正在终止

如何登录到postgresql客户端?
以下命令未提示任何内容:

psql--host=--port=5432--username=--password--dbname=ebdb


我知道它们在私有子网中,所以不能从公共网络访问,但我想知道这种可能性。请帮忙

您必须拥有一台具有公共IP的服务器(位于公共VPC子网中),您可以从VPC外部连接到该服务器。我建议将t2.nano服务器设置为。

如果使用VPN,还可以修改
sshops.py
以使用专用DNS名称。因操作系统和版本而异,但我的位于:

~/Library/Python/2.7/lib/Python/site packages/ebcli/operations/sshops.py

搜索
PublicIpAddress
(我的在第88行),并将其更改为:

ip=instance['PrivateDnsName']#是PublicIpAddress

EB CLI不在Github上,这太糟糕了……否则我会通过一个参数提供一种方法来实现这一点

我还为此添加了一个方便的别名:

alias appname='eb init appname;eb ssh--region=us-east-1 appname-n'

这允许运行
appname 1
appname n
,其中n是集群中的主机数