the question as what technology to use needs more input and study.there are a few hints though, - The most important point that I can see in your email is that you are looking for some long term solution and the fact that users of your system will grow enormously overtime.You need to answer a few questions to clear more things.
i ) Is security important for your system?
ii) Do you need transaction based conversations within the system? are they flat or nested? clearly you have DB stuff, so transactions are needs at some stage.
This might get a bit tricky if the answer to the above questions is "NO". I mean in that case you don't need to use EJBs much as if no transaction / security is needed, EJBs will only over kill the system.other questions would be:
iii) do you have much concurrent access to shared data? NO? do not use entity instances. try to use DAO instead for performace purpose
iv) is there user session management involved? and how?
if your system is simple enough and only it needs to handle so many users, you might get benefit of using some web server tech i,e jsp / servlets / web services with DAO to interact with DB. in this way you can also support possible transactions.
For increasing volume of traffic and user access, you might start thinking of an architecture that can scale well over time to multiple web servers. if you are looking for an answer as what persistence methodology to use, no one can answer that for you. these things are keep changing all I can say is to keep it flexible. in fact it is not that much important now.
I have seen projects that where tightly coupled with a piece of tech, and later on they went through huge cost to replace it or introduce new stuff.