Перенос данных предприятия - небольшие объемы - в приложение AWS S3 для Heroku

Что, по вашему мнению, является лучшим вариантом для передачи "корпоративных" данных от клиента в AWS S3, чтобы мы могли предоставить SaaS, размещенный на Heroku?

Объемы данных крошечные, это просто ежедневные записи в электронных таблицах / CSV. Но чтобы предоставить SaaS-решение, нам нужно передать данные с клиентского компьютера на S3 для использования нашим приложением Heroku. Очевидно, это должен быть автоматизированный, безопасный процесс.

Возможные варианты, о которых я знаю:

  1. SFTP файлы через сервис, такой как cloudgates.net или cyberduck.io - но для этого нужно как-то настроить процедуру планирования, и она кажется негибкой.

  2. Используйте AWS Storage Gateway, чтобы переместить файлы с кольцевой машины на S3. Это может не начинаться, поскольку внутренний ИТ-персонал может не иметь возможности установить виртуальную машину, настроить шлюз и еще много чего.

  3. "Облачный модуль Oracle Secure Backup для Amazon S3" Если бы мы могли заставить клиента создать базу данных Oracle, в которую они помещают нужные нам данные каждый день, Oracle RMAN мог бы отправить ее на S3. Но нам нужны простые текстовые файлы в S3, а не в базе данных Oracle, поэтому, возможно, это не имеет смысла (поскольку у нас есть приложение Heroku, а не экземпляр EC2 с Oracle).

Мне кажется, что единственный подходящий подход к автоматической загрузке данных - это написать код, используя AWS SDK на Java или.Net, который работает на клиентском компьютере. Это проблематично, если ИТ-персоналу не все в порядке, особенно с точки зрения безопасности.

Я подумал, что задам вопрос на случай, если мне не хватает простого варианта, который лучше, чем Боб, по сравнению с аккаунтами, загружающими файлы через наше приложение Heroku на S3 каждое утро?

1 ответ

Я использую SSH (SFTP) для подобных задач. Шаги, чтобы сделать это красиво и безопасно:

  1. Создайте клиентский сертификат для ваших потребностей загрузки и установите его в вас .ssh/authorized_keys или подобное на экземпляре S3.
  2. использование sftp -i <public key> <file> <remote location> бросить файл туда, где он вам нужен.
  3. Поместите команду из шага 2 выше в задание cron - затем порезвитесь.

Это работает очень хорошо для меня почти во всех случаях, когда мне нужно специальное соединение с сервером. Если вы работаете в Windows, возможно использование Putty вместе с Puttygen, Plink и службой планировщика Windows для достижения чего-то подобного.

Вы должны использовать планировщик, чтобы этот получатель работал - я считаю, что это намного чище, чем создание сценария или что-то, что выполняет свою работу. Использование всех этих стандартных битов облегчает мышление для других.

РЕДАКТИРОВАТЬ: Amazon имеет дружественный гид по биту сертификата прямо здесь.

Другие вопросы по тегам