Yeah, I run even somewhat larger DBs (largest is 4 gig one) on a simple P4/1GB box which also runs Apache/PHP.
But everything really depends on your usage patterns. If your queries are not properly optimized, things may be very slow on any server.
Anyway, 2GBs of RAM is enough cause MySQL will be able to always keep the whole DB cached in memory.
That's not possible unless most of connections are idle. If you need to serve such a high load, you'll have to serialize some queries, MySQL Connector for Java has such capabilities (for PHP you can achieve the same effect by running a limited number of FastCGI servers, and backlogging all pending requests).