移行ガイド概要
旧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への移行により、以下の改善が得られます:
-
インストーラーの充実
- 旧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
-
完全なバイナリプログラム化
- Node.js不要、Go言語で実装
- 高速起動と省メモリ化
- 配布サイズの大幅削減
-
ライセンス認証のオフライン化
- 暗号化技術を使ったオフラインライセンス認証
- サーバー通信不要で高速な認証処理
- ネットワーク環境に依存しない安定動作
-
画像最適化のコアロジック改善
- C言語ベースの最適化エンジンをシングルバイナリに統合
- プロセス起動のオーバーヘッドを大幅に削減
- メモリ使用量の大幅な削減
-
YAML設定ファイル対応(Batchのみ)
- 複雑な設定をファイルで管理可能
- 複数の設定ファイルをマージ可能
詳細は性能改善についてを参照してください。
次のステップ
選択したプログラムに応じて、以下のガイドに進んでください:
- LightFile Shotへの移行 - 移行手順とコマンド変更点
- コマンドの変更点(Shot) - コマンドラインオプションの対応表
- 機能比較表(Shot) - 機能の詳細比較
または
- LightFile Batchへの移行 - 移行手順とコマンド変更点
- コマンドの変更点(Batch) - コマンドラインオプションの対応表
- 機能比較表(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への移行により、以下の改善が得られます:
-
ARM64アーキテクチャ対応
- 約20%のLambda実行コスト削減
- 処理性能の向上
-
多言語サポート
- 英語・日本語のログ出力に対応
LANGUAGE環境変数で言語を選択可能
-
シンプルな環境変数
- 直感的な命名規則(
UPLOAD_ACL→ACL、LOGGING→LOG_LEVEL) - より細かいログレベル制御(debug/info/warn/error/fatal)
- 直感的な命名規則(
-
パフォーマンス向上
- Go言語による高速化
- メモリ効率の改善
-
ライセンス認証のオフライン化
- オフラインライセンス認証による高速起動
- ネットワーク遅延の影響を受けない安定動作
非互換な変更
以下の機能は新Lambda関数でサポート終了となりました:
-
❌ カスタムメタデータ設定(
METADATA環境変数)- 代替: S3オブジェクトタグ、DynamoDB等で管理
-
❌ SNS通知機能(
SNS_TOPIC_ARN、SNS_DEFAULT_VALUES)- 代替: CloudWatch Logs Insights、EventBridge
-
❌ 環境変数エイリアス(
MIN_SOURCE_SIZE、DESTINATION_ACLなど)- 代替: シンプルな環境変数名のみ
新Lambda関数ではLICENSE_TOKEN環境変数が必須です。CloudFormationデプロイ時に自動設定されますが、手動で設定する場合は注意が必要です。
移行方法
旧Lambda関数から新LightFile Lambdaへの移行は、以下の手順で行います:
- 現在の設定を確認 - 環境変数、バケット名などを記録
- 新しいCloudFormationスタックをデプロイ - 新Lambda関数を別スタックとして作成
- 環境変数を移行 - 一部の環境変数名が変更されています
- テスト実行 - 新Lambda関数が正常に動作することを確認
- 旧Lambda関数の無効化 - イベントソースを無効化または削除
- 旧Lambda関数の削除(オプション) - 一定期間後にスタックを削除
詳細な手順は旧Lambda関数からの移行を参照してください。
次のステップ
Lambda関数の移行については、以下のガイドに進んでください:
- 旧Lambda関数からの移行 - 移行手順の詳細
- 環境変数の変更点 - 環境変数の対応表
- 機能比較表(Lambda) - 機能の詳細比較
共通の改善点
すべてのLightFile6製品に共通する改善点:
1. ライセンス方式の変更
- 旧版: シリアルコード(
--serial) - 新版: ライセンストークン(
--license-token、環境変数LF_TOKEN、~/.lightfile-next/token)
トークンベースの認証により、セキュリティと管理性が向上しました。
2. 完全なバイナリプログラム化
- Node.js不要、Go言語で実装
- 高速起動と省メモリ化
- 依存関係なし
3. オフラインライセンス認証
- サーバー通信不要で高速な認証処理
- ネットワーク環境に依存しない安定動作
4. 画像最適化のコアロジック改善
- C言語ベースの最適化エンジンをシングルバイナリに統合
- プロセス起動のオーバーヘッドを大幅に削減
- メモリ使用量の大幅な削減
詳細は性能改善についてを参照してください。
移行支援
移行に関してご不明な点がある場合は、以下のサポートをご利用ください:
- 問い合わせ: support@ideamans.com
- GitHub Issues: https://github.com/ideamans/lightfile6/issues