AWS have free tier for limited usage (maybe if you need it just for testing), Other then that if we are talking about production site then AWS costs you for what you use. You will need to understand how much CPU power, ram, storage space you need. AWS have different options for storage as well. At the end it will cost you for what you use, and amazon will ask you to add credit card in your account for billing incase you go beyond the free plan they will start adding expenses to your account and at the end of month they will charge you for what you have used such as up-time of server instance selected (price varies for types of instances), storage space used , bandwidth for outgoing and incoming. AWS does not provide an ticket support for it's basic support system, you will need to purchase an premium support from them if you need any technical help from them. If you know what you are doing with server then you are good to go (watch out the prices), you can calculate the monthly price you are going to pay from this calculator by amazon calculator.s3.amazonaws.com/index.html, it will give you an estimation of what you will be paying for the services you use with AWS.
Digital Ocean do have different types of servers with cheap priced servers as well , which starts from $5 a month from the cheapest one (hashnode is hosted on digital ocean) and price goes up as per your need for type of server you need. Digital ocean provides very clear information regarding Pricing and type of servers based on price which you can see right here: digitalocean.com/pricing .
All of the above are self managed servers, so you need to know how to work with servers (centos, ubuntu, debian).