LightFile NextLightFile Next

移行ガイド概要

旧LightFileから新バージョンへの移行ガイド

このガイドでは、旧LightFile製品から新しいLightFile6製品群への移行方法を説明します。

LightFile6は、従来の製品を大幅に改善した新世代の画像最適化ソリューションです。

旧LightFileコマンドをお使いの方へ

旧LightFileコマンド(v6.0.0未満)を使用している場合の移行ガイドです。

旧LightFileコマンドについて

  • プログラム名: lightfile
  • 実装: Node.js
  • バージョン: v6.0.0未満
  • 用途: バッチ処理全般(ローカル、リモートファイルシステム)

移行先: LightFile Batch / LightFile Shot

旧LightFileコマンドは、用途に応じてLightFile BatchまたはLightFile Shotの2つの製品に分かれました。

LightFile Batch(定期バッチ処理用)

定期的なバッチ処理に特化したCLIツール。処理済みファイルを記録し、変更されたファイルのみを効率的に最適化します。

  • 主な用途: cron/スケジューラによる定期実行、継続的な画像最適化
  • 対応環境: ローカル、FTP、SFTP、WebDAV、S3/S3互換ストレージ
  • 特徴: 処理済みファイルの管理、バックアップ機能、進捗表示、エラー通知

LightFile Shot(ワンタイム処理用)

ワンタイム処理に特化した軽量CLIツール。処理履歴を持たず、シンプルで高速な画像最適化を実現します。

  • 主な用途: ユーザーアップロード画像の最適化、CI/CDパイプライン、手動実行
  • 対応環境: ローカルファイルシステムのみ
  • 特徴: シンプルな設計、高速起動、低メモリ使用量、複製モード対応

どちらを選択すべきか?

旧LightFileコマンドを使用していた場合、用途に応じてLightFile BatchまたはLightFile Shotを選択してください。

LightFile Batchを選択すべきケース

  • 定期的なバッチ処理(cron、スケジューラからの実行)
  • リモートファイルシステム(FTP、SFTP、WebDAV、S3)
  • 高度な機能(バックアップ、通知、処理済みファイルのスキップ)

LightFile Shotを選択すべきケース

  • ワンタイム処理(手動実行、CI/CD、スクリプトからの呼び出し)
  • ローカルファイルシステムのみ
  • シンプルさ重視(最小限の設定で動作)

主な改善点

旧LightFileコマンドから新LightFile Batch/Shotへの移行により、以下の改善が得られます:

  1. インストーラーの充実

    • 旧LightFileでは実行ファイルのダウンロードのみでしたが、各OSに標準的なパッケージマネージャーとインストーラーが利用可能に
    • Linux: APT (Ubuntu/Debian)、YUM/DNF (RHEL/CentOS/Fedora)、Shell Script、Direct Binary
    • macOS: Shell Script、Direct Binary
    • Windows: Chocolatey、Scoop、PowerShell Script、Direct Binary
  2. 完全なバイナリプログラム化

    • Node.js不要、Go言語で実装
    • 高速起動と省メモリ化
    • 配布サイズの大幅削減
  3. ライセンス認証のオフライン化

    • 暗号化技術を使ったオフラインライセンス認証
    • サーバー通信不要で高速な認証処理
    • ネットワーク環境に依存しない安定動作
  4. 画像最適化のコアロジック改善

    • C言語ベースの最適化エンジンをシングルバイナリに統合
    • プロセス起動のオーバーヘッドを大幅に削減
    • メモリ使用量の大幅な削減
  5. YAML設定ファイル対応(Batchのみ)

    • 複雑な設定をファイルで管理可能
    • 複数の設定ファイルをマージ可能

詳細は性能改善についてを参照してください。

次のステップ

選択したプログラムに応じて、以下のガイドに進んでください:

または


旧LightFile Lambda関数をお使いの方へ

旧LightFile Lambda関数を使用している場合の移行ガイドです。

旧LightFile Lambda関数について

  • プログラム名: LightFile Lambda関数
  • 実装: Node.js
  • デプロイ: CloudFormation
  • 用途: S3バケットへのアップロード時の自動画像最適化

移行先: LightFile Lambda

旧Lambda関数は、LightFile Lambdaとして大幅にバージョンアップされました。

LightFile Lambdaの特徴

  • 実装: Go言語(ARM64/x86_64対応)
  • デプロイ: CloudFormation(互換性あり)
  • 用途: S3バケットへのアップロード時の自動画像最適化(旧版と同じ)
  • 特徴: 高速化、多言語対応、シンプルな環境変数

主な改善点

旧Lambda関数からLightFile Lambdaへの移行により、以下の改善が得られます:

  1. ARM64アーキテクチャ対応

    • 約20%のLambda実行コスト削減
    • 処理性能の向上
  2. 多言語サポート

    • 英語・日本語のログ出力に対応
    • LANGUAGE環境変数で言語を選択可能
  3. シンプルな環境変数

    • 直感的な命名規則(UPLOAD_ACLACLLOGGINGLOG_LEVEL
    • より細かいログレベル制御(debug/info/warn/error/fatal)
  4. パフォーマンス向上

    • Go言語による高速化
    • メモリ効率の改善
  5. ライセンス認証のオフライン化

    • オフラインライセンス認証による高速起動
    • ネットワーク遅延の影響を受けない安定動作

非互換な変更

以下の機能は新Lambda関数でサポート終了となりました:

  • カスタムメタデータ設定METADATA環境変数)

    • 代替: S3オブジェクトタグ、DynamoDB等で管理
  • SNS通知機能SNS_TOPIC_ARNSNS_DEFAULT_VALUES

    • 代替: CloudWatch Logs Insights、EventBridge
  • 環境変数エイリアスMIN_SOURCE_SIZEDESTINATION_ACLなど)

    • 代替: シンプルな環境変数名のみ

新Lambda関数ではLICENSE_TOKEN環境変数が必須です。CloudFormationデプロイ時に自動設定されますが、手動で設定する場合は注意が必要です。

移行方法

旧Lambda関数から新LightFile Lambdaへの移行は、以下の手順で行います:

  1. 現在の設定を確認 - 環境変数、バケット名などを記録
  2. 新しいCloudFormationスタックをデプロイ - 新Lambda関数を別スタックとして作成
  3. 環境変数を移行 - 一部の環境変数名が変更されています
  4. テスト実行 - 新Lambda関数が正常に動作することを確認
  5. 旧Lambda関数の無効化 - イベントソースを無効化または削除
  6. 旧Lambda関数の削除(オプション) - 一定期間後にスタックを削除

詳細な手順は旧Lambda関数からの移行を参照してください。

次のステップ

Lambda関数の移行については、以下のガイドに進んでください:


共通の改善点

すべてのLightFile6製品に共通する改善点:

1. ライセンス方式の変更

  • 旧版: シリアルコード(--serial
  • 新版: ライセンストークン(--license-token、環境変数LF_TOKEN~/.lightfile-next/token

トークンベースの認証により、セキュリティと管理性が向上しました。

2. 完全なバイナリプログラム化

  • Node.js不要、Go言語で実装
  • 高速起動と省メモリ化
  • 依存関係なし

3. オフラインライセンス認証

  • サーバー通信不要で高速な認証処理
  • ネットワーク環境に依存しない安定動作

4. 画像最適化のコアロジック改善

  • C言語ベースの最適化エンジンをシングルバイナリに統合
  • プロセス起動のオーバーヘッドを大幅に削減
  • メモリ使用量の大幅な削減

詳細は性能改善についてを参照してください。

移行支援

移行に関してご不明な点がある場合は、以下のサポートをご利用ください: