É isso que eu estou falando, você está estimando 70 usuários “por minuto”, mas isso não é uma estimativa real, você não vai ter um usuário chegando, fazendo uma requisição e depis entrando outro usuári. Você vai ter diversos usuários acessando ao mesmo tempo e é isso que você deve medir.
Quantos usuários você quer ser capaz de responder de forma concorrente? 10? 100? 1000?
E em quanto tempo você quer tratar todas essas requisições? Quer responder 100 por segundo? 1000 por segundo?
Quais são as páginas mais críticas? Você mantém muidos dados na sessão ou a aplicação é “stateless” (se ela for stateless a maior parte do seus problemas de performance estariam resolvidos)?
Mais uma vez, não dá pra dizer que “vai aguentar um milhão”, você tem definir uma meta e tentar chegar a ela, não tem muito pra onde correr não, cada aplicação é um mundo.
Outra coisa, se a sua aplicação for só web, não tiver nada que só possa ser feito com um servidor de aplicação, prefira um servidor mais leve como o Jetty em vez do Tomcat, ele ocupa bem menos memória e é bem mais rápido. Também é interessante, dependendo de o que seja o seu site, usar uma CDN (content delivery network) pra recursos estáticos, como arquivos de CSS, imagens, js e essas coisas que não mudam com muita frequência, assim você tira esse peso dos seus servidores.
Eu tenho usado o S3 da amazon pra isso a algum tempo e não tenho reclamações.