我已经使用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
我知道他们在私有子网中,因此无法从公共网络访问,但我想知道这种可能性。请帮忙!
答案 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 1
或appname n
,其中n是群集中的主机数。