访问在Elastic Beanstalk中创建的RDS实例

时间:2016-05-10 08:59:24

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

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

eb ssh

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

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

2 个答案:

答案 0 :(得分:1)

RDS是托管数据库服务,这意味着您只能通过数据库调用访问它。

如果它是一个MySQL数据库,你可以通过你的EC2实例通过mysql访问:

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

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

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

<强>更新: 如果你想要你想要的东西那么你应该使用带有mysql服务器的EC2实例。它会花费相同的成本(即使相比之下损失了一小部分性能)。 EC2实例可以在不使用时关闭。

答案 1 :(得分:1)

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

  

检查您的AWS VPC配置。

     

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

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

FROM: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 CommandLine

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