You can buy a domain anywhere.
Just search for it on Google and hundreds of domain name options will pop up.
Personally, I prefer to have my domain and hosting with the same company but there is another school of thought out there that says differently. For me, we choose Siteground for our hosting because of its customer service and pricing as well as access to everything we need when we need it.
The average price of a domain will be about $15 a year and if you find it cheaper, it’s usually only for the first year (we could be wrong though). Make sure to put your domain subscription on auto-renewal because if you don’t, and you miss the email about renewing your site, your site will be lost.
The average hosting for one of two sites should be able 10-15 dollars a month.