I'm building a news application. Each article can be tagged with words like "Politics", "Food", "San Jose, CA". I'd like users to be able to select a tag, and see all related articles. What would be the recommended way of storing this data?
My instinct is to use S3 for each news article and tag, and then to use DynamoDB to store the relationship of tag to article (edges). So, when a user wants to view articles for a tag, I'd retrieve the S3 object for that tag, do a DynamoDB query for the ID's of articles associated with that tag, and then retrieve the S3 objects for each article.
Does this sound like a good plan, or is there a better way?