1. For Mobile users to access, you can use services like Cognito.
2. Web, App - you can have EBS or Docker (ECS) since AWS is going to maintain them and it's extremely scalable and no need to patch or worry about anti-virus.
3. Database: You can use Aurora/RDS as it's fantastic and AWS manages it.
4. When users sign-in or the app wants to send notifications, you can use SNS coupled with Lambda (Event Based)
5. All photos and videos can be stored in S3 bucked and after certain period of time, you can archive to Glacier.
6. Now to the big stuff, where you want to learn about user behavior and their preference etc, and to process all those big data, you can have setup like EMR (Hadoop) and use Redshift (Data warehouse) and use Amazon Quicksight for showing the trends, graphs. Or you can use Microsoft BI or Tableau.