2016-05-27 2 views
3

Меня интересует использование DynamoDB через Heroku. Будет ли это работать надежно и как мне настроить связь? Я использую Java, но помощь на любом языке будет в порядке.Могу ли я использовать DynamoDB через Heroku?

Источники информации я нашел до сих пор:

  • This question, кажется, подразумевает, что можно без объяснения, как.
  • This question объясняет, как Heroku может подключаться к эластике (а не DynamoDB), но продолжает объяснять, что это небезопасно, поскольку любое приложение Heroku может подключаться к серверу эластичности. Я хотел бы убедиться, что, однако, я подключаюсь к DynamoDB, на самом деле, безопасен.
  • This video, объясняющий, как подключиться к DynamoDB через Ruby в Heroku, больше не доступен.
  • This video продолжает говорить о том, как они собираются использовать DynamoDB от Heroku, а затем следующий ведущий признает, что он не мог заставить работать что-то еще и никогда не говорил об использовании DynamoDB в Heroku.
+0

Вы смотрели на интеграции Heroku с MongoLab? https://elements.heroku.com/addons/mongolab –

ответ

7

Да. Вы действительно можете использовать DynamoDB с Heroku. Я использую его для большого приложения, которое обрабатывает около 15 миллиардов запросов в месяц.

Вот что вы хотите сделать:

  1. Установите AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY переменные среды в вашем приложении Heroku. Когда вы подписываетесь на AWS, вам придется генерировать их, если у вас их уже нет. Как только вы их получите, сохраните их в Heroku в качестве переменных окружения.

  2. Установите библиотеку DynamoDB на свой язык/рамки по своему выбору.

  3. Когда вы инициализируете свою библиотеку AWS для DynamoDB, она попросит 2 вещи: ваши AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY, чтобы вы могли предоставить их из ваших переменных окружения.

Как это работает с точки зрения безопасности, как так:

  • Heroku работает на AWS в нас-восточном регионе.
  • Если вы создадите экземпляр DynamoDB в us-east, он будет в той же «сети», что и ваше приложение Heroku.
  • Когда ваше приложение Heroku подключится к DynamoDB, оно будет безопасно работать через SSL, используя ваши ключи API AWS в качестве имени пользователя/пароля для подключения.
  • Когда ваше приложение Heroku отправляет запросы в DynamoDB, это будет очень быстро, так как ваше приложение Heroku и ваш экземпляр DynamoDB находятся очень близко друг к другу физически.

Надеется, что это помогает =)

+0

Помните, если я увожу это для уточнения? У меня был такой же вопрос, как и у OP, и для того, чтобы убедиться, что я понимаю ваш ответ на 100%, вы говорите, что веб-приложение на Heroku и служба DynamoDB на AWS могут разговаривать друг с другом без использования HTTP-промежуточного веб-приложения (или API Gateway и т. Д.), Если они находятся в одном регионе AWS. Итак, с точки зрения приложения Heroku, там работает DynamoDB на локальном хосте? И когда вы пытаетесь подключить вашу библиотеку к DynamoDB, она просто найдет ее на локальном хосте, если у вас есть учетные данные AWS, настроенные в переменных среды? – Welkie

+0

№ Не совсем. Случается, что ваше приложение Heroku и ваш экземпляр Dynamo находятся в одном регионе AWS, и это означает, что у вас очень быстрые сетевые подключения к Dynamo с вашего сервера Heroku. Он не будет отображаться на локальном хосте, но вы можете использовать переменные среды для хранения ваших имен Dynamo на героку, чтобы сделать соединение с ним безболезненным. – rdegges

+0

Gotcha. Я даже попробовал это сегодня, как подключаясь к AWS с бесплатного динара Heroku, так и из локальной локальной среды. Оба работали! Теперь я вижу, что вы можете подключиться к AWS откуда угодно, просто Heroku находится в том же регионе, что дает ему возможность быть быстрым быстрым подключением. Теперь я могу бесплатно создавать вещи, размещенные на Heroku, и бесплатно получить 25 ГБ хранилища NoSQL на DynamoDB. :) Очень аккуратный материал. – Welkie

Смежные вопросы