Как вариант, использовать S3-совместимое хранилище в ближайшем регионе. Для сокращения количества обращений к нему использовать локальный кэш самых часто-запрашиваемых изображений.
В Memcached/Redis устанавливать время истечения, скажем 1 час и держать не более X локально. Если имя/путь файла присутствует в кэше - брать из локального файлового хранилища, иначе - загрузить с удаленного.
Правильно подобранный локальный кэш сэкономит использование S3 хранилища.
Кроме прочего, стоит выбрать хранилище, где уровень доступности сервиса не самый высокий.
Добавлено
Нашел
https://github.com/rhelmer/caching-s3-proxy