Th short answer is, it is up to you, we don't know how much traffic you expect, how much resilience you need, how secure it needs to be etc.
As a short list you need:
- A server, almost certainly a windows server running IIS - this will need some kind of static IP, or way of pointing the hostname at the machine.
- A server running SQL server - this can be the machine running IIS, but then you will need to really make sure the DB is secured, it might be easier to use a separate machine and restrict the incoming IPs to your host server - assuming you are willing to live with that level of security
- A domain name pointed at the IIS server, though you can use the IP until you've sorted that out.
- Possibly - it's been a long time since I've done this on a windows box, a security certificate so you can set up HTTPS
You might want to look at AWS, though it costs money any the fees depend on what you are running and how busy the system gets. If you can get a static IP from your ISP, you could hook up any spare machine to use it - this is the simplest route but relies on the static IP.
TBH this is likely to be a fairly lengthy process especially if you haven't done it before, so take "baby steps" and as more frequent, smaller questions about specific problems. I'd start by at least getting an IIS server up with the website on (probably looking at the local database).
A good learning experience though, once you've done it the first time it gets easier.