I have a S3 bucket used as a repo. I see that everyday the backups add new data. I don't know if older files on that bucket are used (some or all, I don't know) each time new ones are added, but if they are not it is possible to creare a rule that moves older files to a different storage tier, for example STANDARD_IA. This is a tier where you pay a lot less more for keeping files that you do not access on a regular basis. In this way you can obtain big savings on the AWS bill.
Also using other providers can be useful since it is API compatible with S3 but prices are way lower than AWS.
The global aim is to keep offsite backup as cheap as possible, when you start having lots of TB to keep.