さくらのクラウド「アーカイブ共有機能」で仮想マシンイメージを別ゾーンにコピー

# 概要

先日、2020年2月27日(木)に提供開始となった「アーカイブ機能」を使えば、仮想マシン用のディスク・イメージを別ゾーンに移動したり、異なるアカウント間で簡単に共有できるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/349def6d-2e28-5ebc-c839-64749f5f5ce7.png)


# 解説

## …の前に「アーカイブ」とは？

ご存じの方は次のセクションからお読みください。さくらのクラウドに馴染みがない方には「アーカイブ」という概念が分かりづらいかもしれません。汎用的な仮想化技術での用語に置き換えると「仮想マシン・イメージ」の「テンプレート」がさくらのクラウドの「アーカイブ」です。

そもそも、さくらのクラウドにおける「仮想マシン」（VM; Virtual Machine）とは、物理的な概念の「サーバ」を、そのまま仮想的にクラウド環境上で置き換える概念です（そのため、インスタンスとは少し異なります）。物理的なサーバであれば、マシンの筐体上に CPU やメモリ、そして「ディスク」が搭載されています。さくらのクラウドでは、物理的な概念の「ディスク」を、そのまま仮想マシン上でも利用可能なのです。

つまり、さくらのクラウドの「ディスク」は仮想マシンの概念上における「ディスク・イメージ」のことであり、データを保存する「ストレージ領域」でもあります。それだけでなく、物理的なディスクと同様に、コピーしたり、ディスクだけマシンから外し、別のマシンに取り付けたり、あるいは破棄したりできる特長があります。

そして、この「ディスク」を、仮想マシン概念におけるテンプレート（のディスク・イメージ）として汎用的に扱える概念が「アーカイブ」です。アーカイブは単なるディスクと異なり、あらかじめ OS がインストール済みかつサーバとして最低限利用可能な状態にセットアップ済みのものです。さらに、アーカイブはサーバを起動する前に、直接ディスク内の情報を変更可能です。例えば、仮想マシン内の OS が認識するホスト名や IP アドレス、root 等の管理者のパスワードもアーカイブを元にした変更が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/a7977953-1d2b-bbb3-397d-4576c9b7b0c8.png)


ちなみに「パブリックアーカイブ」は、さくらのクラウド側で初期状態から OS をセットアップ済みの誰でも利用可能なアーカイブです。サーバの作成時、このパブリックアーカイブを元にディスクをコピーし、初期設定を行い起動しています。

## アーカイブを共有する前作業として、ディスクをアーカイブ化する

アーカイブを別のゾーンやアカウントと共有する前に、（ディスクの）アーカイブを作成する作業が必要です。アーカイブを作成するには、対象ディスクのメニューを開きます。

アーカイブ作成前に、第三者との共有を想定されている場合は、アーカイブの中にはセキュリティ上のリスクを伴う情報が誤って混入しないように気を付ける必要があります。例えば、さくらのクラウド API キーや、SSH の秘密鍵や、その他セキュリティ上の理由により共有すべきない情報が入っていないかどうか、くれぐれもご注意ください。

ディスクを開くには、「サーバ」一覧から対象サーバをダブルクリックし、「ディスク」のタブをクリックし、対象ディスク名をダブルクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/ed2c1aa2-4938-6610-58b9-5f0133dc7abc.png)


- あるいは、「ディスク」一覧から、対象となるディスクを探し出し（サーバ作成時のマシン名と同じ場合が多いでしょう）、ダブルクリックします。

次のディスク詳細画面では、右上の「コピー」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/d427cdbe-0b79-be64-453c-347232a09b04.png)


次の確認ダイアログでは、「アーカイブ」をクリックし、「次へ」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/4cbf9247-701e-054d-21d8-f2b27cbefa01.png)


その次の画面では「名前」に任意のアーカイブ名を入力し、「作成」をクリックします（このとき、アーカイブソースは「ディスク」が選択されたまま、変更しません。アーカイブソースとは、アーカイブを作成するにあたって元となるディスクなどの指定です）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/adb3729c-3c57-0387-b658-694832e22f20.png)


「操作確認」ダイアログでは「作成」をクリックします（アーカイブの作成は有償です）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/6b7334da-7a4a-c218-e1c8-cf78cb06307c.png)


「アーカイブ追加画面」では、アーカイブの作成完了まで待ちます。完了までにかかる時間は、ディスク容量によって変わります。おおよその完了目処は、画面上にも表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/5aeb73a1-88f3-c8b7-6a67-849b8f911e32.png)


最終的にアーカイブ作成に成功したら、「閉じる」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/e562381d-20ea-998e-798c-0666e962699f.png)


アーカイブを作成後は、共有のための作業に移ります。

## アーカイブ化したディスクを共有するために「共有キー」を作成

仮想マシン用ディスクの「アーカイブ」があれば、アーカイブに「共有キー」を設定することで、自分を含む「共有キー」を知るアカウントが対象アーカイブをコピーして利用可能になります。

左メニューの「アーカイブ」をクリックし、アーカイブ一覧から対象アーカイブ名をダブルクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/5dd138b0-b0db-34dd-67bc-6721353e1a86.png)


右上メニューの「共有を開始」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/a902a952-d70e-24c5-3c4b-a2256bdcaf17.png)


確認ダイアログが表示されますので、内容を確認の後「共有を開始」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/9c80c608-2644-0d8b-541f-24b640b56cc2.png)


画面に共有キーが表示されますので、「コピー」して安全な場所に保管した後、「閉じる」をクリックします。この共有キーを知っていれば、誰でも無条件にアーカイブが共有可能ですので、取り扱いには十分お気を付けください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/2e710fe3-3bb2-b8e7-1be2-3ea107e5e120.png)


これで、他のゾーンや他のアカウントとアーカイブが共有できる準備が調いました。


## 共有キーを元にアーカイブを作成

「共有キー」を作成もしくは知っている場合、それを元にして「アーカイブ」を作成できます。アーカイブを作成するには、対象ゾーンまたはアカウントでコントロールパネルにログインし、左メニューの「アーカイブ」をクリックし、「追加」をクリックします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/ed79b86d-4fb6-155e-aa9e-e8aa92779025.png)



次の画面では「アーカイブソース」の「共有アーカイブ」をクリックし、テキストエリアに「共有キー」を入力します。それから、「名前」等を入力し、「作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/752d1b36-73f3-d690-3911-f275f95c06c7.png)


操作確認ダイアログでは「作成」をクリックします（アーカイブはゾーンごとに料金が必要です）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/b6b05f38-2343-5fe3-1353-8b5388e17daa.png)


アーカイブ作成ダイアログで「閉じる」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/190236e4-ae7b-4a2e-b06f-ed8c2de67e81.png)


あとは、アーカイブ一覧に戻り、共有アーカイブが「転送中」から「利用可能」になるまで待ちます。もし一覧にアーカイブが表示されない場合や、有効状態を確認するには、左上のゾーン名の横にある「再読み込み」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/5618ecd6-1b1a-a0fe-aa19-e024dea37c3b.png)


あとは「利用可能」になれば、このアーカイブを元にしてディスクを作成できます。また、利用可能になったあとはアーカイブの共有を終了できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/3cd65ae5-a15c-3574-5a4e-a6665fb17f25.png)


## 共有したアーカイブを元にサーバを起動するには

アーカイブがあれば、通常のサーバ作成手順と変わりません。サーバ一覧画面から「追加」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/ad3a503a-5f75-b438-be19-1ae84711e0e7.png)


（シンプルモードの場合）ディスクイメージを選択で「マイアーカイブ」をクリックします。あとは作成したアーカイブを元に、ホスト名や作成数など、必要に応じて変更ください。シンプルモード以外であれば、パブリックアーカイブをベースにしたディスクの場合（CentOS、Ubuntu、Deiban等）、ディスクの修正が可能な場合もあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/649c8086-0210-87b3-dcaf-3aef47bc3fcc.png)



## アーカイブの共有を終了する

アーカイブの共有を終了するには、「ストレージ」→「アーカイブ」のメニューから「FTPを完了」を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/48f3c65e-fb60-ddc0-e3f5-33ce31857eb6.png)

確認ダイアログでは「FTPを完了」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13002/e7b5066a-a690-4f96-8d63-933983a68ab0.png)

あとは、アーカイブそのものを使用しない予定であれば、アーカイブを「削除」しておくと不要な料金がかかりません。

なお、FTPを完了にしますと、その時点でアーカイブを作成中のものは即時に失敗しますので、注意が必要です。また、共有を停止したいときは、アーカイブはそのままにして共有キーだけを変更することはできません。一旦共有を停止したら、再度共有時の共有キーは異なります。




# 参考

- [アカウントやリージョンを越えたアーカイブの共有が可能となる「アーカイブ共有」機能をリリースしました | さくらのクラウドニュース](https://cloud-news.sakura.ad.jp/2020/02/27/archive-sharing-function-release/)
- [アーカイブ共有機能 | さくらのクラウド ドキュメント](https://manual.sakura.ad.jp/cloud/storage/archive.html#storage-archive-sharing)