LightFile NextLightFile Next

S3バックアップ

Amazon S3へのバックアップ設定

Amazon S3バケットにバックアップを保存します。S3互換ストレージ(MinIO、Wasabi等)にも対応しています。

Amazon S3への基本的な使い方

コマンドライン:

lightfile-batch local /path/to/images \
  --backup-fs s3 \
  --backup-s3-bucket my-backup-bucket \
  --backup-s3-region us-west-2 \
  --backup-s3-acl private \
  --backup-s3-access-key AKIAIOSFODNN7EXAMPLE \
  --backup-s3-secret-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

YAML設定ファイル:

backup:
  fileSystem: s3
  s3:
    bucket: my-backup-bucket
    region: us-west-2
    acl: private
    accessKeyId: AKIAIOSFODNN7EXAMPLE
    secretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  mode: strict
local:
  dir: /path/to/images

S3互換ストレージ(MinIO等)

MinIOなどのS3互換ストレージも使用できます。

注意: S3互換ストレージでは、forcePathStyleが必要な場合があります。MinIOなどのPath-Styleエンドポイントを使用するストレージでは、--backup-s3-force-path-styleオプション(またはYAMLでforcePathStyle: true)を指定してください。

コマンドライン:

lightfile-batch local /path/to/images \
  --backup-fs s3 \
  --backup-s3-endpoint https://minio.example.com \
  --backup-s3-bucket my-backup-bucket \
  --backup-s3-region us-east-1 \
  --backup-s3-acl private \
  --backup-s3-force-path-style \
  --backup-s3-access-key minioadmin \
  --backup-s3-secret-key minioadmin

YAML設定ファイル:

backup:
  fileSystem: s3
  s3:
    endpoint: https://minio.example.com
    bucket: my-backup-bucket
    region: us-east-1
    acl: private
    forcePathStyle: true
    accessKeyId: minioadmin
    secretAccessKey: minioadmin
local:
  dir: /path/to/images

容量管理

S3バックアップでは、バックアップの合計サイズを管理できます。

注意: ディスク空き容量ベースの管理(freeSpaceThreshold/targetFreeSpace)はS3バックアップでは使用できません。バックアップサイズベースの管理のみ対応しています。

推奨: S3ライフサイクルポリシーを使用

S3バックアップでは、S3のライフサイクルポリシーを使用してバックアップを管理することを強く推奨します。

バックアップサイズベースの管理は、S3バケット全体のスキャンが発生するため、バックアップ容量が大きいと処理に時間がかかります。S3のライフサイクルポリシーを使えば、スキャン不要で効率的にバックアップを管理できます。

バックアップサイズベース(非推奨)

バックアップの合計サイズを監視し、上限を超えたら古いバックアップから順に削除します。

コマンドライン:

lightfile-batch local /path/to/images \
  --backup-fs s3 \
  --backup-s3-bucket my-backup-bucket \
  --backup-s3-region us-west-2 \
  --backup-s3-acl private \
  --backup-s3-max-total-size 100gb \
  --backup-s3-target-total-size 80gb \
  --backup-check-interval 2gb

YAML設定ファイル:

backup:
  fileSystem: s3
  checkInterval: 2gb        # チェック間隔(デフォルト: 1gb)
  s3:
    bucket: my-backup-bucket
    region: us-west-2
    acl: private
    maxTotalSize: 100gb     # 最大サイズ: この値を超えたらクリーンアップ
    targetTotalSize: 80gb   # 目標サイズ: クリーンアップ後の目標サイズ
local:
  dir: /path/to/images

動作:

  1. バックアップの合計サイズがmaxTotalSize(100GB)を超える
  2. 古いバックアップから順に削除
  3. 合計サイズがtargetTotalSize(80GB)以下になるまで削除を続行