The biggest advantage of this single-server architecture is in its simplicity. Especially Apache--but other systems as well--is very quick and painless to setup for a configuration like above (I find Nginx and fcgi a bit less straight forward, but certainly doable as well).
Another advantage is that you only need to run one server at a time, and servers can hog memory and cpu, especially on low powered solutions like a small VPS.
That said, the single-server architecture is a bit unwieldy when it comes to scaling your site for higher loads. As with other architectures, you can begin scaling the single-server setup vertically by purchasing a more powerful VPS or server, but trouble starts to sneak in when it is no longer cost-effective to increase capacity by upgrading your machine.
Upon reaching that situation, your first move will typically be to move your database to a second machine, which is easily accomplished. However, when you need to add more capacity for serving dynamic or static content, the setup is a bit inflexible. Your first and only option is to add additional machines behind a load-balancer.
The single-server setup may be the most efficient option for low resource environments, is relatively simple to configure, but must serve static and dynamic content with the same configuration, and thus may open itself up for inefficiencies as demands grow.
We offer “One-Server Two-tier Architecture” Setup. In this architecture, Odoo server and PostgreSQL database server will be installed on AWS EC2 instance.