【问题标题】:Can I use DynamoDB through Heroku?我可以通过 Heroku 使用 DynamoDB 吗?
【发布时间】:2016-09-25 18:40:35
【问题描述】:

我对通过 Heroku 使用 DynamoDB 很感兴趣。这会安全地工作吗?我将如何建立通信?我正在使用 Java,但任何语言的帮助都可以。

到目前为止我发现的信息来源:

  • This question 似乎暗示这是可能的,而无需解释如何。
  • This question 解释了 Heroku 如何连接到 elasticache(不是 DynamoDB),但继续解释它是不安全的,因为任何 Heroku 应用程序都可以连接到 elasticache 服务器。我想确保我连接到 DynamoDB 的方式实际上是安全的。
  • This video 解释如何在 Heroku 中通过 Ruby 连接到 DynamoDB 不再可用。
  • This video 一直在谈论他们将如何使用 Heroku 中的 DynamoDB,然后下一位演讲者承认他无法让其他东西工作,并且从未继续谈论在 Heroku 中使用 DynamoDB。

【问题讨论】:

标签: java amazon-web-services heroku amazon-dynamodb


【解决方案1】:

是的。您确实可以将 DynamoDB 与 Heroku 一起使用。我将它用于每月处理大约 150 亿个请求的大型应用程序。

这是你想要做的:

  1. 在 Heroku 应用程序中设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量。当您注册 AWS 时,如果您还没有这些,则必须生成这些。获取它们后,将它们作为环境变量存储在 Heroku 中。

  2. 以您选择的语言/框架安装 DynamoDB 库。

  3. 当您为 DynamoDB 初始化 AWS 库时,它会询问两件事:您的 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY,因此您可以从环境变量中提供这些内容。

这在安全方面的工作方式是这样的:

  • Heroku 在美国东部地区的 AWS 上运行。
  • 如果您在 us-east 中创建 DynamoDB 实例,它将与您的 Heroku 应用位于同一“网络”中。
  • 当您的 Heroku 应用程序连接到 DynamoDB 时,它将通过 SSL 安全地连接,使用您的 AWS API 密钥作为用户名/密码进行连接。
  • 当您的 Heroku 应用程序向 DynamoDB 发出请求时,速度会非常快,因为您的 Heroku 应用程序和您的 DynamoDB 实例在物理上非常靠近。

希望这会有所帮助 =)

【讨论】:

  • 介意我劫持这个来澄清一下吗?我和 OP 有同样的问题,为了确保我 100% 理解你的答案,你是说 Heroku 上的 Web 应用程序和 AWS 上的 DynamoDB 服务可以在不使用 HTTP 中介 Web 应用程序的情况下相互通信(或API Gateway 等),只要它们位于同一个 AWS 区域。那么从 Heroku 应用程序的角度来看,有 DynamoDB 在 localhost 上运行吗?当您尝试让您的库连接到 DynamoDB 时,只要您在环境变量中设置了 AWS 凭证,它就会在 localhost 上找到它?
  • 没有。不完全的。发生的情况是您的 Heroku 应用程序和您的 Dynamo 实例位于同一个 AWS 区域,这意味着您可以从 Heroku 服务器与 Dynamo 建立非常快速的网络连接。它不会显示在本地主机上,但您可以使用环境变量将您的 Dynamo 凭据存储在 heroku 上,以便轻松连接到它。
  • 明白了。今天我什至尝试了从 Heroku 免费 dyno 和本地开发环境连接到 AWS 的方法。两者都有效!我现在可以看到,您可以从任何地方连接到 AWS,只是 Heroku 位于同一区域,这使它有机会成为一个极快的连接。现在,我可以免费创建托管在 Heroku 上的东西,并在 DynamoDB 上获得 25 GB 的 NoSQL 存储,这一切都是免费的。 :) 非常整洁的东西。
  • 是的!正是:)
猜你喜欢
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
相关资源
最近更新 更多