translation

AIが翻訳した投稿です。

두루미스 기술 블로그

Google Cloud StorageとCloud Runを活用した画像最適化と同期 - 3

プロフィール画像

durumis AIが要約した投稿

  • Google Cloud Storageにアップロードされた画像ファイルを、Cloud Runを使用して最適化し、さまざまなフォーマットに変換する方法について説明します。
  • Cloud Storageのファイルアップロード、削除イベントを活用して、画像ファイルはAVIF、WebPに変換し、テキストファイルは圧縮して他のリージョンに複製および削除を同期します。
  • これにより、CDN環境における画像最適化とファイル同期を効率的に管理し、Google Cloud Load Balancerを活用した今後の内容を予告します。

前の記事では、GCSに同期された画像ファイルをCloud Runを使って配信する部分について説明しました。


では、CDNシリーズの最後として、GCSの同期と画像の最適化についてお話します。

Cloud Runは基本的にHTTPフックで動作しますが、それが唯一のイベントトリガーではありません。

Google Cloud StorageとCloud Runを活用した画像最適化と同期 - 3

Cloud Run

Cloud Runの設定を見ると、Triggerという部分があり、そこにあるリストにはPub/Sub、Cloud Storage、Filestore、その他があります。デフォルトで提供されているHTTPを除いて、残りは最もよく使われる製品であり、その他には、考えられるほとんどのイベントが含まれています。まずはCloud Storageイベントを選択して見てみると、ファイルの変更時、ファイルが削除されたとき、ファイルが作成されたとき、ファイルのメタデータが変更されたときなど、イベントの種類があります。

Google Cloud StorageとCloud Runを活用した画像最適化と同期 - 3

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)を取り扱う必要がありますが、内容的に省略されている部分が多いので、次回の投稿からシリーズで取り上げていく予定です。

ありがとうございました。






dev-team
두루미스 기술 블로그
dev-team
Google Cloud StorageとCloud Runを使用したCDN活用 - 2Google Cloud StorageとCloud Runを活用してCDNを構築する方法に関する2番目の記事です。画像とテキストファイルを最適化して送信し、世界8つのリージョンにリソースを配信してレイテンシを削減する方法について説明します。

2024年9月6日

Cloud Runを活用した静的ファイルの提供 - 1Google Cloud Runを使用して静的ファイルを提供する方法に関するブログ記事です。リダイレクトとパフォーマンスの向上に重点を置いています。

2024年9月4日

ドゥルミス技術ブログ:開発の旅の始まり 🚀ドゥルミス技術ブログでは、Google Cloudベースのグローバルプラットフォーム開発経験とノウハウを共有します。画像管理、グローバルサービス、SEO、AIなど、さまざまな技術テーマを取り上げます。

2024年9月4日

[非エンジニア、開発者として生き残る] 14. 新規開発者のよくある技術面接内容要約新規開発者の面接でよく出る技術的な質問(メモリ領域、データ構造、データベースなど)を要約してまとめました。開発面接の準備に役立ててください。
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

2024年4月3日

ドゥルミス開発記 - 2編:インフラストラクチャドゥルミスはGCPを活用して世界7つのリージョンにサービスを提供し、ユーザーに高速で安定した読書環境を提供します。
해리슨 블로그
해리슨 블로그
해리슨 블로그
해리슨 블로그

2024年1月25日

SupabaseとFCMを使用してリアルタイムプッシュ通知システムを構築するDeno、Supabase、FCMを活用してリアルタイムプッシュ通知システムを構築する方法をご紹介します。リアルタイムデータベースの変更検知とプッシュ通知送信機能の実装方法を扱います。
Kofsitho
Kofsitho
Kofsitho
Kofsitho

2024年2月8日

[Java] 同期化コレクションと並行コレクションJavaの同期化コレクション(Vector、Hashtable)と並行コレクション(ConcurrentHashMapなど)の違い、およびConcurrent Collectionの種類について説明します。パフォーマンスの改善と同時性の問題解決に役立ちます。
제이온
제이온
제이온
제이온

2024年4月25日

[DB] キャッシュ設定の基準データベースのキャッシュ設定基準と実際の適用事例を紹介します。頻繁に読み書きされる頻度が低いデータにキャッシュを設定し、TTL設定などを通じて最新性を維持する方法を紹介します。
제이온
제이온
제이온
제이온

2024年4月25日

取引明細書無料様式無料の取引明細書様式をGoogleスプレッドシートで提供します。誰でも簡単に修正して使用でき、PDFに変換して出力できます。
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요

2024年3月7日