Well it depends on the type of website you want to host.
- Static website: for this, you could use a s3 bucket to host your html files and add a cloudfront distribution in front of it to speed it up. You would need to point your domain A record to the s3 bucket and you would need to use the url generated by the cloudfront as the prefix to the content you have. Check this link to know how to do it. How Do I Configure an S3 Bucket for Static Website Hosting?
- Dynamic website: for this, it depends, there are 2 options as of now. You have an elastic beanstalk and elastic compute cloud(EC2). Lets discuss both of them
- Elastic Compute Cloud: EC2 is basically a server available to you. We call it instances. There are many types of instances based on your hosting requirement and the costs vary accordingly. You can check the instance types from this link EC2 Instance Types – Amazon Web Services (AWS)
- . Once you get the instance type, you log into the server using ssh and can configure it accordingly. You would need to configure your domain A records and point it to the instance’s IP. For database server, i would recommend Amazon RDS. You would need to setup LAMP stack or whatever you need to install your application over the instance. For your dynamic website you could choose s3 and cloudfront to hook up ur resources and improve website performance the same way as we discussed above.
- Elastic Beanstalk: if you dont want to spend time configuring your server and hit the ground running, you should go for elastic beanstalk. Refer this guide Deploying a Web App Using Elastic Beanstalk
- . Elastic beanstalk is a scalable service by amazon. It runs over EC2, so the charges for the usage is same as ec2. You just need to configure your environment over elastic beanstalk and upload the zip file. That will setup the application.
Hope that helps.