エッジコンピューティング
ユーザーに近いエッジロケーションでコードを実行し、レイテンシを削減する技術
インフラパフォーマンス
エッジコンピューティングとは
エッジコンピューティングは、ユーザーに近いエッジロケーション (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 を優先する。
エッジコンピューティングについては関連書籍でも詳しく扱われている。