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

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

最終更新日:Aug 21, 2026

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

重要

このトピックは、ローカルディスク上のファイルのバックアップにのみ適用されます。ローカルディスクにデータベースが保存されており、そのデータベースをバックアップする必要がある場合は、「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 インスタンス一覧 タブで、ローカルディスクが搭載されているインスタンスを見つけ、操作 列の バックアップ をクリックします。

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

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

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

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

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

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

    バックアップ履歴ページには、バックアップステータスがタイムラインで表示されます。緑色の点は完了したバックアップを、赤色の点は部分的に完了したバックアップを示します。バックアップポイントをクリックすると、完了時刻、有効期限、バックアップデータ量、バックアップステータス、ウイルススキャンの結果など、その詳細が右側に表示されます。このページでは、[復元]、[参照]、[ウイルススキャン]、[削除] の操作も可能です。

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

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

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

ossutil と crontab を使用して、ローカルディスクから OSS への自動バックアップを定期実行します。

シナリオ

特徴

課金

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

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

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

重要

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

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

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

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

操作手順

  1. 準備

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

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

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

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

    重要

    ossutil をダウンロードするには、ECS インスタンスがインターネットにアクセスできる必要があります。詳細については、「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

      YourEndpoint、YourAccessKeyId、および YourAccessKeySecret を実際の値に置き換えます。

  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
        
        [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
バックアップデータのダウンロード

関連ドキュメント