I'm currently working on a large web application that produces a large amount of log data. Because we don't have the infrastructure to log all the events to a database, we are writing them to file. Unfortunately, this makes it very difficult to search the logs for a specific event and impossible to generate reports on frequency.
While trying to figure out how to implement better database logging, I found Amazon's services. Specifically SimpleDB and DynamoDB. One of the use cases for SimpleDB was logging, but then later it states that
Amazon SimpleDB is designed to store relatively small amounts of data...
This seems contradictory. Here are my questions:
Update 2018-06-13: I have since used SimpleDB to log application data on large applications. The key was to partition the logs into domains corresponding to the time period they were generated (daily for example) to ensure they didn't grow beyond their limit. Then set up a CRON job to periodically delete the old domains. This solution has worked well and is easily searchable.
My answer is based off of my experience with SimpleDB in a production environment.
SimpleDB is designed to store relatively small amounts of data. If you have "a large amount of log data" and you want to "search the logs for a specific event" and "generate reports on frequency", then you definitely want to go with DynamoDB.
DynamoDB has both "hash keys" (e.g., indexes) and "range keys" which allow you to sort the data in various ways. For example: "Show me all of the INFO logs from last week until now."
Also, if you check out the official DynamoDB forum, the developers and support staff are really good about following up and making sure your questions are answered.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With