当前位置: 首页 > 知识库问答 >
问题:

由连接到外部 RDS 的弹性豆茎创建的 EC2 的权限

翁宜年
2023-03-14

我对弹性豆茎很陌生,对服务器管理不是很精通,但我需要在弹性豆茎上设置一个Django项目,连接到外部RDS MySQL数据库。

我已经创建了一个单独的RDS MySQL数据库,我可以在我的计算机上使用Sequel Pro毫无问题地连接到它。然后我有我的Django项目,我试图将其放入Elastic Beanstalk,但不幸的是运气不好。如果我从我的计算机运行本地Django服务器,该项目是可浏览的,并且可以访问Amazon RDS MySQL。但是,当我运行时

eb deploy

我明白了

django.db.utils.OperationalError: (2003, "Can't connect to MySQL server
on 'myapp-staging.xxx.eu-west-1.rds.amazonaws.com' (110)")
(ElasticBeanstalk::ExternalInvocationError)

如果我通过SSH登录到EC2服务器

eb ssh

然后检查打开的端口

netstat -lntu

我在那没看到MySQL的端口3306,估计是被防火墙拦截了

这是我在权限方面尝试的:

    < li >我转到RDS仪表板-

然后,我尝试重新部署、重启服务器,甚至重建环境,但都无济于事。在Elastic Beanstalk创建的EC2实例中,MySQL端口3306仍然没有打开。

我到底做错了什么,还是少了什么?

共有1个答案

毕和志
2023-03-14

MySQL端口3306只在RDS实例中打开(不在您的EC2实例中)。因此,如果您检查您的EC2实例,它不应该监听端口3306。

您可以做的检查RDS是否正常工作的事情:

    < li >检查您的EC2实例与RDS的连接。 < ul > < li>SSH到您的实例(< code>eb ssh)并运行< code > telnet myapp-staging.xxx.eu-west-1.rds.amazonaws.com 3306 。您可能需要先安装< code > telnet (< code > yum install telnet )。 < li >如果成功,请检查您的应用。 < li >如果失败,请检查下一点。
  • 对于私有访问RDS:
    • 确保它们在同一个VPC中,并允许RDS中从VPC的IP到3306的传入连接。为了获得更好的性能,请使用IP地址而不是安全组名称。
    • 如果它们在不同的VPC上,您可以创建VPC对等互连。
    • 同上,允许VPC的IP接入

 类似资料:
  • 当我试图请求来自DB的对象时,它会显示一个白标签页面,告诉我它超时了。

  • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

  • 有人能解释一下EC2和豆茎有什么区别吗。我想知道关于SaaS、PaaS和IaaS。 要在Wordpress中部署web应用程序,我需要一个可伸缩的托管服务。如果有什么比我的目的更好的,请告诉我,以及。 我想托管和部署多个Wordpress和Drupal站点。 我不想给服务器更多的时间,专注于开发。但是云托管需要是自动可伸缩的。

  • 我这样做已经有一段时间了,但我相信我做的每件事都是正确的。 这是我的设置; < li >弹性豆茎环境- big-ugly-aws-url.com < li >注册商的DNS <李> < ul > < Li > something.example.com指向big-ugly-aws-url.com的CNAME设置 设置 example.com 的托管区域 添加了指向别名的记录 奇怪的是,所有这些组合

  • 因此,只要我将应用程序放在比 micro 更大的实例上,我的应用程序就可以很好地安装和部署。 当我在micro上部署composer试图安装时,我得到一个php错误,提示我无法分配足够的内存。所以我做了一些谷歌搜索,似乎你可以在启动/创建实例时创建一个交换文件/磁盘,这里有两个教程一个两个 这些可能会过时,所以第一个问题是这还能做吗? 第二个问题是如何创建.ebextensions文件以在部署时实

  • 假设我在Wordpress中创建了一个站点,它运行在Elastic Beanstalk上。现在,在运行的应用程序上,我将创建帖子/页面,上传图像等。也就是说,数据库中的一些数据、视频、文件和记录将被添加到运行的应用程序中。 从我在AWS控制台中看到的情况来看,我可以部署一个应用程序的不同版本--但是根据上面的场景,如果我部署了一个新版本,我会不会丢失直接上传到正在运行的应用程序中的所有文件(即文件