I'm looking into using Google Blobstore with the Image Service, and possibly Google App Engine for a service I'm building. However, 12¢ per GB outgoing bandwidth is a little pricy. I noticed they have a CDN service with much cheaper bandwidth costs, but I haven't been able to figure how or even if it is possible to use the CDN service on top of the Blobstore and Image Service. Is anyone able to shed some light on this for me?
As per the documentation found here, the Cloud CDN content delivery network works with Google Compute Engine HTTP(S) load balancing and as stated here, replaces the network egress charges that apply when serving directly from a Compute Engine instance. Therefore, in order to benefit from this feature, you would need to create and manage a GCE instance with additional costs as detailed in this link. Moreover, the Images API is part of the App Engine Platform and would additionally require its own App Engine instance connected to your GCE instance.
A possible solution for your initial setup would be to use a Google App Engine instance with the Images API, but instead of Blobstore(As recommended by Google) with Cloud Storage buckets located closer to your users. As an example, the setup would work as follows:
- Via the App Engine application, modify an image directly from a Cloud Storage bucket with the Images API (More info can be found here).
- In order to save costs, transfer the modified image to a Cloud Storage bucket located closer to your recipients (Pricing info about Network(Ingress) and regional data transfer can be found here).
- Send to your recipients the public URL of the modified image from the Cloud Storage bucket so they can access it.