Why am I being charged by Cloud Storage on the free tier?

I'm using the App Engine to develop an app, no deployment to production yet only a few build of a very basic python backend and light frontend. I deploy the app in us-east-01 region, one of the three region availables for Cloud Storage for its free tier use. But for some reason I get billed for the use of Cloud Storage in this project for $0.01. The SKU description is "Networking Traffic Egress GCP Replication within Northern America" and the cost of use $0.01.

Accordingly to the docs Cloud Storage I shouldnt be charged, so What I'm missing here? Will I be charged for a cloud storage use for the deployed app? If I don't use Cloud Storage for anything else, Should expect any other charge?  

I expect to maintain the app only in a free tier, once deploy to production the use will be minimun. I really don't want to encounter another unexpected charge.

I verified the billing dashboard, I'm only getting billed by Cloud Storage in the same project of App Engine. I verified the region I chose to deploy the app in app engine, is us-east-01.

1 6 1,782
6 REPLIES 6

Hi, Juan.  Thank you for the question. It looks like these charges are for replication of data between regions in a multi-regional or dual-region bucket. When you use buckets in these kinds of locations, data is replicated among regions. This kind of egress is not currently included in the free tier.  To keep your app free, use a single region bucket.  

Kir

Thanks you for your quick answer. How can I set a single region bucket?. And there is something more that I don't understand, Was I charged for storing the app files or sending data to an end user (me while testing the app)? Because if I'll be charged only for the deployment of the app (using gcloud app deploy) and it's only $0.01 or so, no problem, but if I will be charged for one user using the app from Argentina I do have a problem in this case, and I should try something else. 

Looking into this. Thanks for your patience.

What I believe if happening is that you are charged for storing the application files -- or replication --  not for user traffic. This is because the default bucket is multi-regional and every time you upload a new version of the app, the files are effectively replicated between two zones.  This charge has only recently came into effect (https://cloud.google.com/storage/pricing-announce). 

To solve this, we need to move your app engine default bucket to a single-region one.  I haven't found a straightforward way of doing this, but I haven't searched hard.  One way to do this would be to copy your app engine default bucket contents to a temp bucket, make note of all the permissions / ACLs set on that bucket, delete it, create a new single-region bucket with the same name and grant all the same permissions to that bucket.  This worth a test first since it might be that there are special rules that prevent you from creating buckets with names expected from internal apps.  My hope is that App Engine has a way to configure the default bucket to point to something else instead.  I'll look into this deeper if I have the time, but if anyone else watching can offer input -- please do 🙂

Hi Kir.

Thanks for the pointers. Here are the things I have found.

  • I created App Engine in Asia South and default + staging buckets were made single region automatically. Which is good.
  • But the artifacts bucket created during app deploy is still "multi-region".
  • I cannot delete or recreate the bucket myself as creating buckets with domain name need domain ownership, and we don't own appspot.com.
  • At the end of the day, I'm being charged even higher for replication within Asia.
  • I tried deleting the artifacts bucket instantly after app deployment, but replication charges were still posted. (0.5GB artifacts for deploying a 10 line python app) 🤕

At this point, I'm simply frustrated and disgusted with this loophole. I need to try more radical approaches. Let's see if I can find a workaround.

Hi @anandabibek , did you find a fix for this?