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

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

最終更新日:Nov 09, 2025

データセキュリティを向上させ、偶発的な削除、変更、または上書きによるデータの損失や破損を防ぐために、ローカルディスクに保存されているファイルを定期的にバックアップできます。このトピックでは、Cloud Backup サービスを使用した定期的なバックアップ、Object Storage Service (OSS) へのバックアップ、およびクラウドディスクまたは File Storage NAS (NAS) へのバックアップという 3 つの一般的なバックアップ方法について説明します。このトピックは、自己管理データベースのバックアップには適用されません。

重要

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

方法 1: Cloud Backup を使用してローカルディスクに保存されたデータを定期的にバックアップする

シナリオ

制限

メリット

課金

Cloud Backup は、ECS インスタンス上のファイルまたはディレクトリ (ローカルディスクや自己管理の Oracle/MySQL/SQL Server データベースのバックアップなど) の定期的なバックアップと、必要に応じたデータ復元をサポートします。Cloud Backup は、信頼性の高いバックアップソリューションを必要とするシナリオに適しています。Cloud Backup の詳細については、「Cloud Backup の利点」をご参照ください。

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

  • インスタンスにクラウドアシスタントエージェントがインストールされている必要があります。

  • SaaS ベースのクラウドバックアップサービス、便利で効率的

  • スクリプトをコンパイルする必要がない

  • ファイルコンテンツレベルの重複排除と圧縮により、ストレージコストを節約

  • バックアップと回復のサポート

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

手順

  1. 準備をします。

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

    • ローカルディスクが搭載されたインスタンスにクラウドアシスタントエージェントがインストールされていることを確認します。

      重要

      インスタンスが 2017 年 12 月 1 日以降に購入された場合、クラウドアシスタントエージェントはインスタンスにプロビジョニングされています。クラウドアシスタントエージェントがインストールされていない場合は、インスタンスにインストールする必要があります。詳細については、「クラウドアシスタントエージェントのインストール」をご参照ください。

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

  3. 左側のナビゲーションウィンドウで、[バックアップ] > [ECS ファイルバックアップ] を選択します。ECS インスタンスリスト タブで、ローカルディスクが搭載されたインスタンスを見つけ、[アクション] 列の [バックアップ] をクリックします。

    image

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

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

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

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

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

    バックアップポリシーのバックアップ時間に達すると、システムはバックアップジョブを実行します。バックアップジョブの [ステータス] が完了になると、その日のバックアップジョブは完了です。バックアップ履歴でバックアップポイントを表示できます。

    image

関連操作
  • データの復元: ローカルディスクからクラウドバックアップボールトにデータをバックアップした後、ファイルが欠落または破損している場合は、履歴バックアップポイントを使用してファイルを復元できます。詳細については、「ECS ファイルの復元」をご参照ください。

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

方法 2: ローカルディスクから OSS にデータを定期的にバックアップする

ossutil および crontab コマンドを実行し、自動化スクリプトをコンパイルして、ローカルディスクから OSS にデータを定期的にバックアップできます。

シナリオ

特徴

課金

この方法は、大規模なデータバックアップシナリオに適しており、低コストで高い信頼性を必要とするストレージソリューションに最適です。OSS の詳細については、「利点」をご参照ください。

スクリプトを作成する必要があります。

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

重要

このソリューションは、基本的なアプローチを説明する基本的な例を提供します。これには制限があり、特定のビジネス要件を満たすために拡張および補足する必要があります。

たとえば、毎回完全バックアップが実行されるため、時間の経過とともにストレージスペースの使用量が徐々に増加したり、ディレクトリ全体が ZIP ファイルにパッケージ化されるため、バックアップ速度とストレージ効率が低下したりします。実際のビジネスシナリオでは、必要に応じてカスタムバックアップポリシーを使用できます。例:

  • 増分バックアップまたは差分バックアップ: 前回のバックアップ以降に変更されたデータのみをバックアップして、ストレージ効率を向上させ、バックアッププロセスを高速化します。

  • ブロックバックアップ: データをバックアップする前に、データセットを複数のブロックに分割したり、ディレクトリ構造やファイルタイプなどのロジックに基づいてデータをグループ化したりできます。

手順

  1. 準備をします。

    • OSS をアクティブ化し、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

      YourEndpointYourAccessKeyId、および YourAccessKeySecret を実際の情報に置き換えます。

  4. スケジュールされたバックアップを実装します。

    1. 圧縮ツールをインストールします。この例では、zip ツールがインストールされています。

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

      次のコードはサンプルスクリプトです。必要に応じてスクリプトを変更する必要があります。サンプルスクリプトは、ローカルディスクデータを ZIP パッケージに圧縮し、その ZIP パッケージを指定された OSS バケットにバックアップするために使用されます。

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

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

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

      • /path/to/backup_tmp/: パッケージ化された ZIP ファイルを一時的に保存するために使用されます。ZIP ファイルが OSS に正常にアップロードされると、それらは削除されてスペースが解放されます。これを十分なスペースのある一時的なバックアップディレクトリに置き換えてください。

      #!/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 日間保存し、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 バケット名に置き換えます。

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

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

方法 3: ローカルディスクから同じインスタンスにアタッチされたクラウドディスクまたは NAS ファイルシステムにデータを定期的にバックアップする

ローカルディスクデータを定期的に ZIP パッケージに圧縮し、そのデータをクラウドディスクまたは NAS ファイルシステムの特定のパスにバックアップします。

シナリオ

特徴

課金

  • クラウドディスク: オンラインストレージとバックアップファイルへの簡単なアクセスが必要なシナリオに適しています。

  • 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 パッケージに圧縮し、その 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
バックアップデータのダウンロード

関連操作

  • ローカルディスクから別の ECS インスタンスへのデータ移行

    数回クリックするだけで、ローカルディスクを持つ 1 つ以上のインスタンスのすべてのデータを別の ECS インスタンスに移行し、そのデータを宛先インスタンスにアタッチされたクラウドディスクに保存できます。これにより、ローカルディスクを持つソースインスタンスのデータがバックアップされます。詳細については、「サーバーを ECS インスタンスに移行する」をご参照ください。

  • ローカルディスクの損傷への対処

    ローカルディスクが損傷した場合、Alibaba Cloud はシステムイベントをトリガーし、通知、対策、およびイベントサイクルを送信します。シナリオに基づいて O&M を実行できます。詳細については、「ローカルディスクを搭載したインスタンスの O&M シナリオとシステムイベント」をご参照ください。