機能比較表
旧Lambda関数と新LightFile Lambdaの機能比較
旧LightFile Lambda関数と新しいLightFile Lambdaの機能を比較します。
対応画像形式
| 形式 | 旧Lambda | 新Lambda |
|---|---|---|
| JPEG (.jpg, .jpeg) | ✅ 対応 | ✅ 対応 |
| PNG (.png) | ✅ 対応 | ✅ 対応 |
| GIF | ❌ 非対応 | ❌ 非対応 |
| WebP | ❌ 非対応 | ❌ 非対応 |
| TIFF | ❌ 非対応 | ❌ 非対応 |
| SVG | ❌ 非対応 | ❌ 非対応 |
画像形式のサポート状況に変更はありません。
基本機能
| 機能 | 旧Lambda | 新Lambda | 変更点 |
|---|---|---|---|
| 自動処理 | ✅ S3アップロード時 | ✅ S3アップロード時 | 変更なし |
| 画質設定 | ✅ 低・中・高 | ✅ 低・中・高 | 変更なし |
| サイズフィルタリング | ✅ MIN_SIZE / MAX_SIZE | ✅ MIN_SIZE / MAX_SIZE | デフォルト値変更 |
| バックアップ | ✅ 別バケットに保存 | ✅ 別バケットに保存 | 変更なし |
| ACL設定 | ✅ UPLOAD_ACL | ✅ ACL | 環境変数名変更 |
| メタデータ保持 | ✅ 自動保持 | ✅ 自動保持 | 変更なし |
サイズフィルタリングのデフォルト値変更
| 項目 | 旧Lambda | 新Lambda | 理由 |
|---|---|---|---|
MIN_SIZE | 5kb | 5kb | 変更なし |
MAX_SIZE | 5mb | 3mb | Lambdaのメモリ制限を考慮 |
MAX_SIZEのデフォルト値が5mbから3mbに変更されました。より大きなファイルを処理したい場合は、環境変数で明示的に設定してください。
アーキテクチャとパフォーマンス
| 項目 | 旧Lambda | 新Lambda | メリット |
|---|---|---|---|
| 対応アーキテクチャ | x86_64のみ | x86_64 / ARM64 (推奨) | ARM64は約20%低コスト |
| 処理速度 | 標準 | 改善 | 最適化されたコード |
| メモリ効率 | 標準 | 改善 | より効率的なメモリ使用 |
新Lambda関数ではARM64アーキテクチャの利用を推奨します。処理性能が向上し、Lambda実行料金が約20%削減されます。
ログとモニタリング
| 機能 | 旧Lambda | 新Lambda | 変更点 |
|---|---|---|---|
| CloudWatch Logs | ✅ 対応 | ✅ 対応 | 変更なし |
| ログレベル設定 | LOGGING (normal/debug)VERBOSE (true/false) | LOG_LEVEL(debug/info/warn/error/fatal) | より細かい制御が可能 |
| 多言語サポート | ❌ 英語のみ | ✅ 英語・日本語 | LANGUAGE環境変数で選択 |
ログレベル制御の改善
旧Lambda:
LOGGING=normal # 通常ログ
LOGGING=debug # デバッグログ
VERBOSE=true # デバッグモード新Lambda:
LOG_LEVEL=info # 通常ログ(推奨)
LOG_LEVEL=debug # 詳細ログ
LOG_LEVEL=warn # 警告以上のみ
LOG_LEVEL=error # エラーのみ
LOG_LEVEL=fatal # 致命的エラーのみ詳細はログレベル設定を参照してください。
ライセンス認証
| 項目 | 旧Lambda | 新Lambda | 変更点 |
|---|---|---|---|
| 認証方式 | シリアルコード | ライセンストークン | 形式が変更 |
| 環境変数 | MySerial (CloudFormation) | MyToken (CloudFormation)LICENSE_TOKEN (環境変数) | 必須 |
| 有効期限 | シリアルコードによる | トークンで管理 期限付きトークンに対応 | より柔軟な管理 |
新Lambda関数ではLICENSE_TOKEN環境変数が必須です。設定されていない場合、Lambda関数は実行されません。
カスタマイズ機能
| 機能 | 旧Lambda | 新Lambda | 代替手段 |
|---|---|---|---|
| カスタムメタデータ | ✅ METADATA環境変数 | ❌ サポート終了 | S3オブジェクトタグ DynamoDB等で管理 |
| SNS通知 | ✅ SNS_TOPIC_ARNSNS_DEFAULT_VALUES | ❌ サポート終了 | CloudWatch Logs Insights EventBridge |
METADATAの代替手段
旧Lambda関数ではMETADATA環境変数で独自のメタデータを追加できましたが、新Lambda関数ではサポート終了となりました。
代替方法:
-
S3オブジェクトタグ - アップロード時にタグを設定
aws s3api put-object-tagging \ --bucket my-bucket \ --key image.jpg \ --tagging 'TagSet=[{Key=category,Value=product}]' -
外部メタデータストア - DynamoDBなどで画像情報を管理
// Lambda関数内で別途DynamoDBに記録 await dynamodb.putItem({ TableName: 'ImageMetadata', Item: { key: 'image.jpg', customField: 'customValue' } }); -
Lambda関数のカスタマイズ - 独自のLambda関数でメタデータを管理
SNS通知の代替手段
旧Lambda関数では処理完了後にSNS通知を送信できましたが、新Lambda関数ではサポート終了となりました。
代替方法:
-
CloudWatch Logs Insights - ログからメトリクスを抽出
fields @timestamp, bucket, key, beforeSize, afterSize | filter @message like /最適化しました/ | stats sum(beforeSize - afterSize) as totalReduction -
EventBridge - Lambda実行イベントを監視
{ "source": ["aws.lambda"], "detail-type": ["Lambda Function Invocation Result"], "detail": { "responsePayload": { "statusCode": [200] } } } -
カスタムLambda関数 - 処理結果を別のLambda関数で通知
環境変数の変更
| 旧環境変数 | 新環境変数 | 変更理由 |
|---|---|---|
UPLOAD_ACL | ACL | シンプル化 |
DESTINATION_ACL (エイリアス) | ACL | エイリアス廃止 |
LOGGING | LOG_LEVEL | より詳細な制御 |
VERBOSE | LOG_LEVEL=debug | 統合 |
MIN_SOURCE_SIZE (エイリアス) | MIN_SIZE | エイリアス廃止 |
MAX_SOURCE_SIZE (エイリアス) | MAX_SIZE | エイリアス廃止 |
| - | LANGUAGE | 新機能: 多言語対応 |
詳細は環境変数の変更点を参照してください。
デプロイ方法
| 項目 | 旧Lambda | 新Lambda | 変更点 |
|---|---|---|---|
| CloudFormation | ✅ 対応 | ✅ 対応 | テンプレート更新 |
| 手動インストール | ✅ 可能 | ✅ 可能 | 手順は同等 |
| アップグレード | スタック更新 | スタック更新 | 同じ手順 |
デプロイ方法に大きな変更はありませんが、CloudFormationテンプレートのパラメータが一部変更されています。
CloudFormationパラメータの変更
| パラメータ | 旧Lambda | 新Lambda |
|---|---|---|
| ライセンス | MySerial | MyToken |
| ACL設定 | AclValue | AclValue |
| リソース接頭辞 | MyResourcePrefix | MyResourcePrefix |
| バックアップACL | BackupAclValue | BackupAclValue |
対応リージョン
| リージョン | 旧Lambda | 新Lambda |
|---|---|---|
| ap-northeast-1 (東京) | ✅ | ✅ |
| ap-northeast-3 (大阪) | ✅ | ✅ |
| us-west-1 (北カリフォルニア) | ✅ | ✅ |
| us-west-2 (オレゴン) | ✅ | ✅ |
| us-east-1 (バージニア北部) | ✅ | ✅ |
| us-east-2 (オハイオ) | ✅ | ✅ |
| その他のリージョン | リクエストで追加 | リクエストで追加 |
対応リージョンに変更はありません。
まとめ
主な改善点
- ✅ ARM64対応 - 約20%のコスト削減
- ✅ 多言語サポート - 英語・日本語のログ出力
- ✅ ログレベル制御 - より細かいレベル設定が可能
- ✅ シンプルな環境変数 - 直感的な命名と統合
- ✅ パフォーマンス向上 - 処理速度とメモリ効率の改善
非互換な変更
- ❌ METADATA機能の廃止 - S3タグやDynamoDBで代替
- ❌ SNS通知機能の廃止 - CloudWatch LogsやEventBridgeで代替
- ❌ 環境変数エイリアスの廃止 - シンプルな環境変数名のみ
- ⚠️ ライセンストークンが必須 - LICENSE_TOKEN環境変数の設定が必要
移行の推奨理由
新Lambda関数への移行を推奨する理由:
- コスト削減 - ARM64により約20%のLambda実行コスト削減
- 運用性向上 - 多言語ログ、詳細なログレベル制御
- 保守性向上 - シンプルな環境変数、明確な命名規則
- 将来性 - 新機能は新Lambda関数にのみ追加予定
次のステップ
- 旧Lambda関数からの移行 - 移行手順の詳細
- 環境変数の変更点 - 環境変数の対応表
- インストール - 新Lambda関数のインストール方法