SSH进入使用NAT网关在VPC中启动的EB实例

时间:2016-09-21 09:55:54

标签: amazon-web-services elastic-beanstalk amazon-vpc

我已经使用NAT网关在VPC中使用Amazon RDS(postgresql)启动了一个Elastic Beanstalk应用程序(因为我想通过修复公共IP地址路由我的应用程序流量)遵循这些说明:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/vpc-rds.html

如何从本地系统进入实例?
eb ssh显示以下错误,但是我的实例可用而不是终止。

  

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

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

  

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

我知道他们在私有子网中,因此无法从公共网络访问,但我想知道这种可能性。请帮忙!

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

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

ip = instance['PrivateDnsName'] #was PublicIpAddress

可惜的是,EB CLI不在Github上...否则,我将通过一种方法来提供实现此目的的方法。

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

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

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