すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:ローカルディスク上のファイルのバックアップ

最終更新日:May 16, 2026

データの損失を防ぐために、Cloud Backup、OSS、またはクラウドディスクや NAS を使用して、ローカルディスク上のファイルを定期的にバックアップします。

重要

このトピックは、ローカルディスク上のファイルのバックアップにのみ適用されます。ローカルディスクにデータベースが保存されており、そのデータベースをバックアップする必要がある場合は、「Elastic Compute Service (ECS) 上のセルフマネージドデータベースのバックアップ」をご参照ください。

方法1: Cloud Backup の使用

シナリオ

制限

メリット

課金

Cloud Backup は、ECS インスタンス (ローカルディスクやセルフマネージドの Oracle/MySQL/SQL Server データベースなど) 上のファイルやディレクトリの定期的なバックアップと、必要に応じたデータ復元をサポートします。信頼性の高いバックアップが求められるシナリオに適しています。詳細については、「Cloud Backup のメリット」をご参照ください。

  • Cloud Backup は、すべてのリージョンでサポートされているわけではありません。詳細については、「サポートされるリージョン」をご参照ください。

  • インスタンスに Cloud Assistant Agent がインストールされている必要があります。

  • SaaS ベースで便利かつ効率的

  • スクリプト不要

  • ファイルレベルの重複排除と圧縮によりストレージコストを削減

  • バックアップとリカバリをサポート

ファイルバックアップソフトウェアの使用量ストレージ容量に対して課金されます。詳細については、「ECSファイルバックアップ料金」をご参照ください。

操作手順

  1. 準備

    • ローカルディスクが所在するリージョンで Cloud Backup がサポートされていることを確認します。詳細については、「サポートされるリージョン」をご参照ください。

    • インスタンスに Cloud Assistant Agent がインストールされていることを確認します。

      重要

      2017 年 12 月 1 日以降に購入されたインスタンスには、デフォルトで Cloud Assistant Agent が含まれています。インストールされていない場合は、「Cloud Assistant Agent のインストール」をご参照ください。

  2. Cloud Backup コンソールにログインし、ローカルディスクのリージョンを選択します。

  3. 左側メニューで、バックアップ > [ECS ファイルバックアップ] を選択します。 ECS インスタンスリスト タブで、ローカルディスクが搭載されているインスタンスを見つけ、バックアップ 列の 操作 をクリックします。

    image

  4. [バックアップ計画の作成] パネルで、プロンプトに従ってパラメーターを設定し、OK をクリックします。

    以下の設定にご注意ください。その他のパラメーターについては、「ECS ファイルを定期的にバックアップするバックアッププランの作成」をご参照ください。

    • [备份目录规则]: 指定目录 を選択します。

    • [ソースパス]: バックアップするローカルディスクデータの絶対パス。複数のパスを入力できます。ルールについては、プロンプトをご参照ください。

    • [バックアップポリシー]: バックアップ時間、周期、保持期間を指定するポリシーを選択します。ポリシーが存在しない場合は、まずポリシーを作成してください。詳細については、「バックアップポリシーの作成」をご参照ください。

    スケジュールされたバックアップ時刻になると、システムはバックアップジョブを実行します。ステータス に「完了」と表示されると、バックアップは完了です。バックアップ履歴でバックアップポイントを表示できます。

    image

関連操作
  • データを復元する: データをバックアップボールトにバックアップした後、ファイルが失われたり破損したりした場合に、履歴の復旧ポイントからファイルを復元できます。詳細については、「ECS ファイルの復元」をご参照ください。

  • バックアップファイルの参照とダウンロード: 詳細については、「バックアップファイルの参照とダウンロード」をご参照ください。

方法2: OSS へのバックアップ

ossutilcrontab を使用して、ローカルディスクから OSS への自動バックアップをスケジュールします。

シナリオ

特徴

課金

低コストと高い信頼性が求められる大規模なデータバックアップに適しています。詳細については、「メリット」をご参照ください。

カスタムスクリプトが必要です。

OSS のストレージ料金が適用されます。詳細については、「ストレージ料金」をご参照ください。

重要

これは基本的な例であり、制限があります。特定のビジネス要件に合わせて拡張してください。

たとえば、毎回フルバックアップを行うとストレージ使用量が増加し、ディレクトリ全体を ZIP ファイルにパッケージ化するとバックアップ速度が低下します。次のようなカスタムバックアップポリシーを検討してください。

  • 増分バックアップまたは差分バックアップ: 最後のバックアップ以降に変更されたデータのみをバックアップして効率を向上させます。

  • ブロックバックアップ: バックアップ前に、ディレクトリ構造やファイルタイプによってデータをブロックに分割します。

操作手順

  1. 準備

    • OSS をアクティベートし、バケットを作成します。詳細については、「バケットの作成」をご参照ください。

    • OSS バケット名、OSS エンドポイント、およびバックアップするローカルディスクのデータパスを取得します。

  2. ECS インスタンスにログインします。

  3. ossutil をインストールし、アクセス認証情報を設定します。

    重要

    ECS インスタンスは、ossutil をダウンロードするためにインターネットアクセスが必要です。詳細については、「ECS インスタンスのインターネットアクセスを有効にする方法」をご参照ください。

    1. ossutil をインストールします。

      sudo yum install unzip -y
      sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
    2. ossutil のアクセス認証情報を設定します。

      ユーザーディレクトリに .ossutilconfig ファイルを作成し、認証情報を追加します。

      sudo -i  # root ユーザーに切り替えます。現在のユーザーに sudo 権限がない場合は、他のログイン方法を使用するか、権限を付与してください。
      
      cat <<EOF > /root/.ossutilconfig
      [Credentials]
      language=EN
      endpoint=YourEndpoint
      accessKeyID=YourAccessKeyId
      accessKeySecret=YourAccessKeySecret
      EOF

      YourEndpointYourAccessKeyIdYourAccessKeySecret を実際の値に置き換えてください。

  4. スケジュールバックアップを設定します。

    1. 圧縮ツールをインストールします。この例では、zip を使用します。

      sudo yum install zip
    2. バックアップスクリプトを作成します。この例では、スクリプト名は backup_to_oss.sh です。

      サンプルスクリプト: ローカルディスクのデータを ZIP ファイルに圧縮し、指定された OSS バケットにアップロードします。必要に応じて変更してください。

      • /path/to/your/local/data: 実際のローカルディスクのデータディレクトリに置き換えます。

      • your-bucket-name:OSS バケット名に置き換えます。

      • path/in/oss/to/store/backups/: バックアップを保存する OSS ディレクトリに置き換えます。

      • /path/to/backup_tmp/:アップロード前の ZIP ファイル用の一時ディレクトリです。アップロードの成功後、ファイルは削除されます。十分な空き容量があるディレクトリに置き換えてください。

      #!/bin/bash
      
      LOCAL_DIR="/path/to/your/local/data/"
      BACKUP_TMP_DIR="/path/to/backup_tmp/"
      OSS_BUCKET="your-bucket-name"
      OSS_PREFIX="path/in/oss/to/store/backups/"
      SYNC_TIME_FILE="/var/tmp/last_backup.timestamp"
      OSSUTIL_PATH="/usr/bin/ossutil"
      LOG_FILE="/var/log/backup_to_oss.log"
      DATE_STAMP=$(date +%Y%m%d%H%M%S)
      ZIP_FILE_NAME="backup_$DATE_STAMP.zip"
      
      # ZIP ツールがインストールされているかどうかを確認します。
      if ! command -v zip &> /dev/null; then
          echo "zip command not found. Please install zip." >&2
          exit 1
      fi
      
      # LOCAL_DIR が存在し、空でないことを確認します。
      if [ -z "$(ls -A "$LOCAL_DIR")" ]; then
          echo "No files to backup in $LOCAL_DIR" | tee -a "$LOG_FILE"
          exit 0
      fi
      
      # バックアップしたいファイルをパッケージ化し、エラー出力をキャプチャします。
      (cd "$LOCAL_DIR" && zip -r "$BACKUP_TMP_DIR/$ZIP_FILE_NAME" .) >> "$LOG_FILE" 2>&1 || {
          echo "Failed to create ZIP archive. Error: $(zip -r "$BACKUP_TMP_DIR/$ZIP_FILE_NAME" . 2>&1)" | tee -a "$LOG_FILE"
          exit 1
      }
      
      if [ $? -eq 0 ]; then
          # ossutil を使用して ZIP ファイルをアップロードします。
          OSS_PATH="oss://$OSS_BUCKET/$OSS_PREFIX$ZIP_FILE_NAME"
          if "$OSSUTIL_PATH" cp "$BACKUP_TMP_DIR/$ZIP_FILE_NAME" "$OSS_PATH" >> "$LOG_FILE" 2>&1; then
              echo "Uploaded: $ZIP_FILE_NAME" | tee -a "$LOG_FILE"
          else
              echo "Failed to upload: $ZIP_FILE_NAME" | tee -a "$LOG_FILE"
          fi
          rm "$BACKUP_TMP_DIR/$ZIP_FILE_NAME" # アップロードが成功した後、ローカルの ZIP ファイルを削除します。
      else
          echo "Failed to create ZIP archive." | tee -a "$LOG_FILE"
      fi
      
      # バックアップが失敗した場合でも、同じコンテンツの再アップロードを避けるためにバックアップ時刻を記録します。
      date +%s > "$SYNC_TIME_FILE"
      echo "Backup process completed." | tee -a "$LOG_FILE"
  5. 実行権限を付与し、スクリプトをテストします。

    sudo chmod +x /home/backup_to_oss.sh
    ./backup_to_oss.sh

    スクリプトが正しく実行され、データが OSS にアップロードされていることを確認します。

  6. crontab -e で crontab エディターを開き、スケジュールエントリを追加します。たとえば、毎日 02:00 にバックアップを実行するには:

    0 2 * * * /home/backup_to_oss.sh

    /home/backup_to_oss.sh: 実際のスクリプトパスに置き換えます。

  7. 必要に応じて追加設定を行います。

    • (オプション) システム起動時にスクリプトを実行します。

      1. backup_to_oss.service ファイルを作成します。

        sudo vi /etc/systemd/system/backup_to_oss.service
      2. 以下の内容を追加します。Esc キーを押し、:wq と入力し、Enter キーを押してファイルを保存して閉じます。

        [Unit]
        Description=Back to OSS
        After=network.target
        
        [Service]
        ExecStart=/home/backup_to_oss.sh
        RestartSec=3
        Restart=always
        
        [Install]
        WantedBy=default.target
      3. systemd 設定をリロードします。

        sudo systemctl daemon-reload
      4. スクリプトを開始し、システム起動時に有効にします。

        sudo systemctl start backup_to_oss.service
        sudo systemctl enable backup_to_oss.service
    • (オプション) OSS 内のバックアップファイルの保持期間を指定します。

      1. ローカルファイルを作成し、XML 形式でライフサイクルルールを設定します。

        vim OSSLifecycleConfig.xml

        次の例では、test/ パス内のファイルを 30 日間保持し、それより古いファイルを削除します。必要に応じて変更してください。詳細については、「ライフサイクル」をご参照ください。

        <?xml version="1.0" encoding="UTF-8"?>
        <LifecycleConfiguration>
          <Rule>
            <ID>test-rule1</ID>
            <Prefix>test/</Prefix>
            <Status>Enabled</Status>
            <Expiration>
              <Days>30</Days>
            </Expiration>
          </Rule>
        </LifecycleConfiguration>
      2. ossutil を使用して、ライフサイクル設定をバケットに適用します。

        ossutil lifecycle --method put oss://bucketname OSSLifecycleConfig.xml

        bucketname: 実際の OSS バケット名に置き換えます。

バックアップデータのダウンロード

コンソールまたは ossutil を介して OSS からバックアップデータをダウンロードします。詳細については、「単純ダウンロード」をご参照ください。

方法3: クラウドディスクまたは NAS へのバックアップ

ローカルディスクのデータを ZIP ファイルに圧縮し、スケジュールに従ってクラウドディスクまたは NAS ファイルシステムにバックアップします。

シナリオ

特徴

課金

  • クラウドディスク: バックアップファイルへのアクセスが容易なオンラインストレージに適しています。

  • NAS ファイルシステム: データ共有、バックアップ、またはバックアップデータへの迅速なアクセスに適しています。

カスタムスクリプトが必要です。

  • クラウドディスク料金が適用されます。詳細については、「クラウドディスクの課金」をご参照ください。

  • NAS 料金が適用されます。詳細については、「課金の概要」をご参照ください。

重要

これは基本的な例であり、制限があります。特定のビジネス要件に合わせて拡張してください。

たとえば、毎回フルバックアップを行うとストレージ使用量が増加し、ディレクトリ全体を ZIP ファイルにパッケージ化するとバックアップ速度が低下します。次のようなカスタムバックアップポリシーを検討してください。

  • 増分バックアップまたは差分バックアップ: 最後のバックアップ以降に変更されたデータのみをバックアップして効率を向上させます。

  • ブロックバックアップ: バックアップ前に、ディレクトリ構造やファイルタイプによってデータをブロックに分割します。

操作手順

  1. 準備

  2. スケジュールバックアップを設定します。

    1. ECS インスタンスにログインします。

    2. ZIP ツールをインストールします。次の例では、Alibaba Cloud Linux が使用されます。

      sudo yum install zip
    3. バックアップスクリプトを作成します。この例では、スクリプトは /home/backup_script.sh に保存されます。

      スクリプトを作成して保存します。

      vim /home/backup_script.sh

      サンプルスクリプト: ローカルディスクのデータを ZIP ファイルに圧縮し、指定されたパスにバックアップします。必要に応じて変更してください。

      • /path/to/local_disk/: ローカルディスクデータの絶対パスに置き換えます。

      • /path/to/backup/: バックアップ先のパスに置き換えます。

      #!/bin/bash
      
      # 変数を設定します。
      LOCAL_DISK="/path/to/local_disk/"
      NAS_MOUNT="/path/to/backup/"
      ZIP_NAME="backup_$(date +%Y%m%d%H%M%S).zip"
      LOG_FILE="/var/log/backup_to_nas.log"
      
      # ZIP ツールがインストールされていることを確認します。
      if ! command -v zip &> /dev/null; then
          echo "Error: zip command not found. Please install zip." >&2
          exit 1
      fi
      
      # データをバックアップします。
      echo "Starting backup at $(date)" >> "$LOG_FILE"
      zip -r "$NAS_MOUNT/$ZIP_NAME" "$LOCAL_DISK" >> "$LOG_FILE" 2>&1
      if [ $? -eq 0 ]; then
          echo "Backup completed successfully at $(date)" | tee -a "$LOG_FILE"
          echo "Backup file: $NAS_MOUNT/$ZIP_NAME" | tee -a "$LOG_FILE"
      else
          echo "Backup failed. Check log for details." >> "$LOG_FILE"
          exit 1
      fi
      
      # 期限切れのバックアップをクリアします。たとえば、過去 30 日以内のバックアップを保持します。
      
      # find "$NAS_MOUNT" -type f -name 'backup_*' -mtime +30 -delete >> "$LOG_FILE" 2>&1
      # if [ $? -eq 0 ]; then
      #    echo "Old backups cleaned up successfully." >> "$LOG_FILE"
      # else
      #    echo "Error occurred while cleaning up old backups. Check log for details." >> "$LOG_FILE"
      # fi
      
      echo "Backup process finished at $(date)" >> "$LOG_FILE"
    4. スクリプトを保存し、実行権限を付与します。

      sudo chmod +x /home/backup_script.sh

      /home/backup_script.sh:実際のスクリプトパスに置き換えます。

    5. crontab -e で crontab エディターを開き、スケジュールエントリを追加します。たとえば、毎日 02:00 にバックアップを実行するには:

      0 2 * * * /home/backup_script.sh

      /home/backup_script.sh:実際のスクリプトパスに置き換えます。

    6. (オプション) システム起動時にスクリプトを実行します。

      1. backup_script.service ファイルを作成します。

        sudo vi /etc/systemd/system/backup_script.service
      2. 以下の内容を追加します。Esc キーを押し、:wq と入力し、Enter キーを押してファイルを保存して閉じます。

        [Unit]
        Description=Backup Files Script
        After=network.target
        
        [Service]
        ExecStart=/home/backup_script.sh
        
        [Install]
        WantedBy=default.target
      3. systemd 設定をリロードします。

        sudo systemctl daemon-reload
      4. スクリプトを開始し、システム起動時に有効にします。

        sudo systemctl start backup_script.service
        sudo systemctl enable backup_script.service
バックアップデータのダウンロード

関連ドキュメント