You should spend some time to carefully review this official deployment guide from Microsoft http://www.microsoft.com/en-us/download/details.aspx?id=10009.
In order to automate the process and have something robust, I heavily suggest you to have a look on the codeplex project AutoSPInstaller which will help you to automate and ensure a proper deployment of your farm. Within the discussions and by looking on google for this project, you'll learn more topology wise than most of the official technical document.
Regarding search, this can be indeed a big resource hog (depending on how much data you'll handle and much of it should be crawled and how frequently) but you can create some rules on your load balancer to target a specific (opposite) WFE when the crawler is hammering the other ones or simply crawl at night.
I used to recommend a three tier farm (1 WFE / Search Query, 1 Apps Services Server, 1 SQL Server (or 2 clustered) but with the ressources that you have, a 2 tier will be better and will give you high availability without any single point of failure.