エッジコンピューティング

ユーザーに近いエッジロケーションでコードを実行し、レイテンシを削減する技術

インフラパフォーマンス

エッジコンピューティングとは

エッジコンピューティングは、ユーザーに近いエッジロケーション (PoP) でコードを実行し、レイテンシを削減する技術である。CloudFront Functions と Lambda@Edge が AWS のエッジコンピューティングサービス。

オリジン vs エッジ

従来 (オリジン処理):
  ユーザー (東京) → CloudFront → Lambda (ap-northeast-1) → レスポンス
  レイテンシ: 50ms

エッジ処理:
  ユーザー (東京) → CloudFront (東京エッジ) → レスポンス
  レイテンシ: 5ms

CloudFront Functions vs Lambda@Edge

観点 CloudFront Functions Lambda@Edge
実行場所 全エッジ (400+) リージョナルエッジ (13)
実行時間 最大 1 ミリ秒 最大 30 秒
メモリ 2 MB 128〜10,240 MB
ネットワーク
料金 $0.10/100 万リクエスト Lambda 料金
用途 ヘッダー操作、リダイレクト 認証、画像変換

CloudFront Functions の例

// URL のリライト: /about → /about.html
function handler(event) {
  const request = event.request;
  const uri = request.uri;
  if (uri.endsWith('/')) {
    request.uri += 'index.html';
  } else if (!uri.includes('.')) {
    request.uri += '.html';
  }
  return request;
}

エッジのユースケース

CloudFront Functions は URL リライト、リダイレクト、A/B テスト、地理的ルーティングなど軽量な処理に適する。Lambda@Edge は JWT 検証による認証や画像最適化など、ネットワークアクセスや長い実行時間が必要な処理に使う。

エッジの制約

CloudFront Functions は実行時間が極めて短く (最大 1 ミリ秒)、ネットワークアクセスもできないため、重い処理はオリジンで実行するか Lambda@Edge を使う。Lambda@Edge はデプロイが遅いため、軽量な処理には CloudFront Functions を優先する。

エッジコンピューティングについては関連書籍でも詳しく扱われている。

関連用語