【问题标题】:Access an RDS instance created in Elastic Beanstalk访问在 Elastic Beanstalk 中创建的 RDS 实例
【发布时间】:2016-05-27 09:30:09
【问题描述】:

当您设置新的 Elastic Beanstalk 集群时,您可以通过以下方式访问您的 EC2 实例:

eb ssh

但是,目前还不清楚如何访问 RDS 实例。

如何访问 Elastic Beanstalk 上下文中的 RDS 以执行 CRUD 操作?

【问题讨论】:

  • 您无法使用 SSH 访问 RDS 实例或在其上获取 shell。
  • 我的意思是获得 RDS 的访问权限以执行 CRUD 操作。将编辑问题。

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


【解决方案1】:

通过调整 RDS 安全组,可以从任何地方访问 RDS 命令行。

检查您的 AWS VPC 配置。

安全组需要是 调整为允许您从新的源/端口进行连接。

  1. 查找 RDS 的安全组 ID。
  2. 在 AWS 控制台 > VPC > 安全组中找到该组
  3. 相应地调整入站和出站规则。
    • 您需要允许访问/访问需要连接到 RDS 的 IP 或安全组。

发件人:https://stackoverflow.com/a/37200075/1589379

之后,剩下的就是配置您想用来操作数据库的任何本地数据库工具。

编辑:

另外注意,如果 ElasticBeanstalk 环境配置为使用 RDS,则 EC2 实例将设置环境变量,其中包含连接到 RDS 所需的信息。

这意味着您可以将这些变量导入到任何需要访问的代码中。

自定义环境变量也可以在 Elastic Beanstalk 环境配置中设置,这些也可以通过这种方式包含在内。

PHP

define('RDS_HOSTNAME', getenv('RDS_HOSTNAME'));
$db = new rds(RDS_HOSTNAME);

Linux 命令行

mysql --host=$RDS_HOSTNAME --port=$RDS_PORT -u $RDS_USERNAME -p$RDS_PASSWORD

【讨论】:

    【解决方案2】:

    RDS 是一个托管的数据库服务,也就是说你只能通过数据库调用来访问它。

    如果是 MySQL 数据库,您可以通过 mysql 访问您的 EC2 实例,如下所示:

    mysql -u user -p password -h rds.instance.endpoint.region.rds.amazonaws.com
    

    或使用所需的设置将其设置为与您的应用一起使用。

    确保您正确设置安全组,以便您的 EC2/其他服务可以访问您的 RDS 实例。

    更新: 如果你想要你所要求的,那么你应该使用一个带有 mysql 服务器的 EC2 实例。它的成本是相同的(即使相比之下损失了一小部分性能)。一个 EC2 实例,您也可以在不使用时关闭。

    【讨论】:

    • 是的,我使用的是 MySQL。这个解决方案意味着我必须在我的 EC2 实例上安装 mysql(或至少是客户端)。我不想那样做。我希望能够从我的笔记本电脑访问数据库。
    • 那么听起来好像您应该使用带有 mysql 服务器的 EC2 实例。它的成本是相同的(即使相比之下损失了一小部分性能)。不使用时也可以关闭的 EC2 实例。
    • 我正在设置一个相对复杂的 Web 应用程序,它需要在具有专用数据库服务器的集群(Elastic Beanstalk)环境中运行。我只是希望能够手动读写数据库。
    • 我真的不明白你在找什么。 RDS 听起来正是您想要在笔记本电脑上使用 mysql 客户端(或 Mysql Workbench)的东西,可能在 Vagrant 虚拟机中。根据什么类型的网络应用程序,您也可以使用 sqlite 对其进行设置以进行开发。
    • 1) 使用 Elastic Beanstalk 和 RDS 的魔力(包括eb ssh) 2) 从我的桌面访问我的 RDS MySql
    猜你喜欢
    • 2016-12-19
    • 2013-10-15
    • 2016-11-01
    • 2014-08-22
    • 2015-09-15
    • 2017-03-05
    • 2016-02-15
    • 2015-07-04
    • 2013-08-12
    相关资源
    最近更新 更多