Option 1:
Take a look at AWS Amplfiy as it might manage everything for you in Option 2 and super easy to get started. I use this for several website. Usually only takes minutes to get working if you already have an AWS account.
In short, from the AWS Console you can connect your app from GitHub, BitBucket, GitLab, and AWS CodeCommit. It usually will auto detect the type of project you have.
Amplify will create a managed S3 bucket and setup CloudFront you. It also registers a webwook with GIT so whenever you commit on a specific branch will rebuild and publish your site. You can even have multiple branch so www.acme.com -> master and working.acme.com -> branch
Option 2:
S3 <--- CloudFront <-- Lambda@Edge <-- Browser
EC2 <--|
- Store you file in S3
- Use CloudFront (Content Delivery Network)
- Create a Lambda@Edge to handle your routing.
Then in the future you can an EC2 server.
Look at the answer for the Lambda@Edge Multiple Cloudfront Origins with Behavior Path Redirection