翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CLI および VM Import/Export サービスを使用して、仮想マシン (VM) イメージを Amazon マシンイメージ (AMI) として Snowball Edge デバイスにインポートできます。VM イメージをインポートした後、イメージを AMI として登録し、Amazon EC2 互換インスタンスとして起動します。
Snowball Edge デバイスを注文するジョブを作成するときに、Amazon EC2 からデバイスに AMIs を追加できます。Snowball Edge デバイスを受け取ったら、この手順を使用します。詳細については、「コンピューティングとストレージのオプションの選択」を参照してください。
AWS OpsHub を使用して VM イメージファイルをアップロードすることもできます。詳細については、「Importing an image into your device as an Amazon EC2-compatible AMI」を参照してください。
トピック
ステップ 1: VM イメージを準備し、Snowball Edge デバイスにアップロードする
VM Import/Export AWS クラウド を使用して の Amazon EC2 AMI またはインスタンスから VM イメージをエクスポートするか、選択した仮想化プラットフォームを使用して VM イメージをローカルに生成して、VM イメージを準備します。
VM Import/Export を使用して Amazon EC2 インスタンスを VM イメージとしてエクスポートするには、「VM Import/Export ユーザーガイド」の「Exporting an instance as a VM using VM Import/Export」を参照してください。VM Import/Export を使用して Amazon EC2 AMI を VM イメージとしてエクスポートするには、「VM Import/Export ユーザーガイド」の「Exporting a VM directly from an Amazon Machine Image (AMI)」を参照してください。
ローカル環境から VM イメージを生成する場合は、Snowball Edge デバイスでイメージを AMI として使用するように設定してください。環境によっては、以下の項目を設定する必要がある場合があります。
オペレーティングシステムを設定および更新します。
ホスト名を設定します。
ネットワークタイムプロトコル (NTP) が設定されていることを確認します。
必要に応じて SSH パブリックキーを含めます。キーペアのローカルコピーを作成します。詳細については、「SSH を使用した Snow Family デバイス上のコンピューティングインスタンスへの接続」を参照してください。
Snowball Edge デバイスで使用するソフトウェアをインストールして設定します。
注記
Snowball Edge デバイスのディスクスナップショットを準備するときは、次の制限に注意してください。
-
Snowball Edge は現在、RAW イメージ形式のスナップショットのインポートのみをサポートしています。
-
Snowball Edge は現在、サイズが 1 GB から 1 TB のスナップショットのインポートのみをサポートしています。
Snowball Edge デバイスの Amazon S3 バケットへの VM イメージのアップロード
VM イメージを準備したら、Snowball Edge デバイスまたはクラスターの S3 バケットにアップロードします。Snowball Edge の 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 コマンド」を参照してください。
Snowball Edge で Amazon S3 互換ストレージを使用して VM イメージをアップロードするには
put-object
コマンドを使用して、スナップショットファイルをデバイスのバケットにコピーします。aws s3api put-object --bucket
bucket-name
--keypath-to-snapshot-file
--bodysnapshot-file
--endpoint-urls3api-endpoint-ip
--profileyour-profile
詳細については、「Working with S3 objects on a Snowball Edge device」を参照してください。
ステップ 2: Snowball Edge で必要なアクセス許可を設定する
インポートを成功させるには、Snowball Edge デバイス、Amazon EC2、および ユーザーに VM Import/Export のアクセス許可を設定する必要があります。
注記
これらのアクセス許可を提供するサービスロールとポリシーは、Snowball Edge デバイスにあります。
Snowball Edge での VM Import/Export に必要なアクセス許可
インポートプロセスを開始する前に、Snowball Edge デバイスで 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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
Snowball Edge で発信者が必要とするアクセス許可
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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
Snowball Edge で 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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
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
--endpoint http://snowball-ip
:6078 --region snow --profileprofile-name
ステップ 3: VM イメージを Snowball Edge のスナップショットとしてインポートする
次のステップでは、VM イメージをスナップショットとしてデバイスにインポートします。S3Bucket
パラメータの値は、VM イメージを含むバケットの名前です。S3Key
パラメータの値は、このバケット内の VM イメージファイルへのパスです。
aws ec2 import-snapshot --disk-container "Format=RAW,UserBucket={S3Bucket=bucket-name
,S3Key=image-file
}" --endpoint http://snowball-ip
:8008 --region snow --profile profile-name
詳細については、 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"
}
}
}
注記
現在、Snowball Edge では、デバイスごとに一度に実行できるアクティブなインポートジョブは 1 つだけです。新しいインポートタスクを開始するには、現在のタスクが終了するのを待つか、クラスター内の別の使用可能なノードを選択します。必要に応じて、現在のインポートをキャンセルすることもできます。遅延を防ぐため、インポートの進行中に Snowball Edge デバイスを再起動しないでください。デバイスを再起動すると、インポートは失敗し、デバイスがアクセス可能になると進行状況が削除されます。スナップショットインポートタスクステータスのステータスをチェックするには、次のコマンドを使用します。
aws ec2 describe-import-snapshot-tasks --import-task-ids id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
ステップ 4: Snowball Edge でスナップショットを AMI として登録する
デバイスへのスナップショットのインポートが成功したら、register-image
コマンドを使用して登録できます。
注記
AMI は、そのスナップショットがすべて使用可能な場合のみ登録できます。
詳細については、 AWS CLI 「 コマンドリファレンス」の「register-image
例 register-image
コマンドの例
aws ec2 register-image \
--name ami-01
\
--description my-ami-01
\
--block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\":{\"Encrypted\":false,\"DeleteOnTermination\":true,\"SnapshotId\":\"snapshot-id
\",\"VolumeSize\":30}}]" \
--root-device-name /dev/sda1 \
--endpoint http://snowball-ip
:8008 \
--region snow \
--profile profile-name
ブロックデバイスマッピング JSON の例を以下に示します。詳細については、 コマンドリファレンスの register-image の block-device-mapping パラメータ
[
{
"DeviceName": "/dev/sda",
"Ebs":
{
"Encrypted": false,
"DeleteOnTermination": true,
"SnapshotId": "snapshot-id
",
"VolumeSize": 30
}
}
]
例 register-image
コマンドの例
{
"ImageId": "s.ami-8de47d2e397937318"
}
ステップ 5: Snowball Edge で AMI からインスタンスを起動する
インスタンスを起動するには、 AWS CLI 「 コマンドリファレンス」の「run-instances
image-id
パラメータの値は、register-image
コマンドの出力としての ImageId
の名前の値です。
aws ec2 run-instances --image-id image-id
--instance-type instance-type
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
{
"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 を使用してインスタンスを起動することもできます。詳細については、このガイドの「Launching an Amazon EC2-compatible instance」を参照してください。
Snowball Edge の追加 AMI アクション
追加の AWS CLI コマンドを使用して、スナップショットのインポートステータスのモニタリング、インポートされたスナップショットの詳細の取得、スナップショットのインポートのキャンセル、インポート後のスナップショットの削除または登録解除を行うことができます。
Snowball Edge でのスナップショットのインポートステータスのモニタリング
インポートの進行状況の現在の状態を確認するには、Amazon EC2 describe-import-snapshot-tasks
コマンドを実行します。このコマンドは、task-state
のページ分割およびフィルタリングをサポートします。
例 describe-import-snapshot-tasks
コマンドの例
aws ec2 describe-import-snapshot-tasks --import-task-ids id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
例 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]
Snowball Edge でのインポートタスクのキャンセル
インポートタスクをキャンセルするには、cancel-import-task
コマンドを実行します。
例 cancel-import-task
コマンドの例
aws ec2 cancel-import-task --import-task-id import-task-id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
例 cancel-import-task
コマンドの出力例
{
"ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6",
"PreviousState": "active",
"State": "deleting"
}
注記
完了状態でないタスクのみをキャンセルできます。
このコマンドでは、以下のパラメータはサポートされません。
[--dry-run]
[--no-dry-run]
Snowball Edge でのスナップショットの説明
スナップショットのインポート後、このコマンドを使用してスナップショットを説明できます。スナップショットをフィルタリングするには、前回のインポートタスクレスポンスからのスナップショット ID に snapshot-ids
を渡します。このコマンドは、volume-id
、status
、start-time
のページ分割およびフィルタリングをサポートします。
例 describe-snapshots
コマンドの例
aws ec2 describe-snapshots --snapshot-ids snapshot-id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
例 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]
Snowball Edge デバイスからのスナップショットの削除
所有していて不要になったスナップショットを削除するには、delete-snapshot
コマンドを使用します。
例 delete-snapshot
コマンドの例
aws ec2 delete-snapshot --snapshot-id snapshot-id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
注記
Snowball Edge では、[PENDING] (保留) 状態、または AMI のルートデバイスとして指定されたスナップショットの削除はサポートされません。
このコマンドでは、以下のパラメータはサポートされません。
-
[--dry-run]
-
[--no-dry-run]
Snowball Edge での AMI の登録解除
不要になったAMI の登録を解除するには、deregister-image
コマンドを実行します。現在、[PENDING] (保留) 状態の AMI の登録解除はサポートされていません。
例 deregister-image
コマンドの例
aws ec2 deregister-image --image-id image-id
--endpoint http://snowball-ip
:8008 --region snow --profile profile-name
このコマンドでは、以下のパラメータはサポートされません。
[--dry-run]
[--no-dry-run]