詳説 LightFile Proxy (8) その他の細かな特徴

ひとつのLightFile Proxyクラスタで複数のサイトをカバーする仕組み、プライベートなS3バケットをオリジンにする場合の認証、そして稼働状況と使用量が見えるレポート機能をまとめて解説する。x-routingヘッダによる振り分け、オリジンの評価順、Hostの付け替え、クロスアカウントアクセスによるS3の読み取りまで。

writer K. Miyanagadate 2026.10.02 (Fri)read 5分cat 画像軽量化, インフラ

この連載ではここまで、LightFile Proxyの主要な機能について説明を展開してきた。本記事ではそれら以外の細かな特徴についてまとめて解説をしたい。ひとつのLightFile Proxyクラスタで複数のサイトをカバーする仕組み、プライベートなS3バケットをオリジンにする場合の認証、レポート機能を解説する。


ひとつのクラスタで複数のサイトをカバーする仕組み ​

LightFile Proxyは、ノードの数によって伸縮できるクラスタを単位に提供している。画像フォーマットの変換に必要な能力はサイトによって大小があるが、クラスタ構成をとっているので性能を柔軟に調整できる。

このクラスタは、ひとつのサイトにひとつずつ用意するものではない。ひとつのクラスタで複数のサイトをカバーすることもできる。

ではどのようにひとつのクラスタへ複数サイトを同居させるのか。CloudFrontからLightFile Proxyに接続する際、x-routingというサイト識別用のカスタムヘッダを付けることを慣習としている。

x-routing: site-a
x-routing: site-b

このようにCloudFrontのディストリビューションから識別子が渡されてくる。LightFile Proxyでは複数のオリジンを設定でき、どのオリジンを参照するかをこの識別子によって切り替えている。

複数サイトの振り分けを示す構成図。サイトAとサイトBのCloudFrontがそれぞれx-routingヘッダを付けて1つのLightFile Proxyへ転送し、LightFile ProxyがオリジンAの既存WebサーバーとオリジンBのS3バケットへ取りに行く

値の照合は完全一致が基本で、正規表現も使える。x-routingではなくhostを見ている設定もある。

ヘッダだけでなくパスの前方一致も条件にできる。同じサイトの中で、/products/はこのサーバー、/static/はこのバケット、という分け方もできるようになっている。

Hostの付け替えも可能 ​

オリジンの設定には、取りに行くURLとは別にオリジンへ送るHostヘッダを指定できる。

画像の実体がホスティング事業者のサーバーやALBにあって、lb-1234.ap-northeast-1.elb.amazonaws.comのような名前で公開されていることがある。そうしたサーバーは公開ドメインのHostで来たリクエストしか正しく扱えないので、URLはALBの名前、Hostは公開ドメイン、という組み合わせで取りに行く。指定したHostはTLSのSNIと証明書の検証にも使う。

http://のままのオリジンも指定できる。

Basic認証のかかったオリジン ​

公開前のサイトやステージング環境のように、Basic認証で保護されたオリジンにも対応している。ユーザー名とパスワードを設定に入れておくと、取りに行くとき付けて送る。

パスワードは公開鍵で暗号化して保管し、復号できるのはクラスタのノードだけになる。

ひとつのクラスタに何サイトまで載せられるか ​

性能の範囲で、という条件付きになる。目安になる実績を並べておく。

  • 最大のクラスタは48オリジン(48サイト)
  • 10ノード構成で1時間あたり約100万〜140万リクエストを捌いた実績

サイトごとにクラスタを分ける必要はないが、画像の量やアクセスの傾向が極端に違うサイトを同居させると、片方の変換がもう片方を待たせることはある。新しいサイトを足すときは、その点を見て判断している。

プライベートなS3バケットもオリジンにできる ​

画像がS3にあるなら、バケットを直接オリジンにできる。パブリックアクセスを開けていないバケットでも、S3のAPI経由なら取りに行ける。 認証の方法は2つある。

クロスアカウントアクセス。 バケットポリシーに、弊社のIAMユーザーからのs3:GetObjectを許可する一文を足してもらう。お客様側でIAMユーザーを作る必要も、認証情報を弊社に預ける必要もない。こちらを勧めている。

IAM認証情報の登録。 バケットポリシーを触れない事情があるときは、お客様が用意したIAMユーザーのアクセスキーを登録してもらう形も選べる。シークレットアクセスキーはブラウザ上で公開鍵暗号により暗号化され、そのまま保管される。

ただし、同じ画像がWebサーバー経由でも取れるなら、そちらを勧めている。S3のAPIは呼ぶたびに署名が要りTLSも必須になるが、公開のWebアクセスならどちらも要らない。応答が速く、オリジン側の負荷も軽い。

稼働状況を見る統計レポート ​

LightFile Proxyには、稼働状況を見るダッシュボードが付いている。

統計レポートの画面。Webサーバーのリクエスト数をキャッシュ処理別に積み上げた棒グラフが表示され、WebP非対応ブラウザ・WebPキャッシュ未作成・WebP有効キャッシュ返却・WebPキャッシュ延長に色分けされている

グラフは4種類あり、それぞれ指標と、それを分けるグループを選べる。

Webサーバー CloudFrontから届くリクエストについて。

  • 指標 — リクエスト数/合計送信バイト数/平均応答時間/最大応答時間
  • グループ — オリジン/キャッシュ処理/ステータスコード

フォーマット変換 JPEG・PNG・GIFからWebPへの変換について。

  • 指標 — 変換数/変換前の合計サイズ/変換後の合計サイズ/平均処理時間/圧縮率
  • グループ — オリジンURL/変換前後のフォーマットの組み合わせ/エラー種別

変換待ち 変換のタスクがどれだけ滞留しているか。

ロードアベレージ ノードの負荷。

  • 指標 — 1分/5分/15分の平均と最大
  • グループ — ロール(Webサーバー/タスクワーカー)/ノード

期間は1時間(1分ごと)・3日(1時間ごと)・90日(1日ごと)から選ぶ。折れ線と棒、積み上げの有無も切り替えられる。

ユーザーは契約したLightFile Proxyがどのくらい稼働しているか、画像データをどのくらい削減できているかをいつでも詳細に確認できる。

使用量をオリジンごとに見る月次レポート ​

日々のグラフとは別に、オリジンごとの月間使用量を並べた画面がある。

月次レポートの画面。月ごとにオリジンが並び、それぞれのリクエスト数と転送データ量、前月比の増減が表示されている

オリジン単位でリクエスト数と転送データ量が出て、月内の割合と前月比のペースを切り替えて見られる。

この画面は代理店やシステムベンダーとして再販するときのためにある。どのオリジン(サイト)でどのくらい負荷が生じているかを月次で押さえられるので、預かっているサイトごとの使用量が分かる。予定していた量から大きくずれていないかの確認にも使える。