I know that I can host a static website on S3, but can this be done with AWS EFS? Is it even recommended?
EFS is Elastic File System. Basically EFS is a volume that can be attached to multiple instances and very helpful in case of autoscaling.
But basic function of EFS is volume, so off course you can host a website on a EC2 instance using EFS as the volume. The issue is with pricing as EFS is costlier then EBS.
And also hosting a static website on S3 is easy as you have to just upload the files to the bucket. In case of EFS you will need a EC2 instance and then you will mount the EFS to the EC2 instance and then setup the web server for the website and then serve the website. So it is too much work for hosting a static website using EFS.
So I will recommend S3.