LightFile NextLightFile Next

機能比較表

旧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_SIZE5kb5kb変更なし
MAX_SIZE5mb3mbLambdaのメモリ制限を考慮

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_ARN
SNS_DEFAULT_VALUES
❌ サポート終了CloudWatch Logs Insights
EventBridge

METADATAの代替手段

旧Lambda関数ではMETADATA環境変数で独自のメタデータを追加できましたが、新Lambda関数ではサポート終了となりました。

代替方法:

  1. S3オブジェクトタグ - アップロード時にタグを設定

    aws s3api put-object-tagging \
      --bucket my-bucket \
      --key image.jpg \
      --tagging 'TagSet=[{Key=category,Value=product}]'
  2. 外部メタデータストア - DynamoDBなどで画像情報を管理

    // Lambda関数内で別途DynamoDBに記録
    await dynamodb.putItem({
      TableName: 'ImageMetadata',
      Item: {
        key: 'image.jpg',
        customField: 'customValue'
      }
    });
  3. Lambda関数のカスタマイズ - 独自のLambda関数でメタデータを管理

SNS通知の代替手段

旧Lambda関数では処理完了後にSNS通知を送信できましたが、新Lambda関数ではサポート終了となりました。

代替方法:

  1. CloudWatch Logs Insights - ログからメトリクスを抽出

    fields @timestamp, bucket, key, beforeSize, afterSize
    | filter @message like /最適化しました/
    | stats sum(beforeSize - afterSize) as totalReduction
  2. EventBridge - Lambda実行イベントを監視

    {
      "source": ["aws.lambda"],
      "detail-type": ["Lambda Function Invocation Result"],
      "detail": {
        "responsePayload": {
          "statusCode": [200]
        }
      }
    }
  3. カスタムLambda関数 - 処理結果を別のLambda関数で通知

環境変数の変更

旧環境変数新環境変数変更理由
UPLOAD_ACLACLシンプル化
DESTINATION_ACL (エイリアス)ACLエイリアス廃止
LOGGINGLOG_LEVELより詳細な制御
VERBOSELOG_LEVEL=debug統合
MIN_SOURCE_SIZE (エイリアス)MIN_SIZEエイリアス廃止
MAX_SOURCE_SIZE (エイリアス)MAX_SIZEエイリアス廃止
-LANGUAGE新機能: 多言語対応

詳細は環境変数の変更点を参照してください。

デプロイ方法

項目旧Lambda新Lambda変更点
CloudFormation✅ 対応✅ 対応テンプレート更新
手動インストール✅ 可能✅ 可能手順は同等
アップグレードスタック更新スタック更新同じ手順

デプロイ方法に大きな変更はありませんが、CloudFormationテンプレートのパラメータが一部変更されています。

CloudFormationパラメータの変更

パラメータ旧Lambda新Lambda
ライセンスMySerialMyToken
ACL設定AclValueAclValue
リソース接頭辞MyResourcePrefixMyResourcePrefix
バックアップACLBackupAclValueBackupAclValue

対応リージョン

リージョン旧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関数への移行を推奨する理由:

  1. コスト削減 - ARM64により約20%のLambda実行コスト削減
  2. 運用性向上 - 多言語ログ、詳細なログレベル制御
  3. 保守性向上 - シンプルな環境変数、明確な命名規則
  4. 将来性 - 新機能は新Lambda関数にのみ追加予定

次のステップ