AWS以外のクラウドサービスで作成した仮想サーバのイメージをAWSで使用する場合、変換処理が必要になる。
今回は仮想サーバのイメージファイル(qcow2 : キューコウツー)をAWSに対応しているファイル形式(raw : ラウ)に変換する手順を記載する。
QEMU-IMG : qcow2形式ファイルをrawに変換するツール
QEMU-IMGというツールで変換をすることができる。
Windowsの場合は下記から、インストールする。
変換手順
変換したイメージをAWSのオブジェクトストレージにアップロード
- regisonとバケットのURLの確認
東京リージョン : ap-northeast-1
https://bucket.s3-ap-northeast-1.amazonaws.com
https://バケット名-s3-ap-northeast-1.amazonaws.com
- ロールの設定
aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json
- ファイルのアップロード
aws s3 cp server.raw s3://バケット名
* スナップショットのアップロード
aws ec2 import-snapshot --description "sever image" --disk-container file://container.json
* 各タスクの進捗状況確認
aws ec2 describe-import-snapshot-tasks
* 個別タスクの進捗状況確認
aws ec2 describe-import-snapshot-tasks --import-task-ids タスクID
* タスクのキャンセル
aws ec2 cancel-import-task --import-task-id タスクID
aws ec2 get-console-output --instance-id インスタンスID
メモ
仮想化タイプ
PV (paravirtual, 準仮想化)
起動方法は2種類提供ある。
内1つはAKIを使う方法。
EC2 側であらかじめAWS上に用意された kernel (AKI) と initrd (ARI) を利用して起動し、
最後にルートデバイスとしてユーザが選択したボリュームをマウント。
ルートデバイスの /boot に kernel が含まれていようと、利用される kernel は AKI のものになる。
HVM (Hardware-assited VM)
ルートデバイスにあるブートローダから、デバイス内に含まれる kernel を起動。
つまり、ブート領域 (GPT or MBR) とブートローダ (grub など) が必要
デバイスファイル名
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/device_naming.html
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html?icmpid=docs_ec2_console
LVMのマウント