We have a web (Rails) application where a small number of somewhat large (1 - 10MB) business logic files can be uploaded by administrators. The content files will not change frequently, maybe once a week.
When users interact with the application, another backend (Java) EC2 instance will frequently (multiple times per minute) have to process the contents of the same (single) file.
I am considering using an S3 bucket to store the files, and to use the AWS SDK to retrieve the files.
The goal is to make the application perform well and to prevent reading the file content over and over again. It is acceptable if changes to a file is not immediately visible, though this would be nice.
Is pure S3 the right approach here? Should I implement caching in Java myself, preventing an S3 request? Or is there another AWS approach that should be leveraged here?