Lightsailスナップショットを取り出す方法 - japankun/bbs.jpnkn.com GitHub Wiki

Lightsailスナップショットを取り出す方法

必要なもの

  • VirtualBox
  • EC2を1時間程度動かすお金
  • EC2権限のあるIAMユーザー

(1) EC2インスタンスにエクスポートする

Lightsailのインスタンス管理画面からスナップショットを開き、EC2インスタンスにエクスポートする。このときEC2インスタンス権限のないIAMで行うとエラーになるので注意すること。


(2) EC2へのエクスポートを確認

エクスポートが完了するとEC2のイメージAMIにスナップショットが追加されている。


(3) ブロックデバイス名をメモする

イメージ詳細タブのブロックデバイスにある以下の太字部分をメモしておく。

/dev/sda1=snap-0123456789abcdef0:20:true:gp2:encrypted


(4) データを取り出すためのインスタンスを作成

新規インスタンスを作成する際、AMIイメージの倍以上のルートボリュームサイズにする。Lightsailが20GBだったなら40GBなどが良い。 ストレージの追加をして、メモしたブロックデバイスのスナップショットをアタッチする。このときボリュームサイズをスナップショットのサイズに合わせ、暗号化設定も合わせる必要がある。


(5) インスタンスの起動とデータ抽出

インスタンスが起動したら、ddコマンドで取り出しつつ圧縮して出力する。

EC2から取り出すときに転送料金と時間が掛かるので圧縮をかけている

例: 生データ20GBの場合、1日の保存に2円程度、1回の転送に3円程度 ※料金自体は安いがブロックデバイスの無を転送することになり、転送時間が3倍ぐらいかかるのでオススメしない。

# dd if=/dev/xvdba bs=32M count=2048 | gzip -c > CentOS-512MB-Tokyo-1-0123456789.iso.gz

(6) 作成されたCentOS-512MB-Tokyo-1-0123456789.iso.gzを適当な場所にコピーして取り出し、解凍する


(7) VirtualBoxのvboxmanageを使い、vdiに変換する

VirtualBoxのvboxmanageコマンドを使用するのでVirtualBoxをインストールしておきます。

vboxmanageコマンドの場所

  • Windows C:\Program Files\Oracle\VirtualBox\VBoxManage.exeにあります。

  • Linux /usr/bin/vboxmanageにありますが、多くの場合パスが通っていると思います。

    $ vboxmanage convertfromraw CentOS-512MB-1-0123456789.iso CentOS-512MB-1-0123456789.vdi
    

(8) ローカルのVirtualBoxで読めるスナップショットイメージが完成!


お掃除

  • EC2イメージAMIを開きイメージAMI登録を解除
  • EBSスナップショットからスナップショットを削除
  • キレイキレイ!

いかがでしたか?これでLightsailスナップショットの取り出しが完了しました (^^)