We're making a social media app using amplify and are newbies to aws. The services we're using include s3, auth, hosting, analytics, api and lambda functions. We've already accrued significant data transfer usage and I'm guessing it's from repeatedly grabbing images from S3.
Does Storage.get()
which generates a presigned URL count as "data transfer out"
Or does it only count when we actually view the file from the URL?
Is there a difference in data transfer between generating a URL and downloading the actual file with Storage.get?
Major costs associated with S3 :
Storage cost : charged per GB / month. ~ $0.03 / GB / month, charged hourly
API cost for operation of files : ~$0.005 / 10000 read requests, write requests are 10 times more expensive
Data transfer outside of AWS region : ~$0.02 / GB to different AWS region, ~$0.06 / GB to the internet.
Based on volume and region the actual prices differs a bit, but optimization techniques stay the same. I will use the above prices in following cost estimates
Note : Leverage AWS Pricing Calculator as much as you can to save cost. It lets you estimate the cost for your architecture solution.