如何在本地开发使用AWS RDS的AWS Web应用程序



在转到亚马逊网络服务之前,我一直在使用谷歌云平台来开发我的应用程序,具体来说是CloudSQL,GCP有一种叫做云SQL代理的东西,它允许我使用计算机连接到我的CloudSQL实例,而不必将我的代码部署到服务器上然后测试它。我如何使用AWS来实现同样的功能?

我在Elastic Beanstalk上有一个python环境,它使用Amazon RDS。

默认情况下,AWS被拒绝,因此您无法访问应用程序所在VPC之外的RDS实例。。。您可以通过VPN连接到RDS实例,该VPN可以在EC2中建立,EC2对RDS实例开放规则。这将允许您连接到任何开发者机器上的VPN,然后访问RDS实例,就像您的开发箱在VPC中一样。这是我喜欢的方法,因为它更安全。只有能够访问VPN的用户才能访问RDS实例。从生产的意义上讲,这对我来说效果很好。

我使用的VPN提供商是https://aws.amazon.com/marketplace/pp/OpenVPN-Inc-OpenVPN-Access-Server/B00MI40CAE

或者,您可以在专有网络中向RDS实例打开一个漏洞,并将其公开。然而,我不建议这样做,因为它会让你的RDS实例在公开时受到攻击。

你可以通过适当的VPC设置将你的AWS RDS暴露在互联网上,我以前做过。

但它也有一些风险

所以通常你可以用这些方法来计算:

  1. 创建本地数据库服务器并从AWS RDS恢复快照
  2. 或者使用VPN连接到您的专用子网,该子网包含您的RDS

有几个人建议将您的RDS实例放在公共子网中,并允许从互联网访问。

这通常被认为是一个坏主意,应该是最后的手段。

因此,您可以选择在专用子网中访问RDS。

第一种选择是在本地网络和AWS专有网络之间建立网络。您可以使用Direct Connect或点式VPN来完成此操作。但根据你的问题,这不是你觉得舒服的事情。

第二种选择是在公共子网中设置一个堡垒服务器,并使用ssh端口转发通过ssh隧道获得对RDS的本地访问。

你没有说你是在linux还是Windows上,但这可以在任何一个操作系统上完成。

我解决的问题是:

  1. 转到Elastic Beanstalk控制台
  2. 选择你的应用程序
  3. 转到配置
  4. 单击数据库中数据库的端点
  5. 单击数据库实例的标识符
  6. 在安全组规则中,单击安全组
  7. 单击入站选项卡
  8. 单击编辑
  9. 将类型更改为All Traffic,将源更改为Anywhere
  10. 保存

通过这种方式,您可以将连接到Elastic Beanstalk应用程序的RDS暴露在互联网上,这不是人们建议的,但这正是我想要的。