gpt4 book ai didi

amazon-web-services - 由 Elastic Beanstalk 创建的 EC2 连接到外部 RDS 的权限

转载 作者:行者123 更新时间:2023-12-04 07:52:04 26 4
gpt4 key购买 nike

我对 Elastic Beanstalk 还很陌生,对服务器管理不是很精通,但我需要在 Elastic Beanstalk 上设置一个 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 端口,所以我猜它被防火墙阻止了。

这是我在权限方面尝试过的:
  • 我转到 RDS Dashboard -> Security Groups 并创建了 myapp-mysql-security-group,其 EC2 安全组连接类型指向 Elastic Beanstalk EC2 实例“awseb-e-...”使用的 EC2 安全组。
  • 我去了 EC2 -> 安全组,对于“awseb-e-...”,我将 Inbound MySQL 端口设置为源 0.0.0.0/0
  • 我去了 VPC Dashboard -> Security Groups 并使用源 0.0.0.0/0 的 MySQL 端口的入站规则创建了 myapp-mysql-security-group。

  • 然后我尝试重新部署,重新启动服务器甚至重建环境,但没有任何帮助。 MySQL 端口 3306 在 Elastic Beanstalk 创建的 EC2 实例中仍未打开。

    我做错了什么或缺少什么?

    最佳答案

    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 install telnet)。
  • 如果成功,请检查您的应用程序。
  • 如果失败,请检查下一点。
  • 确保您的 RDS 和 EC2 放置正确:
  • 对于仅私有(private)访问 RDS:
  • 确保它们在同一个 VPC 中,并允许 RDS 中从 VPC 的 IP 到 3306 的传入连接。为了获得更好的性能,请使用 IP 地址而不是安全组名称。
  • 如果它们在不同的 VPC 上,您可以创建 VPC Peering .
  • 对于公共(public)访问 RDS:
  • 同上,允许来自 VPC 的 IP 的传入连接。
  • 确保允许 EC2 实例与 EC2 安全组中的端口 3306 建立传出连接。
  • 确保您的 EC2 主机在 iptables 中没有拒绝 3306 规则.
  • 如果您的 EC2 和 RDS 在不同的 VPC 中,并且您为 EC2 使用私有(private) IP,请检查 NAT 服务器。确保您允许代理端口 3306。
  • 关于amazon-web-services - 由 Elastic Beanstalk 创建的 EC2 连接到外部 RDS 的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33734479/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com