さくらのVPSのアーカイブをAPIで作成できる?実際に検証してみた

さくらのクラウド , バックアップ # API # さくらのVPS # 調べてみた

こんにちは、UOZUです!

以前、さくらのVPSからさくらのクラウドへマイグレーションする方法をご紹介しました。

こちらの記事では、コントロールパネルからVPSのディスクをアーカイブ化し、さくらのクラウドへ移行する方法をご紹介しています。

また、さくらのクラウドではAPIを利用してアーカイブを作成することもできます。

そこで今回は、さくらのVPSのディスクも、さくらのクラウドのAPIからアーカイブ化できるのか? 実際に検証してみました。

さくらのクラウドのアーカイブ作成API

さくらのクラウドには、アーカイブを作成するためのAPIが用意されています。

POST /archive

公式ドキュメントでは、以下の3種類の作成方法が紹介されています。

指定項目内容
SourceDisk既存ディスクから作成
SourceArchive既存アーカイブから作成
SizeMB空のアーカイブを作成

今回は、この SourceDisk を使って検証してみます。

まずはクラウドのディスクで試してみる

最初に、比較用として、さくらのクラウドのディスクからアーカイブを作成してみます。

今回は石狩第3ゾーン(is1c)にある20GBのディスクを利用します。

以下が実行したコマンドです。

※APIキーやディスクIDは環境に合わせて変更してください。APIキーは安全のため実行例から除外しています。

curl -sS \
  --user "${SAKURA_TOKEN}:${SAKURA_SECRET}" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "Archive": {
      "Name": "uozu-al10-backup",
      "SourceDisk": {
        "ID": "DISK_ID"
      }
    }
  }' \
  "https://secure.sakura.ad.jp/cloud/zone/is1c/api/cloud/1.1/archive" \
  | jq .

実行すると、以下の結果が返ってきました。

※レスポンスは必要な項目のみ抜粋しています。

{
  "Archive": {
    "Name": "uozu-al10-backup",
    "Availability": "migrating",
    "SizeMB": 20480
  },
  "Success": true,
  "is_ok": true
}

無事にアーカイブ作成リクエストが成功しました!

Availability が migrating となっているため、まだコピー処理中ですが、APIからのアーカイブ作成自体は正常に受け付けられています。

アーカイブ取得が進行中

VPSのディスクを指定してみる

続いて、今回の本題です。

さくらのクラウドのコントロールパネルでは、アーカイブ作成画面で「VPSディスク」を選択できます。

実際に確認すると、契約中のVPSが選択肢として表示されました。

アーカイブ画面からVPSのディスクIDを確認

選択したVPSには vps_ から始まる識別子が表示されています。

そこで、先ほど成功したAPIの SourceDisk.ID に、このVPSの識別子を指定してみます。

curl -sS \
  --user "${SAKURA_TOKEN}:${SAKURA_SECRET}" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "Archive": {
      "Name": "uozu-vps-backup",
      "SourceDisk": {
        "ID": "vps_XXXXXX"
      }
    }
  }' \
  "https://secure.sakura.ad.jp/cloud/zone/is1c/api/cloud/1.1/archive" \
  | jq .

実行結果はこちらです。

{
  "is_fatal": true,
  "status": "400 Bad Request",
  "error_code": "bad_request",
  "error_msg": "不適切な要求です。パラメータの指定誤り、入力規則違反です。入力内容をご確認ください。"
}

残念ながら、こちらは 400 Bad Request となってしまいました。

クラウドのディスクでは問題なく動作したため、APIの基本的な実行方法や認証ではなく、VPSディスクの指定方法が異なる可能性が考えられます。

なぜVPSディスクでは失敗する?

さくらのクラウドの公式APIドキュメントを確認したところ、SourceDisk を使ったアーカイブ作成方法は記載されていますが、VPSディスクを指定する方法は見当たりませんでした。

一方、公式マニュアルには、コントロールパネルから「VPSディスク」を選択してアーカイブを作成する手順が掲載されています。

この操作には、さくらの会員IDでのログインが必要と案内されています。

そのため、VPSディスクからのアーカイブ作成については、通常のクラウドディスクとは異なる処理や認証が必要なのかもしれません。

ただし、今回の400エラーだけでAPIによる作成自体が不可能と断定することはできません。

検証結果

今回の結果をまとめると、以下のとおりです。

検証内容結果
クラウドディスクの情報取得成功
クラウドディスクからアーカイブ作成成功(作成受付)
VPSディスクのコントロールパネルでの選択成功
VPSの識別子を SourceDisk.ID に指定400エラー
APIでVPSディスクから直接アーカイブ作成方法を確認できず

現時点では、さくらのVPSのアーカイブをAPIから直接作成する方法は確認できませんでした。

VPSからさくらのクラウドへ移行する場合は、従来どおりコントロールパネルからアーカイブを作成する方法が確実です。

具体的なマイグレーション方法は、以下の記事をご確認ください。

さくらのVPSから、さくらのクラウドサーバへのマイグレーション、起動まで

また、さくらのクラウドのディスクをAPIで定期的にバックアップしたい場合は、usacloudを使用する方法もあります。

usacloud を使って任意の時間にアーカイブバックアップを取得する

まとめ

今回は、さくらのVPSのディスクを、さくらのクラウドのAPIからアーカイブ化できるか検証してみました。

クラウドのディスクでは問題なく作成できたものの、VPSの識別子を直接指定した場合は400エラーとなりました。

コントロールパネルではVPSディスクを選択できるため、APIでも同様に操作できるのでは?と思いましたが、残念ながら今回は成功しませんでした。

APIからの作成方法が分かれば、VPSからクラウドへのマイグレーションをさらに自動化できそうですね。

今後も新しい情報が分かれば検証してみたいと思います!

それでは、また!

参考資料

この記事を書いた人

UOZU

ネットアシスト運用チーム10年目の運用エンジニア

さくらのクラウド検定 ベーシック (第一回)

さくらのクラウド検定 アドバンスド (第一回)

AWS Certified Solutions Architect - Associate

AWS Certified AI Practitioner