翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Snow Family デバイスに仮想マシンイメージをインポートする
AWS CLI および VM Import/Export サービスを使用して、Amazon マシンイメージ (AMI) として Snow Family デバイスに仮想マシン (VM) イメージをインポートできます。VM イメージをインポートしたら、イメージを AMI として登録し、Amazon EC2-compatibleインスタンスとして起動します。
Snow Family デバイスを注文するジョブを作成するときに、Amazon EC2 からデバイスに AMIs を追加できます。Snow Family デバイスを受け取ったら、この手順を使用します。詳細については、「ステップ 2: コンピューティングとストレージのオプションを選択する」を参照してください。
AWS OpsHub を使用して VM イメージファイルをアップロードすることもできます。詳細については、このガイドの「Amazon EC2-compatible AMI としてデバイスにイメージをインポートする」を参照してください。
トピック
ステップ 1: VM イメージを準備し、Snow Family デバイスにアップロードする
VM Import/Export AWS クラウド を使用して の Amazon EC2 AMI またはインスタンスから VM イメージをエクスポートするか、選択した仮想化プラットフォームを使用して VM イメージをローカルに生成して VM イメージを準備します。
VM Import/Export を使用して Amazon EC2 インスタンスを VM イメージとしてエクスポートするには、VM Import/Export ユーザーガイドの VM Import/Export を使用してインスタンスを VM としてエクスポートするを参照してください。VM Import/Export を使用して Amazon EC2 AMI を VM イメージとしてエクスポートするには、VM Import/Export ユーザーガイドの「Amazon マシンイメージ (AMI) から直接 VM をエクスポートする」を参照してください。
ローカル環境から VM イメージを生成する場合は、そのイメージが Snow Family デバイスの AMI として使用するように設定されていることを確認します。環境によっては、次の項目を設定する必要がある場合があります。
オペレーティングシステムを設定および更新します。
ホスト名を設定します。
ネットワークタイムプロトコル (NTP) が設定されていることを確認します。
必要に応じて SSH パブリックキーを含めます。キーペアのローカルコピーを作成します。詳細については、「SSH を使用して Snowball Edge のコンピューティングインスタンスに接続する」を参照してください。
Snow Family デバイスで使用するソフトウェアをインストールして設定します。
注記
Snow Family デバイスのディスクスナップショットを準備するときは、次の制限に注意してください。
-
Snow Family デバイスは現在、RAW イメージ形式のスナップショットのインポートのみをサポートしています。
-
Snow Family デバイスは現在、1 GB から 1 TB までのサイズのスナップショットのインポートのみをサポートしています。
Snow Family デバイスの Amazon S3 バケットへの VM イメージのアップロード
VM イメージを準備したら、Snow Family デバイスまたはクラスターの S3 バケットにアップロードします。Snow Family デバイスの S3 アダプターまたは Amazon S3 互換ストレージを使用して、スナップショットをアップロードできます。
S3 アダプターを使用して仮想マシンイメージをアップロードするには
cp
コマンドを使用して、VM イメージファイルをデバイスのバケットにコピーします。aws s3 cp
image-path
s3://S3-bucket-name
--endpoint http://S3-object-API-endpoint:443
--profileprofile-name
詳細については、このガイドの「サポートされている AWS CLI コマンド」を参照してください。
Snow Family デバイスで Amazon S3 互換ストレージを使用して VM イメージをアップロードするには
put-object
コマンドを使用して、スナップショットファイルをデバイスのバケットにコピーします。aws s3api put-object --bucket
bucket-name
--keypath-to-snapshot-file
--bodysnapshot-file
--profileyour-profile
--endpoint-urls3api-endpoint-ip
詳細については、「Snowball Edge デバイスの S3 オブジェクトの使用」を参照してください。
ステップ 2: 必要なアクセス許可を設定する
インポートを成功させるには、Snow Family デバイス、Amazon EC2、および ユーザーに VM Import/Export のアクセス許可を設定する必要があります。
注記
これらのアクセス許可を提供するサービスロールとポリシーは、Snow Family デバイスにあります。
VM Import/Export に必要なアクセス許可
インポートプロセスを開始する前に、Snow Family デバイスで VM Import/Export がロールを引き受けることを許可する信頼ポリシーを持つ IAM ロールを作成する必要があります。デバイス上の VM Import/Export がデバイスの S3 バケットに保存されているイメージにアクセスできるようにする追加のアクセス許可がロールに付与されます。
信頼ポリシー JSON ファイルを作成します。
次に、VM Import/Export が S3 バケットからインポートする必要があるスナップショットにアクセスするために、ロールにアタッチする必要がある信頼ポリシーの例を示します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }
信頼ポリシー JSON ファイルを使用してロールを作成します。
ロール名は vmimport とすることができます。コマンドで --role-name オプションを使って、これを変更できます。
aws iam create-role --role-name
role-name
--assume-role-policy-document file:///trust-policy-json-path
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
create-role
コマンドからの出力例を次に示します。
{ "Role":{ "AssumeRolePolicyDocument":{ "Version":"2012-10-17", "Statement":[ { "Action":"sts:AssumeRole", "Effect":"Allow", "Principal":{ "Service":"vmie.amazonaws.com" } } ] }, "MaxSessionDuration":3600, "RoleId":"AROACEMGEZDGNBVGY3TQOJQGEZAAAABQBB6NSGNAAAABPSVLTREPY3FPAFOLKJ3", "CreateDate":"2022-04-19T22:17:19.823Z", "RoleName":"vmimport", "Path":"/", "Arn":"arn:aws:iam::123456789012:role/vmimport" } }
ロールのポリシーを作成します。
次の例のポリシーは、Amazon S3 へのアクセスに必要な最小限のアクセス許可を備えています。Amazon S3 バケット名を、イメージが保存されているバケット名に変更します。スタンドアロンの Snowball Edge デバイスの場合は、snow-id
をジョブ ID に変更します。デバイスのクラスターの場合は、snow-id
をクラスター ID に変更します。プレフィックスを使用して、VM Import/Export でスナップショットをインポートできる場所をさらに絞り込むことができます。このようなポリシー JSON ファイルを作成します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:GetMetadata" ], "Resource":[ "arn:aws:s3:snow:
account-id
:snow/snow-id
/bucket/import-snapshot-bucket-name
", "arn:aws:s3:snow:account-id
:snow/snow-id
/bucket/import-snapshot-bucket-name
/*" ] } ] }
ポリシーファイルを使用してポリシーを作成します。
aws iam create-policy --policy-name
policy-name
--policy-document file:///policy-json-file-path
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
create-policy コマンドからの出力例を次に示します。
{ "Policy":{ "PolicyName":"vmimport-resource-policy", "PolicyId":"ANPACEMGEZDGNBVGY3TQOJQGEZAAAABOOEE3IIHAAAABWZJPI2VW4UUTFEDBC2R", "Arn":"arn:aws:iam::123456789012:policy/vmimport-resource-policy", "Path":"/", "DefaultVersionId":"v1", "AttachmentCount":0, "IsAttachable":true, "CreateDate":"2020-07-25T23:27:35.690000+00:00", "UpdateDate":"2020-07-25T23:27:35.690000+00:00" } }
ポリシーをロールにアタッチします。
前述のロールにポリシーをアタッチし、必要なリソースにアクセスする許可を付与します。これにより、ローカル VM Import/Export サービスが、デバイスの Amazon S3 からスナップショットをダウンロードできるようになります。
aws iam attach-role-policy --role-name
role-name
--policy-arn arn:aws:iam::123456789012:policy/policy-name
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
発信者が必要とするアクセス許可
Snowball Edge VM Import/Export が引き受けるロールに加えて、ロールを VMIE に渡す許可がユーザーに付与されていることも確認する必要があります。デフォルトのルートユーザーを使用してインポートを実行する場合、ルートユーザーに必要なすべてのアクセス許可は既に存在するため、このステップをスキップしてステップ 3 に進むことができます。
インポートを実行するユーザーに、次の 2 つの IAM アクセス許可をアタッチします。
-
pass-role
-
get-role
ロールのポリシーを作成します。
以下は、IAM ロールに対する get-role
および pass-role
のアクションの実行を、ユーザーに許可するポリシーの例です。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action": "iam:GetRole", "Resource":"*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "importexport.amazonaws.com" } } } ] }
ポリシーファイルを使用してポリシーを作成します。
aws iam create-policy --policy-name
policy-name
--policy-document file:///policy-json-file-path
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
create-policy コマンドからの出力例を次に示します。
{ "Policy":{ "PolicyName":"caller-policy", "PolicyId":"ANPACEMGEZDGNBVGY3TQOJQGEZAAAABOOOTUOE3AAAAAAPPBEUM7Q7ARPUE53C6R", "Arn":"arn:aws:iam::123456789012:policy/caller-policy", "Path":"/", "DefaultVersionId":"v1", "AttachmentCount":0, "IsAttachable":true, "CreateDate":"2020-07-30T00:58:25.309000+00:00", "UpdateDate":"2020-07-30T00:58:25.309000+00:00" } }
ポリシーの生成後、Amazon EC2 API または CLI オペレーションを呼び出してスナップショットをインポートする IAM ユーザーに、ポリシーをアタッチします。
aws iam attach-user-policy --user-name
your-user-name
--policy-arn arn:aws:iam::123456789012:policy/policy-name
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
デバイスで Amazon EC2 APIs呼び出すために必要なアクセス許可
スナップショットをインポートするには、IAM ユーザーに ec2:ImportSnapshot
のアクセス許可が必要です。ユーザーのアクセスを制限する必要がない場合は、ec2:*
のアクセス許可を使用して、Amazon EC2 のフルアクセス許可を付与します。次に、デバイス上の Amazon EC2 用に付与または制限できるアクセス許可を示します。以下の内容を含むポリシーファイルを作成します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "ec2:ImportSnapshot", "ec2:DescribeImportSnapshotTasks", "ec2:CancelImportTask", "ec2:DescribeSnapshots", "ec2:DeleteSnapshot", "ec2:RegisterImage", "ec2:DescribeImages", "ec2:DeregisterImage" ], "Resource":"*" } ] }
ポリシーファイルを使用してポリシーを作成します。
aws iam create-policy --policy-name
policy-name
--policy-document file:///policy-json-file-path
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
create-policy コマンドからの出力例を次に示します。
{ "Policy": { "PolicyName": "ec2-import.json", "PolicyId": "ANPACEMGEZDGNBVGY3TQOJQGEZAAAABQBGPDQC5AAAAATYN62UNBFYTF5WVCSCZS", "Arn": "arn:aws:iam::123456789012:policy/ec2-import.json", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "IsAttachable": true, "CreateDate": "2022-04-21T16:25:53.504000+00:00", "UpdateDate": "2022-04-21T16:25:53.504000+00:00" } }
ポリシーの生成後、Amazon EC2 API または CLI オペレーションを呼び出してスナップショットをインポートする IAM ユーザーに、ポリシーをアタッチします。
aws iam attach-user-policy --user-name
your-user-name
--policy-arn arn:aws:iam::123456789012:policy/policy-name
--profileprofile-name
--endpoint http://snowball-ip
:6078 --region snow
ステップ 3: VM イメージをデバイス上のスナップショットとしてインポートする
次のステップでは、VM イメージをスナップショットとしてデバイスにインポートします。S3Bucket
パラメータの値は、VM イメージを含むバケットの名前です。S3Key
パラメータの値は、このバケット内の VM イメージファイルへのパスです。
aws ec2 import-snapshot --disk-container "Format=RAW,UserBucket={S3Bucket=
bucket-name
,S3Key=image-file
}" --profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
詳細については、 AWS CLI 「 コマンドリファレンス」の「 import-snapshot
このコマンドでは、以下のスイッチはサポートされません。
[--client-data
value
][--client-token
value
][--dry-run]
[--no-dry-run]
[--encrypted]
[--no-encrypted]
[--kms-key-id
value
][--tag-specifications
value
]
例 import-snapshot
コマンドの出力
{ "ImportTaskId":"s.import-snap-1234567890abc", "SnapshotTaskDetail":{ "DiskImageSize":2.0, "Encrypted":false, "Format":"RAW", "Progress":"3", "Status":"active", "StatusMessage":"pending", "UserBucket":{ "S3Bucket":"bucket", "S3Key":"vmimport/image01" } } }
注記
Snow Family デバイスでは、現在、デバイスごとに一度に実行できるアクティブなインポートジョブは 1 つだけです。新しいインポートタスクを開始するには、現在のタスクが終了するのを待つか、クラスター内の別の使用可能なノードを選択します。必要に応じて、現在のインポートをキャンセルすることもできます。遅延を防ぐため、インポート中は Snow Family デバイスを再起動しないでください。デバイスを再起動すると、インポートは失敗し、デバイスがアクセス可能になると進行状況が削除されます。スナップショットインポートタスクステータスのステータスをチェックするには、次のコマンドを使用します。
aws ec2 describe-import-snapshot-tasks --import-task-ids
id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
ステップ 4: スナップショットを AMI として登録する
デバイスへのスナップショットのインポートが成功したら、register-image
コマンドを使用して登録できます。
注記
AMI を登録できるのは、そのすべてのスナップショットが利用可能な場合のみです。
詳細については、 コマンドリファレンスの「register-image
例 register-image
コマンドの
aws ec2 register-image \ --name
ami-01
\ --descriptionmy-ami-01
\ --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"Encrypted\":false,\"DeleteOnTermination\":true,\"SnapshotId\":\"snapshot-id
\",\"VolumeSize\":30}}]" \ --root-device-name /dev/sda1 \ --profileprofile-name
\ --endpoint http://snowball-ip
:8008 \ --region snow
ブロックデバイスマッピング JSON の例を以下に示します。詳細については、 AWS CLI コマンドリファレンスblock-device-mapping の register-image の パラメータ
[ { "DeviceName": "/dev/sda", "Ebs": { "Encrypted": false, "DeleteOnTermination": true, "SnapshotId": "
snapshot-id
", "VolumeSize": 30 } } ]
例 register-image
コマンドの
{ "ImageId": "s.ami-8de47d2e397937318" }
ステップ 5: AMI からインスタンスを起動する
インスタンスを起動するには、 AWS CLI コマンドリファレンスの「run-instances
image-id
パラメータの値は、register-image
コマンドの出力としてImageId
の名前の値です。
aws ec2 run-instances --image-id
image-id
--instance-typeinstance-type
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
{ "Instances":[ { "SourceDestCheck":false, "CpuOptions":{ "CoreCount":1, "ThreadsPerCore":2 }, "InstanceId":"s.i-12345a73123456d1", "EnaSupport":false, "ImageId":"s.ami-1234567890abcdefg", "State":{ "Code":0, "Name":"pending" }, "EbsOptimized":false, "SecurityGroups":[ { "GroupName":"default", "GroupId":"s.sg-1234567890abc" } ], "RootDeviceName":"/dev/sda1", "AmiLaunchIndex":0, "InstanceType":"sbe-c.large" } ], "ReservationId":"s.r-1234567890abc" }
注記
AWS OpsHub を使用してインスタンスを起動することもできます。詳細については、このガイドの「Amazon EC2-compatibleインスタンスの起動」を参照してください。
追加の AMI アクション
追加の AWS CLI コマンドを使用して、スナップショットのインポートステータスのモニタリング、インポートされたスナップショットの詳細の取得、スナップショットのインポートのキャンセル、インポート後のスナップショットの削除または登録解除を行うことができます。
スナップショットのインポートステータスのモニタリング
インポートの進行状況の現在の状態を確認するには、Amazon EC2 describe-import-snapshot-tasks
コマンドを実行します。このコマンドは、 でのページ分割とフィルタリングをサポートしますtask-state
。
例 describe-import-snapshot-tasks
コマンドの
aws ec2 describe-import-snapshot-tasks --import-task-ids
id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
例 describe-import-snapshot-tasks
コマンド出力の
{ "ImportSnapshotTasks": [ { "ImportTaskId": "s.import-snap-8f6bfd7fc9ead9aca", "SnapshotTaskDetail": { "Description": "Created by AWS-Snowball-VMImport service for s.import-snap-8f6bfd7fc9ead9aca", "DiskImageSize": 8.0, "Encrypted": false, "Format": "RAW", "Progress": "3", "SnapshotId": "s.snap-848a22d7518ad442b", "Status": "active", "StatusMessage": "pending", "UserBucket": { "S3Bucket": "bucket1", "S3Key": "image1" } } } ] }
注記
このコマンドは、過去 7 日以内に正常に完了したタスク、または削除済みとしてマークされたタスクの出力のみを表示します。フィルタリングは Name=task-state
、Values=active | deleting | deleted |
completed
のみをサポートします
このコマンドは、以下のパラメータをサポートしていません。
[--dry-run]
[--no-dry-run]
インポートタスクのキャンセル
インポートタスクをキャンセルするには、cancel-import-task
コマンドを実行します。
例 cancel-import-task
コマンドの
aws ec2 cancel-import-task --import-task-id
import-task-id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
例 cancel-import-task
コマンド出力の
{ "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6", "PreviousState": "active", "State": "deleting" }
注記
完了状態でないタスクのみをキャンセルできます。
このコマンドは、以下のパラメータをサポートしていません。
[--dry-run]
[--no-dry-run]
スナップショットの説明
スナップショットのインポート後、このコマンドを使用してスナップショットを説明できます。スナップショットをフィルタリングするには、前回のインポートタスクレスポンスからのスナップショット ID に snapshot-ids
を渡します。このコマンドは、、、および でのページ分割volume-id
status
とフィルターをサポートしますstart-time
。
例 describe-snapshots
コマンドの
aws ec2 describe-snapshots --snapshot-ids
snapshot-id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
例 describe-snapshots
コマンド出力の
{ "Snapshots": [ { "Description": "Created by AWS-Snowball-VMImport service for s.import-snap-8f6bfd7fc9ead9aca", "Encrypted": false, "OwnerId": "123456789012", "SnapshotId": "s.snap-848a22d7518ad442b", "StartTime": "2020-07-30T04:31:05.032000+00:00", "State": "completed", "VolumeSize": 8 } ] }
このコマンドは、以下のパラメータをサポートしていません。
[--restorable-by-user-ids
value
][--dry-run]
[--no-dry-run]
Snow Family デバイスからのスナップショットの削除
所有していて不要になったスナップショットを削除するには、delete-snapshot
コマンドを使用します。
例 delete-snapshot
コマンドの
aws ec2 delete-snapshot --snapshot-id
snapshot-id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
注記
Snowball Edge では、[PENDING] (保留) 状態、または AMI のルートデバイスとして指定されたスナップショットの削除はサポートされません。
このコマンドは、以下のパラメータをサポートしていません。
-
[--dry-run]
-
[--no-dry-run]
AMI の登録解除
不要になったAMI の登録を解除するには、deregister-image
コマンドを実行します。現在、[PENDING] (保留) 状態の AMI の登録解除はサポートされていません。
例 deregister-image
コマンドの
aws ec2 deregister-image --image-id
image-id
--profileprofile-name
--endpoint http://snowball-ip
:8008 --region snow
このコマンドは、以下のパラメータをサポートしていません。
[--dry-run]
[--no-dry-run]