Перенос данных предприятия - небольшие объемы - в приложение AWS S3 для Heroku
Что, по вашему мнению, является лучшим вариантом для передачи "корпоративных" данных от клиента в AWS S3, чтобы мы могли предоставить SaaS, размещенный на Heroku?
Объемы данных крошечные, это просто ежедневные записи в электронных таблицах / CSV. Но чтобы предоставить SaaS-решение, нам нужно передать данные с клиентского компьютера на S3 для использования нашим приложением Heroku. Очевидно, это должен быть автоматизированный, безопасный процесс.
Возможные варианты, о которых я знаю:
SFTP файлы через сервис, такой как cloudgates.net или cyberduck.io - но для этого нужно как-то настроить процедуру планирования, и она кажется негибкой.
Используйте AWS Storage Gateway, чтобы переместить файлы с кольцевой машины на S3. Это может не начинаться, поскольку внутренний ИТ-персонал может не иметь возможности установить виртуальную машину, настроить шлюз и еще много чего.
"Облачный модуль Oracle Secure Backup для Amazon S3" Если бы мы могли заставить клиента создать базу данных Oracle, в которую они помещают нужные нам данные каждый день, Oracle RMAN мог бы отправить ее на S3. Но нам нужны простые текстовые файлы в S3, а не в базе данных Oracle, поэтому, возможно, это не имеет смысла (поскольку у нас есть приложение Heroku, а не экземпляр EC2 с Oracle).
Мне кажется, что единственный подходящий подход к автоматической загрузке данных - это написать код, используя AWS SDK на Java или.Net, который работает на клиентском компьютере. Это проблематично, если ИТ-персоналу не все в порядке, особенно с точки зрения безопасности.
Я подумал, что задам вопрос на случай, если мне не хватает простого варианта, который лучше, чем Боб, по сравнению с аккаунтами, загружающими файлы через наше приложение Heroku на S3 каждое утро?
1 ответ
Я использую SSH (SFTP) для подобных задач. Шаги, чтобы сделать это красиво и безопасно:
- Создайте клиентский сертификат для ваших потребностей загрузки и установите его в вас
.ssh/authorized_keys
или подобное на экземпляре S3. - использование
sftp -i <public key> <file> <remote location>
бросить файл туда, где он вам нужен. - Поместите команду из шага 2 выше в задание cron - затем порезвитесь.
Это работает очень хорошо для меня почти во всех случаях, когда мне нужно специальное соединение с сервером. Если вы работаете в Windows, возможно использование Putty вместе с Puttygen, Plink и службой планировщика Windows для достижения чего-то подобного.
Вы должны использовать планировщик, чтобы этот получатель работал - я считаю, что это намного чище, чем создание сценария или что-то, что выполняет свою работу. Использование всех этих стандартных битов облегчает мышление для других.
РЕДАКТИРОВАТЬ: Amazon имеет дружественный гид по биту сертификата прямо здесь.