[Java] Hostowanie aplikacji

Problem jest następujący:

mam 2 dość rozbudowane aplikacje: serwer i klient, któe komunikują się ze sobą za pomocą TCP. Jak dotąd testowałem je tylko w jednej podsieci, więc nie było żadnych problemów, kiedy klientowi podawałem IP serwera, lub nazwę komputera na którym serwer jest uruchomiony. W każdym razie chiałem wrzucić moją aplikację serwerową na jakiś zewnętrzny serwer, żeby była ona dostępna zawsze i wszędzie. Tylko jak? Czy muszę to jakoś specjalnie przystosowywać, żeby to odpalać na tomcacie, czy może istnieje jakiś inny sposób? Tak na dobrą sprawę potrzebny by mi był po prostu hosting posiadający jakiś zewnętrzny adres, co najmniej jeden port i ogarniający JRE. Jakieś pomysły gdzie tego szukać?

Google App Engine?