If it were me, I'd spend half a day first squeezing all the juice out of what you've got, first.
Follow some of the optimization guides, check your kernel and everything else is up to date.
Block unwanted bots, spiders and user agents. Ensure caching is on. Make sure swap is enabled. Use Cloudflare as a free easy CDN to serve all your static assets. Use nginx instead of Apache if you can. Make use of fast-cgi cache. Use tools like mysqltuner, iftop and so on.
I run 2 phpbb forums, 2 Wordpress installs and audio serving site. All serve https too. According to Google, my sites are quicker than 80% of the internet, and the whole lot runs on one single 512MB $5 droplet. CPU runs at 20%, memory at 80%. The majority of requests to my site never even wake the web or mysql server up as the majority of assets and are served by Cloudflare. Most html pages that aren't yet cached by Cloudflare hit the fast-cgi cache; about 20% of requests ever actually make it through to the actual web and mysql servers.
Even dynamic pages can be cached - let's say you have a massive store with 10,000 items. 80% of the page remains the same, only the product description, photo and price change. So you cache the static 80% and edge-side include the products. Then suppose someone is logged in and browsing - so you serve the static cached pages with a bit of jquery to just populate a div with a simple request to keep track of the users basket contents.
OK, in my case, I spent nearly 2 full days tuning the hell out of it, but I was fairly new to server admin but I learnt a LOT from it :)
It's just a time vs money thing, really.