Hello Howard Miller,
From my experience, and from a lot of other Moodle administrators that uses AWS, this is the only way to handle a cluster of Moodle instances that must have a shared storage for a shared moodledata folder. there is no way around it.
Do not use FUSE with S3 (which is an object storage) as it is not stable enough for moodledata, which is also not a block storage in essence.
If you have a relatively small and single Moodle instance, you should obviously put the moodledata on a local EBS, but then, you are not really enjoying the benefits of AWS and its managed services. You might better off using some other low cost hosting service. (you can checkout bitnami.com for ready made Moodle instances)
Using cache is somewhat a separate issue, and of course you must use it too.
In case of using a shared EFS, I do not recommend you use moodledata for MUC cache. You should use REDIS.
Make sure $CFG->cachedir has as little files in it as possible. just the configuration files. it must be on a shared EFS when using a Moodle cluster.
Make sure $CFG->localcachedir is using a local EBS volume on you EC2 Moodle instance.
We use REDIS for user session cache and also for MUC (application & session) cache. in AWS it is called ElastiCache.
REDIS is much more mature, stable and featureful comparing to memcached, and I recommend you use it.
And obviously, OPCache for PHP, and make sure you tune it from time to time.
EFS can be provisioned, to get higher performance, but it will cost you!