Amazon web services Elastic Beanstalk连接到外部RDS创建的EC2权限
我对Elastic Beanstalk很陌生,对服务器管理不是很精通,但我需要在Elastic Beanstalk上建立一个Django项目,连接到外部RDS MySQL数据库 我已经创建了一个单独的RDS MySQL数据库,我可以在我的计算机上使用Sequel Pro连接到它而不会出现问题。然后我有我的Django项目,我试图把它放到Elastic Beanstalk上,但不幸的是没有运气。如果我从我的计算机上运行本地Django服务器,该项目是可浏览的,Amazon RDS MySQL是可访问的。然而,当我跑的时候Amazon web services Elastic Beanstalk连接到外部RDS创建的EC2权限,amazon-web-services,permissions,amazon-elastic-beanstalk,amazon-rds,Amazon Web Services,Permissions,Amazon Elastic Beanstalk,Amazon Rds,我对Elastic Beanstalk很陌生,对服务器管理不是很精通,但我需要在Elastic Beanstalk上建立一个Django项目,连接到外部RDS MySQL数据库 我已经创建了一个单独的RDS MySQL数据库,我可以在我的计算机上使用Sequel Pro连接到它而不会出现问题。然后我有我的Django项目,我试图把它放到Elastic Beanstalk上,但不幸的是没有运气。如果我从我的计算机上运行本地Django服务器,该项目是可浏览的,Amazon RDS MySQL是可访
eb deploy
我明白了
如果我通过SSH登录到EC2服务器
eb ssh
然后用以下命令检查打开的端口:
netstat -lntu
我没有看到MySQL的3306端口,所以我猜它被防火墙屏蔽了
这是我在权限方面所做的尝试:
我做错了什么或缺少了什么?MySQL端口3306仅在RDS实例中打开(不在EC2实例中)。因此,如果您检查EC2实例,它不应该侦听端口3306 您可以执行哪些操作来检查RDS是否正常工作:
- 检查EC2实例与RDS的连接。
- SSH到您的实例(
)并运行eb-SSH
。您可能需要首先安装telnet myapp-staging.xxx.eu-west-1.rds.amazonaws.com 3306
(telnet
)yum安装telnet
- 如果成功,请检查您的应用程序
- 如果失败了,请检查下一点
- SSH到您的实例(
- 确保您的RDS和EC2位置正确:
- 对于仅限私人访问的RDS:
- 确保它们位于同一VPC中,并允许RDS中的传入连接从VPC的IP连接到3306。为了获得更好的性能,请使用IP地址而不是安全组名称
- 如果他们在不同的VPC上,您可以创建
- 对于公共访问RDS:
- 同上,允许从VPC的IP进行传入连接
- 对于仅限私人访问的RDS:
- 确保允许EC2实例与EC2安全组中的端口3306建立传出连接
- 确保您的EC2主机没有在
中拒绝3306规则iptables
- 如果您的EC2和RDS位于不同的VPC中,并且您的EC2使用专用IP,请检查NAT服务器。确保允许端口3306进行代理
netstat -lntu