All our services are built using Ruby, so it's the obvious choice. It scales and it's robust. We might just spend a little bit more on Heroku than if we'd use another language such as go - but it's definitely not worth introducing a new language to our stack.
S3 is quite limited when it comes to listing a subset of objects as scope using prefixes. So can fetch all objects starting with "2014/10/10" but you can't fetch the last 30 created objects for instance.
Our client has been storing months of tracking events on S3 via Kinesis. This seems to be a simple, cheap and reliable solution to store billions of datapoints. We can then import that data into ElasticSearch, Amazon Redshift, etc.