You have a number of options, but what's best depends on your requirements, but you haven't given enough detail to recommend one option over another. I probably haven't covered every option.
NFS Server
You can set up an NFS server on an EC2 instance. This uses an EBS volume and shares it over NFS. There will be plenty of tutorials online to do this (one, two).
Use S3 Natively
Depending on your requirements you may be able to use S3 natively, calling the S3 API, or even using aws s3 sync via cron.
RSync
You could consider rsync from a master server, a little t2.nano would probably be plenty for that kind of thing.
S3FS
Another option is to use S3FS, which makes an S3 bucket look like a file system. You can use an S3 Endpoint to prevent the data going over the public internet.
You'd want to do some reading to learn about reliability and some careful testing before you did this. My understanding is if your S3 bucket is in the same region as your EC2 instance you don't pay traffic charges, but I may be wrong and this can change at any time. The S3 pricing page says "Transfers between S3 buckets or from S3 to any service(s) within the same region are free" - I assume EC2 is counted as a service.
The information I've read suggests that this is likely to be a reasonably reliable option, but you need to test the S3FS release carefully.