Добавить в файл журнала в S3 (или любую другую услугу AWS)

Мне нужно создать файл журнала в AWS S3 (или любую другую службу AWS, которая может помочь здесь). AFAIU нет способа добавить строку к существующему файлу журнала в S3. Это означает, что мне нужно либо получить и повторно отправить весь журнал каждый раз при появлении нового сообщения, либо мне понадобится создать новый объект для каждого сообщения. Последняя опция сложна при извлечении данных.

У меня есть много сообщений журнала, и важно не потерять их, поэтому не нужно их буферизировать в памяти своего сервера и отправлять на S3 время от времени.

Какой сервис AWS будет моим лучшим вариантом (также с точки зрения экономии затрат).

Ответ 1

То, что вы ищете, называется EBS (Elastic Block Store).

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

Еще лучше, просто создайте центральный сервер syslog (с диском EBS), и все ваши серверы приложений (без состояния) отправят туда свои журналы.

Когда ваш накопитель EBS заполняется, архивируйте день/неделю/etc в журналы S3. Это позволяет хранить довольно большие файлы в S3 (и даже делать сжатие, если вы хотите).

Ответ 2

AWS SimpleDB будет делать то, что вы хотите:

http://aws.amazon.com/simpledb/usecases_logging/

Так как Amazon SimpleDB позволяет полностью разгружать работу необходимых для запуска производственной базы данных, многие разработчики идеальное хранилище данных с низким уровнем касания для регистрации информации об условиях или события, обновления статуса, повторяющиеся действия, процессы рабочего процесса, или состояния устройства и приложения. Amazon SimpleDB позволяет вам экономически "установить и забыть" эти журналы данных и использовать их для различные цели, такие как:

Мониторинг или отслеживание Metering Trend бизнес-анализа Аудит Соответствие требованиям архива или регламента Примеры применения:

Хранение журналов сервера централизованно, чтобы уменьшить пространство, которое они потребляют на каждом работающий сервер. Регистрирование рабочих показателей или результатов текущих тесты производительности для последующего анализа. Аудит записей доступа или изменения конфигурации для приложений или сетевых устройств. Захват и мониторинг условий окружающей среды (температура, уровни давления, влажность и т.д.) в разных местах и ​​оповещения о программировании для особые условия Регистрация и отслеживание геолокации об объектах или состоянии процесса для действий в рабочем процессе. Несколько атрибуты Amazon SimpleDB делают его привлекательным хранилищем данных для журналы данных:

Центральный, с высокой доступностью - если ваши журналы данных были ранее локально локализован в нескольких устройствах/объектах, приложениях или технологические силосы, вы сможете воспользоваться возможностью получить доступ к своим данных централизованно в одном месте в облаке. Более того, Amazon SimpleDB автоматически и гео-избыточно реплицирует ваши данные, чтобы обеспечить высокий уровень доступность. Это означает, что в отличие от централизованной посылки решение, вы не создаете единственную точку отказа с Amazon SimpleDB, и ваши данные будут там, когда вам это нужно. Все данные могут быть сохранены через запросы веб-сервисов одним решением и затем доступ к любому устройству. Zero Administration - вы сохраняете свои данные с запросами простых веб-сервисов и веб-сервисами Amazon уход за остальными. Устанавливаем его и забываем о характере служебных средств вы не тратите время на управление базой данных, чтобы хранить и ведение журналов данных.

Экономичный - Amazon SimpleDB оплачивает недорогие цены для хранения и запрашивать журналы данных. Поскольку вы платите, поскольку вы ресурсов, которые вы потребляете, вам не нужно выполнять собственное планирование мощности или беспокоиться о загрузке базы данных. Услуга просто отвечает на запрос объема, поскольку он приходит и уходит, заряжая вас только потребляемые ресурсы. Чтобы узнать больше об Amazon Si

Ответ 3

В настоящее время AWS не имеет хорошего решения для регистрации, но на рынке есть несколько других облачных сервисов, которые собирают и упорядочивают журналы, в том числе papertrailapp.com и loggly.com.

Ответ 4

Самый простой способ сделать это - записать на диск, а затем повернуть и отправить журналы с интервалом, который работает для вас.

Это может быть немного сложнее, если вы являетесь точными экземплярами или экземплярами, поддерживаемыми экземплярами.

Ответ 5

То, что вы ищете, возможно с S3. S3 не должен иметь полный файл для начала хранения данных. Вы можете использовать многостраничную загрузку для хранения блоков (блоков 5 МБ) за раз. Как только вы закончите, скажите, что в дневное время вы можете отправить окончательный блок и закрыть многостраничную загрузку. и начните запись на следующий день.

S3 позволяет до 10000 частей. Таким образом, выбрав размер 5MiB, вы сможете загружать динамические файлы до 50GiB. Должно быть достаточно для большинства случаев использования.

Инициировать многоточечную загрузку S3.   Собирайте данные в буфер до тех пор, пока этот буфер не достигнет нижнего предела размера блока (5 МБ) S3. Генерируйте контрольную сумму MD5 при создании буфера.   Загрузите этот буфер как часть, сохраните ETag.   Как только вы достигнете EOF ваших данных, загрузите последний фрагмент (который может быть меньше 5MiB).   Завершите загрузку многостраничных файлов.

Это лучшее решение, так как оно не стоит вам и EC2-хранилищам или EBS-хранилищам.