Is downloading an object from a bucket via public url from a Google instance charged? - google-cloud-storage

I would like to upload images to a bucket, and use a google VM Instance to download the image / edit it on the fly and serve it.
The outgoing traffic from the VM is already paid, do I also have to calculate the bandwidth from google cloud storage to the VM? Or being in the same network is not paid? In the documentation I found "Accessing data in an EU bucket with an EU-WEST1 GKE instance. - Free" does the same also apply to Custom VM instances?

It will mostly depend on the location of your resources.
Downloading an object will necessarily imply a network egress, but since the egress will stay within Google Cloud the cost will be highly reduced (free in most cases) compared to egress costs to an external location.
Basically, the network egress cost will be cheap or free if the GCS bucket and your GCE instance are located in the same continent, and will be priced at standard rates on other cases.
You can find the pricing details on this page, in the "Network egress within Google Cloud" section which lists the various scenarios: https://cloud.google.com/storage/pricing
Note that you will also need to consider the cost of the read operations when downloading the object.

Egress from Cloud Storage into a GCE instance in the same Cloud zone is free, networking-wise. However, you will still be charged any retrieval cost (free for Standard storage, a few cents per gigabyte for nearline, coldline, or archive) and an operation charge ($0.004 per 10,000 read operations). The ingress into a compute engine instance in the same zone is also free.
For more, check out the pricing policy for Cloud Storage and Compute Engine. Keep in mind that this is very general advice and a lot depends on exact details here.

Related

Cloud service recommendation for pdf storage

I'm creating a web app that will contain a lot of pdfs for educational notes.What i have figured is that these pdfs should not be stored in my database i.e mongodb so can anyone recommend a cloud service which is free or cheap that can be used to store a large amount of pdfs for my web application.Considering storage upto 50-60gb. Also, i'm using node and express for my application.
Use an Amazon Web Services S3 Bucket on there Free tier for up to 5GB. Otherwise try Cloud Front:
https://aws.amazon.com/cloudfront/
"As part of the AWS Free Usage Tier, you can get started with Amazon CloudFront for free. Upon sign-up, new AWS customers receive 50 GB Data Transfer Out and 2,000,000 HTTP and HTTPS Requests each month for one year"

Is Google Cloud Storage an automagical global CDN?

I’m attempting to setup a Google Cloud Storage bucket to store and serve all the static objects for my site. I’m also attempting to push all the objects in that bucket out to all the global edge locations offered by Google Cloud CDN.
I’ve created a bucket on Google Cloud Storage: cdn.mysite.com. I chose “US” multi-region for the bucket location setting.
My assumption is that any object stored in this bucket will be replicated to all the us-* regions for high-durability purposes, but not pushed out to all the Google Cloud CDN global edge locations for CDN purposes.
Or are all my objects in my “US” multi-region bucket already automagically pushed out to all of Google Cloud CDN edge locations?
I’m gobsmacked that I can’t figure out whether or not my bucket is already a CDN or not. Even after two days of searching (Google, ironically).
Thanks in advance for any help.
The best discussion I've seen of Cloud Storage edge caching vs. Cloud CDN was during the Google Cloud Next '18 session Best Practices for Storage Classes, Reliability, Performance and Scalability. The entire video is useful, but here's link to the content distribution topic.
One key note from the summary is that edge caching gives you many of the benefits of a CDN, but you still pay for data egress. The Cloud CDN gives you caching, which can lower the cost of egress. They also outlined a couple other options.
Cloud CDN and Cloud Storage are distinct, so objects in your multi-region bucket are not necessarily pushed to Cloud CDN edges. You can find information about Cloud Storage regions here; as you probably already know, Cloud CDN's edge locations are mapped out here. However, it's very straightforward to integrate Cloud Storage with Cloud CDN: just follow these steps!
Oct 2020 - Yes - if you take Google's word for it:
Cloud Storage essentially works as a content delivery network. This
does not require any special configuration because by default any
publicly readable object is cached in the global Cloud Storage
network.
https://cloud.google.com/appengine/docs/standard/java11/serving-static-files
Partly:
Cloud Storage behaves like a Content Delivery Network (CDN) with no work on your part because publicly readable objects are cached in the Cloud Storage network by default.
But:
Feature Cloud Storage Cloud CDN
Max cacheable file size 10 MiB 5 TiB
Default cache expiration 1 hour 1 hour (configurable)
Support custom domains over HTTPS No Yes
Cache invalidation No Yes
In particular, if you serve videos to your users, they are likely to be larger than 10 MiB and will not be cached then.
Also note that it only uses caching for public objects.
https://cloud.google.com/storage/docs/caching

IP Restriction Google Cloud Storage

Is it possible to create a Google Cloud Storage bucket and restrict it's access to one IP? I plan on using a bucket to store data that only I would ever need to upload/download from.
Check out VPC Service Controls. This no cost feature allows you to restrict client access to project resources based on a variety of attributes, including source IP address, and includes support for Cloud Storage buckets.
No, that's not available at this time.

Can I limit my Bluemix utilization and charges?

Imagine I wish to prototype a Bluemix application or simply wish to learn Bluemix. I understand that many of its services have free thresholds before any charges are accrued. Is there a way to set thresholds on my Bluemix account such that I am warned before exceeding free limits? Can I constrain my account such that it will disable services before charges are accrued or otherwise automate the mechanical constraint of my Bluemix utilization?
A potential example of such a need might be for the hobbyist who is self studying but does not want to incur charges or for the programmer who makes a logic error that results in excessive resource consumption or for the user who accidentally neglects to shutdown a resource consuming application after testing.
There are spending limits for paid accounts. According to the documentation, "you can set or edit notifications for total account, runtime, and service spending, as well as spending for individual services, excluding third-party services. You receive notifications when you reach 80%, 90%, and 100% of the spending thresholds you specify."

Precise definition of 'Network egress region' for Google Cloud Storage

The price sheet for Google Cloud storage lists different bandwidth tariffs for outbound traffic to EU/US vs Asia/Pacific.
Do these tariffs apply based on the location settings of the GCS bucket, or do they apply based on the location of the requestor?
I presume the former, but I can't find any definitive documentation.
It seems conceivable that an Asia based user could be directed to a local replica of a US based bucket, for example.
The pricing is based on network traffic destination (in your case, that's the location of the requester), not the GCS bucket location. The documentation is not as clear on this as it should be, but will be updated soon.
Thanks for bringing this to our attention!
Update: Google Cloud Storage network pricing table headers have been updated to include the word "destinations" to clarify this (emphasis mine):
Network (Egress) - Americas and EMEA* Destinations (per GB)
Network (Egress) - Asia-Pacific Destinations (per GB)
Google Cloud Storage pricing for storage itself remains independent of bucket location.