【问题标题】:How to develop a AWS Web App that uses AWS RDS locally?如何开发在本地使用 AWS RDS 的 AWS Web App?
【发布时间】:2020-03-12 03:13:19
【问题描述】:

在迁移到 Amazon Web Services 之前,我使用 Google Cloud Platform 来开发我的应用程序,具体来说是 CloudSQL,而 GCP 有一个叫做 Cloud SQL Proxy 的东西,它允许我使用我的计算机连接到我的 CloudSQL 实例,而不是让将我的代码部署到服务器然后对其进行测试。如何使用 AWS 做同样的事情?

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

【问题讨论】:

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


    【解决方案1】:

    默认情况下拒绝 AWS,因此您无法访问运行应用程序的 VPC 之外的 RDS 实例。话虽如此...您可以通过可在 EC2 中建立的 VPN 连接到 RDS 实例具有对 RDS 实例开放的规则。这将允许您连接到任何开发人员机器上的 VPN,然后访问 RDS 实例,就好像您的开发盒在 VPC 中一样。这是我的首选方法,因为它更安全。只有那些可以访问 VPN 的人才能访问 RDS 实例。从生产意义上来说,这对我来说效果很好。

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

    或者,您可以在 VPC 中为 RDS 实例打开一个漏洞,并使其公开可用。但是,我不推荐这样做,因为它会公开暴露您的 RDS 实例,从而使其容易受到攻击。

    【讨论】:

    • 我还建议启动第二个 RDS 实例进行测试,该实例与您的生产 RDS 实例一起运行,这样您就可以在不接触生产的情况下进行测试。
    • 您能否解释一下如何使我的 RDS 实例公开可用?我对网络了解不多。
    • 查看此 AWS 文档中标题为“在 VPC 中使用数据库实例”的部分docs.aws.amazon.com/AmazonRDS/latest/UserGuide/… 话虽如此,我强烈建议采用 VPN 方法,因为公开暴露的数据库可能会使您受到攻击以及数据泄露的可能性。
    【解决方案2】:

    您可以通过适当的 VPC 设置将您的 AWS RDS 公开到 Internet,我以前做过。

    但它有一些风险

    所以通常你可以使用这些方法来弄清楚:

    1. 创建本地数据库服务器并从您的 AWS RDS 还原快照
    2. 或使用 VPN 连接到您的私有子网,其中包含您的 RDS

    【讨论】:

    • 您能解释一下如何按照您提到的方式配置我的 VPC 设置吗?我对网络了解不多。
    • (1) 当您创建 AWS RDS 时,它有一个名为“可公开访问”的选项。你需要启用它。它将为您的 RDS 分配公共 IP 地址。 (2) 将您的 RDS 设置为公共子网 (3) 正确设置您的安全组(打开 RDS 端口到互联网)。
    【解决方案3】:

    一些人建议将您的 RDS 实例放在公共子网中,并允许从 Internet 访问。

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

    因此,您可以通过多种方式访问​​私有子网中的 RDS。

    第一个选项是在您的本地网络和 AWS VPC 之间设置网络。您可以使用 Direct Connect 或点对点 VPN 执行此操作。但根据你的问题,这不是你觉得舒服的事情。

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

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

    【讨论】:

      【解决方案4】:

      我要解决的是:

      1. 转到 Elastic Beanstalk 控制台
      2. 选择你的应用程序
      3. 转到配置
      4. 在 Databases 中单击数据库的端点
      5. 点击您的数据库实例的标识符
      6. 在安全组规则中单击安全组
      7. 点击入站标签
      8. 点击编辑
      9. 将类型更改为所有流量,将来源更改为任何地方
      10. 保存

      通过这种方式,您可以将连接到您的 Elastic Beanstalk 应用程序的 RDS 公开到 Internet,正如人们所建议的那样不建议这样做,但这是我正在寻找的。​​p>

      【讨论】:

        猜你喜欢
        • 2019-03-10
        • 2021-09-05
        • 2019-04-16
        • 2019-06-01
        • 1970-01-01
        • 2020-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多