- Google Cloud StorageとCloud Runを使用したCDN活用 - 2
- Google Cloud StorageとCloud Runを活用してCDNを構築する方法に関する2番目の記事です。画像とテキストファイルを最適化して送信し、世界8つのリージョンにリソースを配信してレイテンシを削減する方法について説明します。
AIが翻訳した投稿です。
durumis AIが要約した投稿
- Google Cloud Storageにアップロードされた画像ファイルを、Cloud Runを使用して最適化し、さまざまなフォーマットに変換する方法について説明します。
- Cloud Storageのファイルアップロード、削除イベントを活用して、画像ファイルはAVIF、WebPに変換し、テキストファイルは圧縮して他のリージョンに複製および削除を同期します。
- これにより、CDN環境における画像最適化とファイル同期を効率的に管理し、Google Cloud Load Balancerを活用した今後の内容を予告します。
前の記事では、GCSに同期された画像ファイルをCloud Runを使って配信する部分について説明しました。
では、CDNシリーズの最後として、GCSの同期と画像の最適化についてお話します。
Cloud Runは基本的にHTTPフックで動作しますが、それが唯一のイベントトリガーではありません。
Cloud Run
Cloud Runの設定を見ると、Triggerという部分があり、そこにあるリストにはPub/Sub、Cloud Storage、Filestore、その他があります。デフォルトで提供されているHTTPを除いて、残りは最もよく使われる製品であり、その他には、考えられるほとんどのイベントが含まれています。まずはCloud Storageイベントを選択して見てみると、ファイルの変更時、ファイルが削除されたとき、ファイルが作成されたとき、ファイルのメタデータが変更されたときなど、イベントの種類があります。
Cloud Run Eventarc
ここで、deletedとfinalizedの2つのイベントを使ってCloud Runを作成すると、GCSにファイルがアップロードされた場合や、アップロードされたファイルが削除された場合のイベントを作成します。
Cloud Runで処理する必要がある内容は、大きく分けて以下の通りです。
- ファイルがアップロードされると、そのファイルの種類を確認し、以下の処理を行います。
- テキストファイル(css、js)の場合は、br、gzipで圧縮してファイルを作成します。
- 画像ファイルの場合は、sharp npmを使って、avif、webpに変換したフォーマットを作成します。
- 新しく作成されたファイルは、指定された他の複数の「リージョン」にもファイルを複製します。
- ファイル削除要求時には、他のリージョンにある該当ファイルも一緒に削除します。
基本的に上記3点(変換、複製、削除)さえ適切に処理すれば、リージョンが複数あっても、ファイルの同期はそれほど難しくありません。コードにおいても、GCSに接続する部分とsharpを使う2つのnpmを使うだけで簡単に処理できます。
このように、CDNに関する基本的な投稿シリーズを終了しました。
次回の投稿からは、GCLB(Google Cloud Loadbalancer)について取り上げていく予定です。
基本的にCDNの話は、ロードバランサー(LB)を取り扱う必要がありますが、内容的に省略されている部分が多いので、次回の投稿からシリーズで取り上げていく予定です。
ありがとうございました。