The answer really is, as usual, "It depends". On a wide variety of factors. You haven't given us a lot of information to go on. For example:
Who will use the apps? Is it personal usage only, some limited set of potential users such as a scheduling tool for your local little league field, or open to the national/international public?
What does a single user interaction look like? Do you expect a visitor to stay at your site extensively such as for a game, run a search or two and disappear after a minute?
Do you require other services such as RDBMS or mail or ...?
One option is to buy managed hosting; someone takes care of all the administration, security, OS updates, etc. and you write your apps and get on with your thing. The advantage of this is that there is less that you'll need to learn and deal with before you can get going and if you can make your requirements fit into their offerings, it's much lower overhead, allowing you to concentrate on whatever you are trying to achieve.
On the other hand, you'll be bound by their restrictions in terms of what software is installed and so on; if you need something they don't offer, or a newer version of a tool, you have to wait or put up with it.
Another option is to run your own machine, probably a VPS. The downside is you're on your own, you have to set it up and you have to maintain it, with all the complexity to learn and the effort that it takes to keep a machine safe on the big, bad, public Internet. The upside is that you can do whatever you want and you have as much flexibility as you need. There are VPS providers who will let you start small and (almost?) transparently let you upgrade if you need more resources.
Deployment planning is complex and you need to think about what you're trying to do if you expect to be able to have a reasonable idea of what you need in advance.
However, there is an alternative attitude that can work well for many people: Don't expect to have a reasonable idea of what you need in advance. Plan for change. Make your apps dead easy to deploy, ensure that your webservices/code/database services/data can be deployed onto a new machine trivially and then it won't matter if your host isn't powerful enough. When you need to, it will be easy to move.