Manaelとは

Manael は、オンザフライで画像処理を行うオープンソースの高性能な HTTP プロキシサーバーです。

最新のWeb開発において、最適化された画像を配信することは、ページ表示速度の向上や帯域幅コストの削減、SEOスコアの改善において不可欠です。しかし、デバイスに合わせた複数のサイズや、WebP・AVIFといった次世代フォーマットの画像をすべて事前に生成し保存しておくことは、ストレージ容量の無駄遣いとなり、アセット管理を複雑にします。

Manael は、リクエスト時にリアルタイムで画像を処理することでこの問題を解決します。

主な特徴

  • オンザフライ最適化: リクエストが来た瞬間に、オリジナルの画像(JPEGやPNGなど)を WebP や AVIF などの軽量な次世代フォーマットへ動的に変換します。
  • スマートなコンテントネゴシエーション: クライアントからのHTTPリクエストに含まれる Accept ヘッダーを解析し、ブラウザが対応している最適なフォーマットを自動的に判断して配信します。古いブラウザには元のフォーマットをそのまま返すため、互換性の心配もありません。
  • ステートレスな設計: Manael 自身は画像を一切保存・キャッシュしません。純粋な処理レイヤーとして機能するため極めて軽量であり、Kubernetes や Cloud Run などのコンテナ環境で簡単に水平スケールさせることができます。

アーキテクチャ

Manael は、オリジンストレージとキャッシュサーバーの間に透過的に配置されるよう設計されています。

最も推奨される構成は、Amazon S3 などのオリジンストレージの手前に Manael を配置し、さらにその手前に CDN(コンテンツ配信ネットワーク)を置くアーキテクチャです。

[クライアント] --> [CDN] --> [Manael プロキシ] --> [オリジンストレージ]

ユーザーが画像をリクエストした際、CDN にキャッシュがなければ Manael にリクエストが渡ります。Manael はオリジンから元画像を取得して最適化処理を行い、レスポンスを返します。CDN はその最適化された画像をキャッシュするため、以降のリクエストは CDN から高速に配信されます。