Sometimes, I work with people that manage a lot of websites.
It always struck me to see whenever a person loses access to a domain name or a web hosting.
What does the domain cost? Generally, around $10/year.
Hosting? It largely depends, but typically around $30-50/year, for a small website.
You may also have some costs with SSL (a few dollars).
Compare the costs listed above with the immense drawback of having the hosting suspended or, much worse, losing access to a domain name.
For my own websites, I typically buy the domain name not just for a year, but for multiple years. Same with hosting and other services.
The benefits (peace of mind of not having to be online when the email from the hosting/domain registrar comes) far outweigh the downside (small costs).
Also, sometimes I even set Google Calendar events for situations like these.
Another reason to buy for multiple years – renewing a domain name/web hosting service generally takes a few minutes. If you’re not an advanced Internet user, it might take more than that. Generally, the opportunity cost of the time spent buying a domain name/web hosting is much higher – so, you should focus on saving time, and buying for multiple years at once, if you earn well enough.