You have in your question says "theory", and next is the presentation of some practical facts, and very vaguely. As has here been said above, you have fundamentally not the right approach.
Each architectural solution depends on the specific task. For this there are system architects, whose task is a painstaking task analysis of the project and the selection of specific technical solutions in a particular case. In large heavily loaded and constantly developing projects these people have to work on a permanent basis, receive a salary.
No you can't help in this case for two reasons:
1) You did not disclose all the technical details and the details of your project. About the pictures, social. network, and so on — this is not enough, you need a multi-page detailed explanatory description of all the required functions, at least... I'm not saying that it would be good to concretize and resources, as well as to estimate the load.
2) It is not done so here on the knee. Sensible detailed analysis can take several months, and of course for free this one will not do. There are some theoretical bases, but they are so theoretical that you do not even set out above. The number of DNS servers, AA records, nginx-si, php, device, database, etc. — it has the practical field, which strongly depends on the task. You can implement all that you have written, and get the cumbersome unwieldy poorly scalable application that requires huge expenses. Based on what you wrote, I can only advise not to do this, because you originally had the wrong approach and wrong ideas. And any practical tips that you wrote here, or even write — no more than a personal unsubstantiated experience in solving their own (not your) problems that can be radically different.
Can only share advice on how do I when choosing a specific technical solution in steps:
1) requirements Gathering. It is important to collect and identify as many requirements as possible by a specific task in relation to a specific issue. For example, all requirements for data storage such a service.
2) Select the largest possible number of options with which the task is actually doable, and then exclude those that obviously do not fit the requirements, leaving only those that satisfy them the most (it so happens that all the requirements in principle impossible to satisfy).
3) the Technical solution is always a compromise. Of the remaining options it is necessary to choose the most appropriate, often need to do a comparison test (and it is their own, on the tests one way or another simulating your task). If you are still not satisfied, perhaps you should reconsider the requirements or to break the task into several, if possible. In any case, it refers you to the correct item 1.
Bonus track 1: KISS
Bonus track 2: One size never fits all