

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Snowball Edge での Amazon EC2-compatibleコンピューティングインスタンスの使用
<a name="using-ec2"></a>

`sbe1`、`sbe-c`、`sbe-g` のインスタンスタイプを使用して、Snowball Edge でホストされる Amazon EC2 互換コンピューティングインスタンスを実行できます。`sbe1` インスタンスタイプは、Snowball Edge Storage Optimized オプションを備えたデバイスで動作します。`sbe-c` インスタンスタイプは、Snowball Edge Compute Optimized オプションを備えたデバイスで動作します。サポートされているインスタンスタイプについては[Snowball Edge デバイスのコンピューティングインスタンスのクォータ](ec2-edge-limits.md)を参照してください。

Snowball Edge デバイスオプションの使用をサポートする 3 つのコンピューティングインスタンスタイプは、すべて Snowball Edge デバイスに固有です。これらのインスタンスでは、クラウドベースのインスタンスと同様に、Amazon Machine Image (AMI) を起動する必要があります。クラウド上のインスタンスのベースイメージとなる AMI を選択してから、Snowball Edge ジョブを作成します。

Snowball Edge でコンピューティングインスタンスを使用するには、Snowball Edge デバイスを注文するジョブを作成し、AMIs を指定します。これを行うには[AWS Snow ファミリーマネジメントコンソール](https://console.aws.amazon.com/snowfamily/home)、、 AWS CLI、またはいずれかの AWS SDKs を使用します。通常の場合、インスタンスを使用するには、ジョブの作成前にハウスキーピングの前提条件をいくつか実行する必要があります。

デバイスが到着したら、AMI とインスタンスの管理を開始できます。Snowball Edge 上のインスタンスは、Amazon EC2 と互換性のあるエンドポイントを使用して管理できます。このタイプのエンドポイントは、Amazon EC2 互換の CLI コマンドや AWS SDK のアクションの大部分をサポートします。Snowball Edge AWS マネジメントコンソール の を使用して AMIs とコンピューティングインスタンスを管理することはできません。

デバイスを使い終わったら、 に返します AWS。デバイスをインポートジョブで使用した場合、Amazon S3 アダプターまたは NFS インターフェイスを使用して転送されたデータは、Amazon S3 にインポートされます。それ以外の場合、デバイスの返却時にデバイスが完全に消去されます AWS。この消去作業は National Institute of Standards and Technology (NIST) 800-88 基準に準拠しています。

**重要**  
Snowball Edge デバイスでの暗号化AMIs の使用はサポートされていません。
Snowball Edge で実行されているコンピューティングインスタンスのデータは にインポートされません AWS。

**Topics**
+ [Snowball Edge の Amazon EC2 と Amazon EC2-compatibleインスタンスの違い](#ec2-compatible-sbe)
+ [Snowball Edge のコンピューティングインスタンスの料金](#pricing-for-ec2-edge)
+ [Snowball Edge での Amazon EC2-compatible AMI の使用](using-ami.md)
+ [Snowball Edge デバイスに仮想マシンイメージをインポートする](ec2-ami-import-cli.md)
+ [Snowball Edge デバイスで AWS CLI および API オペレーションを使用する](using-ec2-cli-specify-region.md)
+ [Snowball Edge のコンピューティングインスタンスのネットワーク設定](network-config-ec2.md)
+ [SSH を使用して Snowball Edge のコンピューティングインスタンスに接続する](ssh-ec2-edge.md)
+ [同じ Snowball Edge 上の EC2 互換コンピューティングインスタンスから S3 バケットへのデータ転送](data-transfer-ec2-s3-edge.md)
+ [EC2 互換インスタンスの自動起動](using-ec2-edge-client.md)
+ [Snowball Edge での Amazon EC2-compatibleエンドポイントの使用](using-ec2-endpoint.md)
+ [Snowball Edge での起動テンプレートを使用した EC2-compatibleインスタンスの自動起動](ec2-autostart.md)
+ [Snowball Edge での Amazon EC2-compatibleインスタンスでの Snow 用インスタンスメタデータサービスの使用](imds.md)
+ [Snowball Edge での Amazon EC2-compatibleインスタンスでのブロックストレージの使用](edge-ebs.md)
+ [Snowball Edge のセキュリティグループによるネットワークトラフィックの制御](edge-security-groups.md)
+ [Snowball Edge でサポートされている EC2-compatibleインスタンスメタデータとユーザーデータ](edge-compute-instance-metadata.md)
+ [Snowball Edge で実行されている EC2-compatibleインスタンスの停止](#managing-ec2-instances)

## Snowball Edge の Amazon EC2 と Amazon EC2-compatibleインスタンスの違い
<a name="ec2-compatible-sbe"></a>

AWS Snowball Edge EC2-compatibleインスタンスを使用すると、お客様は EC2-compatibleAMIs。 EC2 APIs 

## Snowball Edge のコンピューティングインスタンスの料金
<a name="pricing-for-ec2-edge"></a>

コンピューティングインスタンスの使用には追加料金がかかります。詳細については、「[AWS Snowball Edge 料金](https://aws.amazon.com/snowball-edge/pricing)」を参照してください。

# Snowball Edge での Amazon EC2-compatible AMI の使用
<a name="using-ami"></a>

 AWS Snowball Edge デバイスで Amazon マシンイメージ (AMI) を使用するには、まずデバイスに追加する必要があります。AMI は次の方法で追加できます。
+ デバイスの注文時に、AMI をアップロードします。
+ デバイスがお客様のサイトに到着したら、AMI を追加します。

Snowball Edge に付属する Amazon EC2 コンピューティングインスタンスは、デバイスに追加する Amazon EC2 AMIs に基づいて起動されます。Amazon EC2 互換 AMI は、Linux と Microsoft Windows の両方のオペレーティングシステムをサポートします。

**リナックス**  
以下の Linux オペレーティングシステムがサポートされます。
+ [Snowball Edge 用 Amazon Linux 2](https://aws.amazon.com/marketplace/pp/B08Q76DLTM/             )
**注記**  
この AMI の最新バージョンは、Snowball Edge の発送準備が整う時点で提供されます AWS。受け取り時にデバイスでこの AMI のバージョンを確認するには、「[Snowball Edge 用 Amazon Linux 2 AMI のバージョンの確認](#snow-al-version)」を参照してください。
+ [CentOS 7 (x86\$164) - with Updates HVM](https://aws.amazon.com/marketplace/pp/B00O7WM7QW)
+ Ubuntu 16.04 LTS - Xenial (HVM)
**注記**  
Ubuntu 16.04 LTS - Xenial (HVM) イメージは ではサポートされなくなりましたが AWS Marketplace、Amazon EC2 VM Import/Export を介して Snowball Edge デバイス上で使用できAMIs でローカルで実行されます。
+ [Ubuntu 20.04 LTS - Focal](https://aws.amazon.com/marketplace/pp/prodview-iftkyuwv2sjxi)
+ [Ubuntu 22.04 LTS - Jammy](https://aws.amazon.com/marketplace/pp/prodview-f2if34z3a4e3i)

セキュリティのベストプラクティスとして、新しい Amazon Linux 2 AMIs がリリースされたら、Amazon Linux 2 AMIs を Snowball Edge でup-to-date状態に保ちます。「[Snowball Edge での Amazon Linux 2 AMIs の更新](update-ami.md)」を参照してください。

**Windows**  
以下の Windows オペレーティングシステムがサポートされます。
+ Windows Server 2012 R2
+ Windows Server 2016
+ [Windows Server 2019]

VM Import/Export AWS を使用して Windows 仮想マシン (VM) イメージを にインポートすることで、デバイスに Windows AMIs を追加できます。または、デバイスがサイトにデプロイされた直後に、デバイスにイメージをインポートすることもできます。詳細については、「[Snowball Edge への Microsoft Windows AMI の追加](#windows-ami)」を参照してください。

**注記**  
を起点とする Windows AMIs AWS をデバイスに追加することはできません。  
UEFI はサポートされていないため、ローカルにインポートする AMI は BIOS ブートモードにする必要があります。

 Snowball Edge は Bring Your Own License (BYOL) モデルをサポートしています。詳細については、「[Snowball Edge への Microsoft Windows AMI の追加](#windows-ami)」を参照してください。

**注記**  
AWS Snowball Edge EC2-compatibleインスタンスを使用すると、お客様は EC2-compatibleAMIs。 EC2 APIs 

**Topics**
+ [Snowball Edge を注文するジョブの作成時に AMI を追加する](#add-ami-order)
+ [から Snowball Edge AWS Marketplace への AMI の追加](#add-marketplace-ami)
+ [デバイスの受信後に Snowball Edge に AMI を追加する](#add-ami-locally)
+ [Snowball Edge への Microsoft Windows AMI の追加](#windows-ami)
+ [VM イメージを Snowball Edge にインポートする](#import-vm-image)
+ [Snowball Edge 用の最新の Amazon Linux 2 AMI のエクスポート](#export-latest-al2-ami)

## Snowball Edge を注文するジョブの作成時に AMI を追加する
<a name="add-ami-order"></a>

デバイスを注文する際、 AWS Snow ファミリーマネジメントコンソールの **[コンピューティングに EC2 インスタンスを使用 - オプション]** セクションで AMI を選択することで、デバイスに AMI を追加できます。**[コンピューティングに EC2 インスタンスを使用 - オプション]** には、デバイスにロードできるすべての AMI が一覧表示されます。AMI は以下のカテゴリに分類されます。
+ ** AWS Marketplace からの AMIs ** — サポートされている AMIs のリストから作成された AMIs。 AWS Marketplace でサポートされている AMI から AMIs「」を参照してください[から Snowball Edge AWS Marketplace への AMI の追加](#add-marketplace-ami)。
+ **VM Import/Export を使用してアップロードされた AMI** — デバイスの注文時に、VM Import/Export を使用してアップロードされた AMI がコンソールに一覧表示されます。詳細については、「**VM Import/Export ユーザーガイド」の「[VM Import/Export を使用してイメージとして VM をインポートする](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html)」を参照してください。サポートされる仮想化環境の詳細については、[VM Import/Export 要件](https://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html)を参照してください。

## から Snowball Edge AWS Marketplace への AMI の追加
<a name="add-marketplace-ami"></a>

インスタンスを起動 AWS Marketplace し AWS Marketplace 、そこから AMIs を作成し、Snow デバイスを注文するのと同じリージョンで AMI を設定することで、Snowball Edge デバイスに から多くの AMI を追加できます。次に、デバイスを注文するジョブを作成するときに、デバイスに AMI を含めることを選択できます。Marketplace から AMI を選択するときは、サポートされている製品コードとプラットフォームがあることを確認してください。

**Topics**
+ [Snowball Edge の AWS Marketplace AMIs の製品コードとプラットフォームの詳細を確認する](#check-marketplace-ami-codes-snb)
+ [Snowball Edge 用 Amazon Linux 2 AMI のバージョンの確認](#snow-al-version)
+ [Snowball Edge デバイスの AMI を設定する](#configure-ami-snow-device)

### Snowball Edge の AWS Marketplace AMIs の製品コードとプラットフォームの詳細を確認する
<a name="check-marketplace-ami-codes-snb"></a>

から AWS Marketplace Snowball Edge デバイスに AMI を追加するプロセスを開始する前に、AMI の製品コードとプラットフォームの詳細が でサポートされていることを確認してください AWS リージョン。

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. ナビゲーションバーから、インスタンスを起動するリージョンと、Snowball Edge デバイスを注文するジョブを作成するリージョンを選択します。お客様は場所に関係なく、使用できるリージョンをどれでも選択できます。

1. ナビゲーションペインで [**AMI**] を選択してください。

1. フィルタと検索オプションを使用すると、表示される AMI の範囲を限定して、条件に一致する AMI のみを一覧表示できます。たとえば、 によって提供される AMIs の場合は AWS Marketplace、**パブリックイメージ**を選択します。次に、検索オプションを使用して、AMI のリストに表示される範囲を指定します。
   + (新しいコンソール) **[検索]** バーをクリックし、メニューから **[所有者エイリアス]**、[=] 演算子の順に選択し、値として **[amazon]** を選択します。
   + (旧コンソール) **[Search]** (検索) バーを選択し、メニューから **[Owner]** (所有者)、次に値として**[Amazon images]** (Amazon イメージ) を選択します。
**注記**  
からの AMIs**ソース**列に **aws-marketplace** AWS Marketplace が含まれます。

1. **[AMI ID]** 列で、AMI の AMI ID を選択します。

1. AMI の **[イメージの概要]** で、**[製品コード]** がリージョンでサポートされていることを確認します。詳細については下記の表を参照してください。  
**サポートされている AMI AWS Marketplace 製品コード**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/snowball/latest/developer-guide/using-ami.html)

1. 次に、**[プラットフォームの詳細]** に、以下のリストからのいずれかのエントリが含まれていることも確認します。
   + Amazon Linux、Ubuntu、または Debian
   + Red Hat Linux bring-your-own-license
   + Amazon RDS for Oracle bring-your-own-license
   + Windows bring-your-own-license

### Snowball Edge 用 Amazon Linux 2 AMI のバージョンの確認
<a name="snow-al-version"></a>

Snowball Edge の Snowball Edge 用 Amazon Linux 2 AMI のバージョンを確認するには、次の手順に従います。続行する AWS CLI 前に、 の最新バージョンをインストールします。詳細については、「 AWS Command Line Interface ユーザーガイド[」の「 の最新バージョンのインストールまたは更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」を参照してください。
+ `describe-images` AWS CLI コマンドを使用して、AMI の説明を表示します。バージョンは説明に含まれています。前のステップで使用したパブリックキー証明書を指定します。詳細については、 AWS CLI 「 コマンドリファレンス」の[「describe-images](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-images.html)」を参照してください。

  ```
  aws ec2 describe-images --endpoint http://snow-device-ip:8008 --region snow                    
  ```  
**Example `describe-images` コマンドの出力例**  

  ```
  {
      "Images": [
          {
              "CreationDate": "2024-02-12T23:24:45.705Z",
              "ImageId": "s.ami-02ba84cb87224e16e",
              "Public": false,
              "ProductCodes": [
                  {
                      "ProductCodeId": "avyfzznywektkgl5qv5f57ska",
                      "ProductCodeType": "marketplace"
                  }
              ],
              "State": "AVAILABLE",
              "BlockDeviceMappings": [
                  {
                      "DeviceName": "/dev/xvda",
                      "Ebs": {
                          "DeleteOnTermination": true,
                          "Iops": 0,
                          "SnapshotId": "s.snap-0efb49f2f726fde63",
                          "VolumeSize": 8,
                          "VolumeType": "sbp1"
                      }
                  }
              ],
              "Description": "Snow Family Amazon Linux 2 AMI 2.0.20240131.0 x86_64 HVM gp2",
              "EnaSupport": false,
              "Name": "amzn2-ami-snow-family-hvm-2.0.20240131.0-x86_64-gp2-b7e7f8d2-1b9e-4774-a374-120e0cd85d5a",
              "RootDeviceName": "/dev/xvda"
          }
      ]
  }
  ```

  この例では、Snowball Edge 用の Amazon Linux 2 AMI のバージョンは です`2.0.20240131.0`。これは `Description` の名前の値に含まれています。

### Snowball Edge デバイスの AMI を設定する
<a name="configure-ami-snow-device"></a>

1. Amazon EC2 コンソールの [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) を開いてください。

1. でサポートされている AMI の新しいインスタンスを起動します AWS Marketplace。
**注記**  
インスタンスを起動する際、インスタンスに割り当てるストレージサイズがユースケースに適切であることを確認してください。確認するには、Amazon EC2 コンソールの **[Add storage]** (ストレージの追加) ステップを実行します。

1. Snowball Edge で実行するアプリケーションをインストールおよび設定し、正常に動作することを確認します。
**重要**  
単一のボリューム AMI のみがサポートされます。
AMI の EBS ボリュームは 10 TB 以下にする必要があります。AMI のデータに必要な EBS ボリュームサイズをプロビジョニングすることをお勧めします。これにより、AMI をエクスポートしてデバイスにロードするためにかかる時間を短縮できます。デバイスのデプロイ後、インスタンスのボリュームサイズを変更したり、ボリュームを追加したりできます。
AMI の EBS スナップショットを暗号化しないでください。

1. このインスタンスを作成する際は、SSH キーペアで使用する PEM または PPK ファイルのコピーを作成します。Snowball Edge デバイスとの通信に使用する予定のサーバーに、このファイルを保存します。このファイルへのパスをメモします。これは、SSH を使用してデバイス上の EC2 互換インスタンスに接続するときに必要になります。
**重要**  
この手順を行わないと、Snowball Edge デバイスを受け取った際に、SSH を使用してインスタンスに接続することができません。

1. このインスタンスを AMI として保存します。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Linux インスタンス用 Amazon EC2 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)」を参照してください。

1. SSH を使用して接続するインスタンスごとに、1～4 のステップを繰り返します。必ず、各 SSH キーペアのコピーを作成し、関連付けられている AMI を追跡してください。

1. これで、デバイスの注文時に、これらの AMI をデバイスに追加できるようになります。

## デバイスの受信後に Snowball Edge に AMI を追加する
<a name="add-ami-locally"></a>

デバイスがサイトに到着したら、新しい AMI をデバイスに追加できます。手順については、「[Snowball Edge デバイスに仮想マシンイメージをインポートする](ec2-ami-import-cli.md)」を参照してください。すべての仮想マシンがサポートされますが、完全な機能についてテスト済みなのは、サポートされる AMI のみです。

**注記**  
VM Import/Export を使用してデバイスに AMI を追加したり、デバイスのデプロイ後に仮想マシンをインポートしたりする際に、任意のオペレーティングシステムを使用する仮想マシンを追加できます。ただし、サポートされているオペレーティングシステムのみが Snowball Edge でテストおよび検証されています。お客様は、デバイスにインポートする仮想イメージに含まれるオペレーティングシステムまたはソフトウェアの利用規約を遵守する責任を負うものとします。  
Snowball Edge で AWS サービスが正しく機能するには、サービスのポートを許可する必要があります。詳細については、「[Snowball Edge の AWS サービスのポート要件](port-requirements.md)」を参照してください。

## Snowball Edge への Microsoft Windows AMI の追加
<a name="windows-ami"></a>

サポートされている Windows オペレーティングシステムを使用する仮想マシン (VMs) の場合、VM Import/Export AWS を使用して Windows VM イメージを にインポートするか、サイトにデプロイされた直後にデバイスにインポートすることで、AMI を追加できます。

**Bring-Your-Own-License (BYOL)**  
Snowball Edge では、独自のライセンスを使用して Microsoft Windows AMI をデバイスにインポートできます。Bring Your Own License (BYOL) は、オンプレミスライセンスを所有する AMI を に持ち込むプロセスです AWS。 は、BYOL オプションの共有デプロイオプションと専用デプロイオプションの両方 AWS を提供します。

 Windows VM イメージをデバイスに追加するには、VM Import/Export AWS を使用して にインポートするか、サイトにデプロイされた直後にデバイスにインポートします。元の Windows AMIs を追加することはできません AWS。したがって、Snowball Edge デバイスで AMI を使用する場合は、独自の Windows VM イメージを作成してインポートし、独自のライセンスを取得する必要があります。Windows ライセンスおよび BYOL の詳細については、[Amazon Web Services and Microsoft: Frequently Asked Questions](https://aws.amazon.com/windows/faq/) を参照してください。

### Snowball Edge にインポートする Windows VM イメージの作成
<a name="create-windows-image"></a>

Windows VM イメージを作成するには、Windows および macOS オペレーティングシステムでサポートされる VirtualBox などの仮想化環境が必要です。Snow デバイス用の VM を作成するときは、4 GB 以上の RAM で、2 つ以上のコアを割り当てることをお勧めします。VM を起動して実行する場合は、オペレーティングシステム (Windows Server 2012、2016、2019) をインストールする必要があります。Snowball Edge デバイスに必要なドライバーをインストールするには、このセクションの手順に従います。

Windows AMI を Snow デバイス上で実行するには、VirtIO、FLR、NetVCM、Vioinput、Viorng、Vioscsi、Vioserial、および VioStor ドライバーを追加する必要があります。GitHub の virtio-win-pkg-scripts リポジトリから、これらのドライバーを Windows イメージにインストールするための [Microsoft Software Installer (virtio-win-guest-tools-installer) をダウンロード](https://github.com/virtio-win/virtio-win-pkg-scripts)できます。

**注記**  
VM イメージを、デプロイした Snow デバイスに直接インポートする場合は、VM イメージファイルが RAW 形式である必要があります。

**Windows イメージを作成するには**

1. Microsoft Windows コンピュータで、**[Start]** (スタート) を選択し、**devmgmt.msc**を入力して **[Device Manager]** (デバイスマネージャー) を開きます。

1. メインメニューで、**[Actions]** (アクション)、**[Add legacy hardware]** (レガシーハードウェアの追加) の順に選択します。
**注記**  
Windows 11 の場合は、まず以下のパネルで任意のデバイスを選択してから、**レガシーハードウェアの追加**オプションが**アクション**メニューに表示されます。

1. ウィザードで、**[Next]** (次へ) を選択します。

1. **[Install the hardware that I manually select from a list (advanced)]** (リストから手動で選択したハードウェアをインストールする (アドバンスト))、**[Next]** (次へ) の順に選択します。

1. **[Show All Devices]** (すべてのデバイスを表示)、**[Next]** (次へ) の順に選択します。

1. **[Have Disk]** (ディスクの使用) を選択し、リストから **[Copy manufacturer’s files]** (製造元のファイルをコピーする) を開いて、ISO ファイルを検索します。

1. ISO ファイル内で `Driver\W2K8R2\amd64` ディレクトリを検索し、`.INF` ファイルを開きます。

1. **[.INF]** ファイル、**[Open]** (開く)、**[OK]** の順に選択します。

1. ドライバー名が表示されたら、**[Next]** (次へ) を選択し、さらに 2 回、**[Next]** (次へ) を選択します。次に、**[Finish]** (終了) を選択します。

   これにより、新しいドライバーを使用して、デバイスがインストールされます。実際のハードウェアは存在しないため、デバイスの問題を示す黄色の感嘆符が表示されます。この問題を解決する必要があります。

**ハードウェアの問題を解決するには**

1. 感嘆符が付いたデバイスのコンテキスト (右クリック) メニューを開きます。

1. **[Uninstall]** (アンインストール) を選択し、**[Delete the driver software for this device]** (このデバイスのドライバーソフトウェアを削除する) を選択解除して、**[OK]** を選択します。

   ドライバーがインストールされ、デバイスで AMI を起動する準備が整います。

## VM イメージを Snowball Edge にインポートする
<a name="import-vm-image"></a>

VM イメージの準備が完了したら、いずれかのオプションを使用して、イメージをデバイスにインポートできます。
+ **VM Import/Export を使用したクラウド**内 — VM イメージを にインポート AWS して AMI として登録すると、 から注文するときにデバイスにイメージを追加できます AWS Snow ファミリーマネジメントコンソール。詳細については、「**VM Import/Export ユーザーガイド」の「[VM Import/Export を使用してイメージとして VM をインポートする](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html)」を参照してください。
+ **サイトにデプロイされているデバイスのローカル **- AWS OpsHub または AWS Command Line Interface () を使用して VM イメージをデバイスに直接インポートできますAWS CLI。

  の使用の詳細については AWS OpsHub、[「Amazon EC2-compatibleコンピューティングインスタンスをローカル](https://docs.aws.amazon.com/snowball/latest/developer-guide/manage-ec2.html)で使用する」を参照してください。

  の使用の詳細については AWS CLI、「」を参照してください[Snowball Edge デバイスに仮想マシンイメージをインポートする](ec2-ami-import-cli.md)。

## Snowball Edge 用の最新の Amazon Linux 2 AMI のエクスポート
<a name="export-latest-al2-ami"></a>

Amazon Linux 2 AMIs を最新バージョンに更新するには、まず最新の Amazon Linux 2 VM イメージを からエクスポートしてから AWS Marketplace、その VM イメージを Snow デバイスにインポートします。

1. `ssm get-parameters` AWS CLI コマンドを使用して、 で Amazon Linux 2 AMI の最新のイメージ ID を検索します AWS Marketplace。

   ```
     aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --query 'Parameters[0].[Value]' --region your-region                
   ```

   このコマンドは、AMI の最新のイメージ ID を返します。例えば、`ami-0ccb473bada910e74`。

1. 最新の Amazon Linux 2 イメージをエクスポートします。「Amazon EC2 ユーザーガイド」「[Exporting a VM directly from an Amazon Machine Image (AMI)](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html)」を参照してください。Amazon Linux 2 AMI の最新のイメージ ID を `ec2 export-image` コマンドの `image-id` パラメータの値として使用します。

1.  AWS CLI または を使用して VM イメージを Snow デバイスにインポートします AWS OpsHub。
   + の使用の詳細については AWS CLI、「」を参照してください[Snowball Edge デバイスに仮想マシンイメージをインポートする](ec2-ami-import-cli.md)。
   + の使用の詳細については AWS OpsHub、「」を参照してください[を使用した Amazon EC2-compatible AMI としてのイメージのインポート AWS OpsHub](ec2-ami-import.md)。

# Snowball Edge デバイスに仮想マシンイメージをインポートする
<a name="ec2-ami-import-cli"></a>

 AWS CLI および VM Import/Export サービスを使用して、仮想マシン (VM) イメージを Amazon マシンイメージ (AMI) として Snowball Edge デバイスにインポートできます。VM イメージをインポートした後、イメージを AMI として登録し、Amazon EC2 互換インスタンスとして起動します。

Snowball Edge デバイスを注文するジョブを作成するときに、Amazon EC2 からデバイスに AMIs を追加できます。Snowball Edge デバイスを受け取ったら、この手順を使用します。詳細については、「[コンピューティングとストレージのオプションの選択](create-job-common.md#compute-storage)」を参照してください。

 AWS OpsHub を使用して VM イメージファイルをアップロードすることもできます。詳細については、「[Importing an image into your device as an Amazon EC2-compatible AMI](https://docs.aws.amazon.com/snowball/latest/developer-guide/manage-ec2.html#ec2-ami-import)」を参照してください。

**Topics**
+ [ステップ 1: VM イメージを準備し、Snowball Edge デバイスにアップロードする](#prepare-image-cli)
+ [ステップ 2: Snowball Edge で必要なアクセス許可を設定する](#setup-permission-cli)
+ [ステップ 3: VM イメージを Snowball Edge のスナップショットとしてインポートする](#import-snapshot-cli)
+ [ステップ 4: Snowball Edge でスナップショットを AMI として登録する](#register-snapshot-cli)
+ [ステップ 5: Snowball Edge で AMI からインスタンスを起動する](#launch-ami-cli)
+ [Snowball Edge の追加 AMI アクション](#additional-ami-actions)

## ステップ 1: VM イメージを準備し、Snowball Edge デバイスにアップロードする
<a name="prepare-image-cli"></a>

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](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport.html)」を参照してください。VM Import/Export を使用して Amazon EC2 AMI を VM イメージとしてエクスポートするには、「VM Import/Export ユーザーガイド」の「[Exporting a VM directly from an Amazon Machine Image (AMI)](https://docs.aws.amazon.com/vm-import/latest/userguide/vmexport_image.html)」を参照してください。

ローカル環境から VM イメージを生成する場合は、イメージが Snowball Edge デバイスで AMI として使用するように設定されていることを確認します。環境によっては、以下の項目を設定する必要がある場合があります。
+ オペレーティングシステムを設定および更新します。
+ ホスト名を設定します。
+ ネットワークタイムプロトコル (NTP) が設定されていることを確認します。
+ 必要に応じて SSH パブリックキーを含めます。キーペアのローカルコピーを作成します。詳細については、「[SSH を使用した Snow Family デバイス上のコンピューティングインスタンスへの接続](https://docs.aws.amazon.com/snowball/latest/developer-guide/ssh-ec2-edge.html)」を参照してください。
+ Snowball Edge デバイスで使用するソフトウェアをインストールして設定します。

**注記**  
Snowball Edge デバイスのディスクスナップショットを準備するときは、次の制限に注意してください。  
Snowball Edge は現在、RAW イメージ形式のスナップショットのインポートのみをサポートしています。
Snowball Edge は現在、サイズが 1 GB から 1 TB のスナップショットのインポートのみをサポートしています。

### Snowball Edge デバイスの Amazon S3 バケットに VM イメージをアップロードする
<a name="upload-images-to-your-device"></a>

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 --profile profile-name
  ```

  詳細については、このガイドの[「サポートされている AWS CLI コマンド](https://docs.aws.amazon.com/snowball/latest/developer-guide/using-adapter-cli.html)」を参照してください。

**Snowball Edge で Amazon S3 互換ストレージを使用して VM イメージをアップロードするには**
+ `put-object` コマンドを使用して、スナップショットファイルをデバイスのバケットにコピーします。

  ```
  aws s3api put-object --bucket bucket-name --key path-to-snapshot-file --body snapshot-file --endpoint-url s3api-endpoint-ip --profile your-profile       
  ```

  詳細については、「[Working with S3 objects on a Snowball Edge device](https://docs.aws.amazon.com/snowball/latest/developer-guide/objects-s3-snow.html)」を参照してください。

## ステップ 2: Snowball Edge で必要なアクセス許可を設定する
<a name="setup-permission-cli"></a>

インポートを成功させるには、Snowball Edge デバイス、Amazon EC2、および ユーザーに VM Import/Export のアクセス許可を設定する必要があります。

**注記**  
これらのアクセス許可を提供するサービスロールとポリシーは、Snowball Edge デバイスにあります。

### Snowball Edge での VM Import/Export に必要なアクセス許可
<a name="vmie-permissions"></a>

インポートプロセスを開始する前に、Snowball Edge デバイスで VM Import/Export がロールを引き受けることを許可する信頼ポリシーを持つ IAM ロールを作成する必要があります。デバイス上の VM Import/Export がデバイス上の S3 バケットに保存されているイメージにアクセスできるようにするには、ロールに追加のアクセス許可を付与します。

**信頼ポリシー JSON ファイルを作成します。**

次に、VM Import/Export が S3 バケットからインポートする必要があるスナップショットにアクセスするために、ロールにアタッチする必要がある信頼ポリシーの例を示します。

------
#### [ JSON ]

****  

```
{
   "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  --profile profile-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 ファイルを作成します。

------
#### [ 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 --profile profile-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 --profile profile-name
```

### Snowball Edge で発信者が必要とするアクセス許可
<a name="caller-permissions"></a>

Snowball Edge VM Import/Export が引き受けるロールに加えて、ロールを VMIE に渡す許可がユーザーに付与されていることも確認する必要があります。デフォルトのルートユーザーを使用してインポートを実行する場合、ルートユーザーに必要なすべてのアクセス許可は既に存在するため、このステップをスキップしてステップ 3 に進むことができます。

インポートを実行するユーザーに、次の 2 つの IAM アクセス許可をアタッチします。
+ `pass-role`
+ `get-role`

**ロールのポリシーを作成します。**

以下は、IAM ロールに対する `get-role` および `pass-role` のアクションの実行を、ユーザーに許可するポリシーの例です。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",
   "Statement":[
        {
            "Effect":"Allow",
            "Action": "iam:GetRole",
            "Resource":"*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/snowball*",
            "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 --profile profile-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 --profile profile-name
```

### Snowball Edge で Amazon EC2 APIsを呼び出すために必要なアクセス許可
<a name="ec2-permissions"></a>

スナップショットをインポートするには、IAM ユーザーに `ec2:ImportSnapshot` のアクセス許可が必要です。ユーザーのアクセスを制限する必要がない場合は、`ec2:*` のアクセス許可を使用して、Amazon EC2 のフルアクセス許可を付与します。次に、デバイス上の Amazon EC2 用に付与または制限できるアクセス許可を示します。以下の内容を含むポリシーファイルを作成します。

------
#### [ JSON ]

****  

```
{
   "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 --profile profile-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 --profile profile-name
```

## ステップ 3: VM イメージを Snowball Edge のスナップショットとしてインポートする
<a name="import-snapshot-cli"></a>

次のステップでは、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
```

詳細については、 コマンドリファレンスの [import-snapshot](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/import-snapshot.html) AWS CLI を参照してください。

このコマンドでは、以下のスイッチはサポートされません。
+ [--client-data `value`] 
+ [--client-token `value`]
+ [--dry-run]
+ [--no-dry-run]
+ [--encrypted]
+ [--no-encrypted]
+ [--kms-key-id `value`]
+ [--tag-specifications `value`]

**Example `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 として登録する
<a name="register-snapshot-cli"></a>

デバイスへのスナップショットのインポートが成功したら、`register-image` コマンドを使用して登録できます。

**注記**  
AMI は、そのスナップショットがすべて使用可能な場合のみ登録できます。

詳細については、 AWS CLI 「 コマンドリファレンス」の[「register-image](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/register-image.html)」を参照してください。

**Example `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 パラメータ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/register-image.html)を参照してください。 AWS CLI 

```
[
    {
        "DeviceName": "/dev/sda",
        "Ebs": 
            {
                "Encrypted": false,
                "DeleteOnTermination": true,
                "SnapshotId": "snapshot-id",
                "VolumeSize": 30
            }
    }
]
```

**Example `register-image` コマンドの例**  

```
{
    "ImageId": "s.ami-8de47d2e397937318"
 }
```

## ステップ 5: Snowball Edge で AMI からインスタンスを起動する
<a name="launch-ami-cli"></a>

インスタンスを起動するには、 AWS CLI 「 コマンドリファレンス」の[「run-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html)」を参照してください。

`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](https://docs.aws.amazon.com/snowball/latest/developer-guide/manage-ec2.html#launch-instance)」を参照してください。

## Snowball Edge の追加 AMI アクション
<a name="additional-ami-actions"></a>

追加の AWS CLI コマンドを使用して、スナップショットのインポートステータスのモニタリング、インポートされたスナップショットの詳細の取得、スナップショットのインポートのキャンセル、インポート後のスナップショットの削除または登録解除を行うことができます。

### Snowball Edge でのスナップショットのインポートステータスのモニタリング
<a name="decribe-import-task-cli"></a>

インポートの進行状況の現在の状態を確認するには、Amazon EC2 `describe-import-snapshot-tasks` コマンドを実行します。このコマンドは、`task-state` のページ分割およびフィルタリングをサポートします。

**Example `describe-import-snapshot-tasks` コマンドの例**  

```
aws ec2 describe-import-snapshot-tasks --import-task-ids id --endpoint http://snowball-ip:8008 --region snow --profile profile-name
```

**Example `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 でのインポートタスクのキャンセル
<a name="cancel-import-task-cli"></a>

インポートタスクをキャンセルするには、`cancel-import-task` コマンドを実行します。

**Example `cancel-import-task` コマンドの例**  

```
aws ec2 cancel-import-task --import-task-id import-task-id --endpoint http://snowball-ip:8008 --region snow --profile profile-name
```

**Example `cancel-import-task` コマンドの出力例**  

```
{
        "ImportTaskId": "s.import-snap-8234ef2a01cc3b0c6",
        "PreviousState": "active",
        "State": "deleting"
}
```
完了状態でないタスクのみをキャンセルできます。

このコマンドでは、以下のパラメータはサポートされません。
+ [--dry-run]
+ [--no-dry-run]

### Snowball Edge でのスナップショットの説明
<a name="describe-snapshots-cli"></a>

スナップショットのインポート後、このコマンドを使用してスナップショットを説明できます。スナップショットをフィルタリングするには、前回のインポートタスクレスポンスからのスナップショット ID に `snapshot-ids` を渡します。このコマンドは、`volume-id`、`status`、`start-time` のページ分割およびフィルタリングをサポートします。

**Example `describe-snapshots` コマンドの例**  

```
aws ec2 describe-snapshots --snapshot-ids snapshot-id --endpoint http://snowball-ip:8008 --region snow --profile profile-name
```

**Example `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 デバイスからのスナップショットの削除
<a name="delete-snapshot-cli"></a>

所有していて不要になったスナップショットを削除するには、`delete-snapshot` コマンドを使用します。

**Example `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 の登録解除
<a name="deregister-snapshot-cli"></a>

不要になったAMI の登録を解除するには、`deregister-image` コマンドを実行します。現在、**[PENDING]** (保留) 状態の AMI の登録解除はサポートされていません。

**Example `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]

# Snowball Edge デバイスで AWS CLI および API オペレーションを使用する
<a name="using-ec2-cli-specify-region"></a>

 AWS Command Line Interface （AWS CLI) または API オペレーションを使用して Snowball Edge で IAM、Amazon S3、Amazon EC2 コマンドを発行する場合は、 を`region`「」として指定する必要があります`snow`。 これを行うには、次の例のように、 コマンド自体で `AWS configure`または を使用します。

```
aws configure --profile ProfileName
AWS Access Key ID [None]: defgh
AWS Secret Access Key [None]: 1234567
Default region name [None]: snow
Default output format [None]: json
```

Or

```
aws s3 ls --endpoint http://192.0.2.0:8080 --region snow --profile ProfileName
```

# Snowball Edge のコンピューティングインスタンスのネットワーク設定
<a name="network-config-ec2"></a>

Snowball Edge でコンピューティングインスタンスを起動したら、ネットワークインターフェイスを作成して IP アドレスを指定する必要があります。Snowball Edge は、仮想ネットワークインターフェイスと直接ネットワークインターフェイスの 2 種類のネットワークインターフェイスをサポートしています。

**仮想ネットワークインターフェイス (VNI)** – 仮想ネットワークインターフェイスは、Snowball Edge の EC2-compatibleインスタンスに接続するための標準ネットワークインターフェイスです。ダイレクトネットワークインターフェイスを使用するかどうかにかかわらず、各 EC2 互換インスタンスに対して VNI を作成する必要があります。VNI を通過するトラフィックは、設定したセキュリティグループによって保護されます。VNIs、Snowball Edge の制御に使用する物理ネットワークポートにのみ関連付けることができます。

**注記**  
VNI は、Snowball Edge の管理に使用されるのと同じ物理インターフェイス (RJ45、SFP\$1、または QSFP) を使用します。デバイス管理に使用しているものとは異なる物理インターフェイスで VNI を作成すると、予期しない結果が生じる可能性があります。

**ダイレクトネットワークインターフェイス (DNI)** – ダイレクトネットワークインターフェイス (DNI) は、マルチキャストストリーム、推移的ルーティング、ロードバランシングなどのユースケースを可能にする高度なネットワーク機能です。中間変換やフィルタリングなしでインスタンスにレイヤー 2 ネットワークアクセスを提供することで、Snowball Edge のネットワーク設定に対する柔軟性を高め、ネットワークパフォーマンスを向上させることができます。DNI は VLAN タグと MAC アドレスのカスタマイズをサポートします。DNI 上のトラフィックは、セキュリティグループによって保護されません。

Snowball Edge デバイスでは、DNI を RJ45、SFP、または QSFP ポートに関連付けることができます。各物理ポートは最大 63 の DNI をサポートします。DNIs は、Snowball Edge の管理に使用するのと同じ物理ネットワークポートに関連付ける必要はありません。

**注記**  
Snowball Edge ストレージ最適化 (EC2 コンピューティング機能搭載) デバイスは DNI をサポートしません。

**Topics**
+ [Snowball Edge での DNIsまたは VNIs前提条件](#snowcone-configuration-prerequisites)
+ [Snowball Edge での仮想ネットワークインターフェイス (VNI) のセットアップ](#setup-vni)
+ [Snowball Edge での Direct Network Interface (DNI) のセットアップ](#snowcone-setup-dni)

## Snowball Edge での DNIsまたは VNIs前提条件
<a name="snowcone-configuration-prerequisites"></a>

VNI または DNI を設定する前に、次の前提条件が満たされていることを確認します。

****

1. デバイスの電源がオンになっており、物理的なネットワークインターフェイス (RJ45 ポートなど) のいずれかが IP アドレスと接続されていることを確認します。

1. Snowball Edge で使用している物理ネットワークインターフェイスに関連付けられている IP アドレスを取得します。

1. Snowball Edge クライアントを設定します。詳細については、「[Snowball Edge クライアント用プロファイルの設定](using-client-commands.md#client-configuration)」を参照してください。

1.  AWS CLIを設定します。詳細については、「 AWS Command Line Interface ユーザーガイド[」の「 の開始方法 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」を参照してください。

1. デバイスのロックを解除します。
   +  AWS OpsHub を使用してデバイスのロックを解除します。詳細については、[ a Snowball Edge with AWS OpsHub](https://docs.aws.amazon.com/snowball/latest/developer-guide/connect-unlock-device.html)」を参照してください。
   + Snowball Edge クライアントを使用してデバイスをロック解除します。詳細については、「[Snowball Edge のロック解除](unlockdevice.md)」を参照してください。

1. デバイス上の EC2 互換インスタンスを起動します。VNI をこのインスタンスに関連付けます。

1. Snowball Edge クライアントを使用して `describe-device` コマンドを実行します。コマンドの出力は、物理ネットワークインターフェイス ID のリストを提供します。詳細については、「[Snowball Edge のステータスの表示](using-client-commands.md#client-status)」を参照してください。

1. 使用する物理ネットワークインターフェイスの ID を特定し、これを書き留めます。

## Snowball Edge での仮想ネットワークインターフェイス (VNI) のセットアップ
<a name="setup-vni"></a>

 物理ネットワークインターフェイスの ID を確認した後、その物理インターフェイスで仮想ネットワークインターフェイス (VNI) を設定できます。次の手順に従って、VNI を設定します。VNI を作成する前に、前提条件となるタスクを実行していることを確認してください。

**VNI を作成して IP アドレスを関連付け**

1. Snowball Edge クライアントを使用して `create-virtual-network-interface` コマンドを実行します。以下の例では、このコマンドの実行に 2 つの異なる IP アドレス割り当て方法 (`DHCP`、`STATIC`) を使用しています。`DHCP` メソッドは Dynamic Host Configuration Protocol (DHCP) を使用します。

   ```
   snowballEdge create-virtual-network-interface \
   --physical-network-interface-id s.ni-abcd1234 \
   --ip-address-assignment DHCP \
   --profile profile-name
           //OR//
           
   snowballEdge create-virtual-network-interface \
   --physical-network-interface-id s.ni-abcd1234 \
   --ip-address-assignment STATIC \
   --static-ip-address-configuration IpAddress=192.0.2.0,Netmask=255.255.255.0 \
   --profile profile-name
   ```

   このコマンドによって、IP アドレスを含む JSON 構造が返ります。プロセスの後半で `ec2 associate-address` AWS CLI コマンドで使用する IP アドレスを書き留めます。

   この IP アドレスが必要な場合はいつでも、Snowball Edge Client コマンド `describe-virtual-network-interfaces` Snowball Edge クライアントコマンド、または AWS CLI コマンドを使用して`aws ec2 describe-addresses`取得できます。

1. を使用して IP アドレスを EC2-compatibleインスタンスに AWS CLI 関連付け、赤いテキストを値に置き換えます。

   ```
   aws ec2 associate-address --public-ip 192.0.2.0 --instance-id s.i-01234567890123456 --endpoint http://Snowball Edge physical IP address:8008
   ```

## Snowball Edge での Direct Network Interface (DNI) のセットアップ
<a name="snowcone-setup-dni"></a>

**注記**  
 ダイレクトネットワークインターフェイス機能は、2021 年 1 月 12 日以降に利用でき、Snowball Edge が利用可能なすべての AWS リージョン で使用できます。

### Snowball Edge での DNI の前提条件
<a name="use-snowwire-prerequisites"></a>

ダイレクトネットワークインターフェイス (DNI) を設定する前に、前提条件セクションのタスクを実行する必要があります。

1. DNI を設定する前に、前提条件となるタスクを実行します。手順については、「[Snowball Edge での DNIsまたは VNIs前提条件](#snowcone-configuration-prerequisites)」を参照してください。

1. さらに、デバイスでインスタンスを起動し、VNI を作成してインスタンスに関連付ける必要があります。手順については、「[Snowball Edge での仮想ネットワークインターフェイス (VNI) のセットアップ](#setup-vni)」を参照してください。
**注記**  
現場でソフトウェアアップデートを実行して、既存のデバイスにダイレクトネットワークを追加した場合、機能を完全に有効にするために、デバイスを2回再起動する必要があります。

**DNI を作成し、IP アドレスを関連付ける**

1. 次のコマンドを実行して、ダイレクトネットワークインターフェイスを作成し、Amazon EC2 互換インスタンスにアタッチします。次のステップでは、デバイスの MAC アドレスが必要です。

   ```
   create-direct-network-interface [--endpoint endpoint] [--instance-id instanceId] [--mac macAddress]
                                   [--physical-network-interface-id physicalNetworkInterfaceId] 
                                   [--unlock-code unlockCode] [--vlan vlanId]
   ```

   OPTIONS

   ** --endpoint <endpoint>** このリクエストを送信するエンドポイント。デバイスのエンドポイントは、`https` スキームの後に IP アドレスが続く URL です。例えば、デバイスの IP アドレスが 123.0.1.2 の場合、デバイスのエンドポイントは https://123.0.1.2 になります。

   ** --instance-id <instanceId>** インターフェイスをアタッチする EC2 互換インスタンス ID (オプション)。

   ** --mac <macAddress>** ネットワークインターフェイスの MAC アドレスを設定します (オプション)。

   **--physical-network-interface-id <physicalNetworkInterfaceId>** 新しい仮想ネットワークインターフェイスを作成する物理ネットワークインターフェイスの ID。`describe-device` コマンドを使用して、Snowball Edge で使用可能な物理ネットワークインターフェイスを決定できます。

    **--vlan <vlanId>** インターフェイスに、割り当てられた VLAN を設定します (オプション)。指定すると、インターフェイスから送信されるすべてのトラフィックは、指定した VLAN ID でタグ付けされます。着信トラフィックは、指定した VLAN ID でフィルタリングされ、インスタンスに渡される前にすべての VLAN タグが除去されます。

1. DNI を作成し、EC2 互換インスタンスに関連付けた後、Amazon EC2 互換インスタンス内で 2 つの設定変更を行う必要があります。
   + 1 つ目の変更は、EC2 互換インスタンスに関連付けられた VNI 用のパケットが eth0 を介して送信されるように設定することです。
   + 2 つ目の変更は、ブート時に DCHP または静的 IP を使用するようにダイレクトネットワークインターフェイスを設定することです。

   以下に、これらの設定変更を行う Amazon Linux 2 と CentOS Linux のシェルスクリプトの例を示します。

------
#### [ Amazon Linux 2 ]

   ```
   # Mac address of the direct network interface. 
   # You got this when you created the direct network interface.
   DNI_MAC=[MAC ADDRESS FROM CREATED DNI]
   
   # Configure routing so that packets meant for the VNI always are sent through eth0.
   PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)
   PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}')
   ROUTE_TABLE=10001
   echo "from $PRIVATE_IP table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/rule-eth0
   echo "default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/route-eth0
   echo "169.254.169.254 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0
   
   # Query the persistent DNI name, assigned by udev via ec2net helper.
   #   changable in /etc/udev/rules.d/70-persistent-net.rules
   DNI=$(ip --oneline link | grep -i $DNI_MAC | awk -F ': ' '{ print $2 }')
   
   # Configure DNI to use DHCP on boot.
   cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI
   DEVICE="$DNI"
   NAME="$DNI"
   HWADDR=$DNI_MAC
   ONBOOT=yes
   NOZEROCONF=yes
   BOOTPROTO=dhcp
   TYPE=Ethernet
   MAINROUTETABLE=no
   EOF
   
   # Make all changes live.
   systemctl restart network
   ```

------
#### [ CentOS Linux ]

   ```
   # Mac address of the direct network interface. You got this when you created the direct network interface.
   DNI_MAC=[MAC ADDRESS FROM CREATED DNI]
   # The name to use for the direct network interface. You can pick any name that isn't already in use.
   DNI=eth1
   
   # Configure routing so that packets meant for the VNIC always are sent through eth0 
   PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)
   PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}')
   ROUTE_TABLE=10001
   echo from $PRIVATE_IP table $ROUTE_TABLE > /etc/sysconfig/network-scripts/rule-eth0
   echo default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE > /etc/sysconfig/network-scripts/route-eth0
   
   # Configure your direct network interface to use DHCP on boot.
   cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI
   DEVICE="$DNI"
   NAME="$DNI"
   HWADDR="$DNI_MAC"
   ONBOOT=yes
   NOZEROCONF=yes
   BOOTPROTO=dhcp
   TYPE=Ethernet
   EOF
   
   # Rename DNI device if needed.
   CURRENT_DEVICE_NAME=$(LANG=C ip -o link | awk -F ': ' -vIGNORECASE=1 '!/link\/ieee802\.11/ && /'"$DNI_MAC"'/ { print $2 }')
   ip link set $CURRENT_DEVICE_NAME name $DNI
   
   # Make all changes live.
   systemctl restart network
   ```

------

# SSH を使用して Snowball Edge のコンピューティングインスタンスに接続する
<a name="ssh-ec2-edge"></a>

Secure Shell (SSH) を使用して Snowball Edge のコンピューティングインスタンスに接続するには、SSH キーを提供または作成するための以下のオプションがあります。
+ デバイスを注文するジョブを作成するときに、Amazon マシンイメージ (AMI) の SSH キーを指定できます。詳細については、「[Snowball Edge を注文するジョブの作成](https://docs.aws.amazon.com/snowball/latest/developer-guide/create-job-common.html)」を参照してください。
+ Snowball Edge にインポートする仮想マシンイメージを作成するときに、AMI の SSH キーを指定できます。詳細については、「[Snowball Edge デバイスに仮想マシンイメージをインポートする](ec2-ami-import-cli.md)」を参照してください。
+ Snowball Edge でキーペアを作成し、ローカルに生成されたパブリックキーを使用してインスタンスを起動することを選択できます。キーペア作成の詳細については、「Amazon EC2 ユーザーガイド」の「[Amazon EC2 インスタンスのキーペアを作成する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-key-pairs.html#having-ec2-create-your-key-pair)」を参照してください。

**SSH を使用してインスタンスに接続するには**

1. デバイスの電源が入っており、ネットワークに接続され、ロックが解除されていることを確認します。詳細については、「[Snowball Edge をローカルネットワークに接続する](getting-started.md#getting-started-connect)」を参照してください。

1. コンピューティングインスタンス用にネットワークが設定されていることを確認します。詳細については、「[Snowball Edge のコンピューティングインスタンスのネットワーク設定](network-config-ec2.md)」を参照してください。

1. メモを確認して、この特定のインスタンスに使用した PEM または PPK キーペアを見つけます。コンピュータ上の場所にこれらのファイルのコピーを作成します。PEM ファイルへのパスを書き留めます。

1. 次のコマンド例のように、SSH を使用してインスタンスに接続します。この IP アドレスは、「[Snowball Edge のコンピューティングインスタンスのネットワーク設定](network-config-ec2.md)」で設定した仮想ネットワークインターフェイス (VNIC) の IP アドレスです。

   ```
     ssh -i path/to/PEM/key/file instance-user-name@192.0.2.0
   ```

   詳細については、「*Amazon EC2 ユーザーガイド*」の「[SSH を使用した Linux インスタンスへの接続](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)」を参照してください。

# 同じ Snowball Edge 上の EC2 互換コンピューティングインスタンスから S3 バケットへのデータ転送
<a name="data-transfer-ec2-s3-edge"></a>

同じ Snowball Edge 上のコンピューティングインスタンスと Amazon S3 バケット間で、データを転送することができます。これを行うには、サポートされている AWS CLI コマンドと適切なエンドポイントを使用します。例えば、`sbe1.xlarge` インスタンスのディレクトリから同じデバイスの Amazon S3 バケット、`amzn-s3-demo-bucket` にデータを移動するとします。Snowball Edge エンドポイント で Amazon S3 互換ストレージを使用しているとします`https://S3-object-API-endpoint:443`。次の手順に従ってください。

**同じ Snowball Edge 上のコンピューティングインスタンスとバケット間でデータを転送するには**

1. SSH を使用してコンピューティングインスタンスに接続します。

1. をダウンロードしてインストールします AWS CLI。インスタンスに AWS CLIがない場合は、これをダウンロードしてインストールします。詳細については、「[AWS Command Line Interfaceのインストール](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)」を参照してください。

1. Snowball Edge AWS CLI の Amazon S3 エンドポイントで動作するように、コンピューティングインスタンスで を設定します。詳細については、「[Snowball Edge でのローカル Amazon S3 認証情報の取得と使用](using-adapter.md#adapter-credentials)」を参照してください。

1. Snowball Edge コマンドでサポートされている Amazon S3 互換ストレージを使用してデータを転送します。例:

   ```
   aws s3 cp ~/june2018/results s3://amzn-s3-demo-bucket/june2018/results --recursive --endpoint https://S3-object-API-endpoint:443
   ```

# EC2 互換インスタンスの自動起動
<a name="using-ec2-edge-client"></a>

Snowball Edge クライアントは、ユーザーの環境で実行できるスタンドアロンのコマンドラインインターフェイス (CLI) アプリケーションです。このアプリケーションにより、Snowball Edge デバイスまたはデバイスのクラスターで、いくつかの管理タスクを実行することができます。Snowball Edge クライアントを使用したサービスの開始および停止方法など、このアプリケーションの使用方法の詳細については、[Snowball Edge クライアントの設定と使用](using-client-commands.md) を参照してください。

以下で、コンピューティングインスタンスに固有の Snowball Edge コマンドに関する情報 (使用例など) を確認できます。

デバイスで使用できる Amazon EC2-compatibleコマンドのリストについては AWS Snowball Edge 、「」を参照してください[Snowball Edge でサポートされている Amazon EC2-compatible AWS CLI コマンド](using-ec2-endpoint.md#cli-support-ec2-edge)。

## Snowball Edge での EC2-compatible起動設定の作成
<a name="ec2-edge-create-autostart-config"></a>

ロック解除後に AWS Snowball Edge デバイスで Amazon EC2-compatibleコンピューティングインスタンスを自動的に起動するには、起動設定を作成します。これを行うには、以下のように、`snowballEdge create-autostart-configuration` コマンドを使用します。

**使用方法**

```
snowballEdge create-autostart-configuration --physical-connector-type [SFP_PLUS or RJ45 or QSFP] --ip-address-assignment [DHCP or STATIC] [--static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]] --launch-template-id [--launch-template-version]
```

## Snowball Edge での EC2-compatible起動設定の更新
<a name="ec2-edge-update-autostart-config"></a>

Snowball Edge の既存の起動設定を更新するには、`snowballEdge update-autostart-configuration` コマンドを使用します。その使用方法は以下のとおりです。起動設定を有効または無効にするには、`--enabled` パラメータを指定します。

**使用方法**

```
snowballEdge update-autostart-configuration --autostart-configuration-arn [--physical-connector-type [SFP_PLUS or RJ45 or QSFP]] [--ip-address-assignment [DHCP or STATIC]] [--static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]][--launch-template-id] [--launch-template-version] [--enabled]
```

## Snowball Edge での EC2-compatible起動設定の削除
<a name="ec2-edge-delete-autostart-config"></a>

使用しなくなった起動設定を削除するには、以下のように、`snowballEdge delete-autostart-configuration` コマンドを使用します。

**使用方法**

```
snowballEdge delete-autostart-configuration --autostart-configuration-arn
```

## Snowball Edge での EC2-compatible起動設定の一覧表示
<a name="ec2-edge-describe-autostart-configs"></a>

Snowball Edge 上で作成した起動設定を一覧表示するには、以下のように、`describe-autostart-configurations` コマンドを使用します。

**使用方法**

```
snowballEdge describe-autostart-configurations            
```

## Snowball Edge での仮想ネットワークインターフェイスの作成
<a name="ec2-edge-create-vnic"></a>

Snowball Edge でコンピューティングインスタンスを実行したり、NFS インターフェイスを起動したりするには、まず仮想ネットワークインターフェイス (VNI) を作成します。各 Snowball Edge には、デバイスの物理的ネットワークインターフェイスコントローラーである、3 つのネットワークインターフェイス (NIC) があります。デバイスの背面に、RJ45、SFP、および QSFP ポートがあります。

各 VNI は物理的なものに基づいており、各 NIC に関連付けられている VNI の数に制限はありません。仮想ネットワークインターフェイスを作成するには、`snowballEdge create-virtual-network-interface` コマンドを使用します。

**注記**  
`--static-ip-address-configuration` パラメータは、`--ip-address-assignment` パラメータに `STATIC` オプションを使用している場合にのみ有効です。

**使用**

このコマンドは、Snowball Edge クライアントの設定ありか、設定なしの、2 つの方法で使用できます。以下の使用例は、Snowball Edge クライアントの設定ありの方法を示しています。

```
snowballEdge create-virtual-network-interface --ip-address-assignment [DHCP or STATIC] --physical-network-interface-id [physical network interface id] --static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]
```

以下の使用例は、Snowball Edge クライアントの設定なしの方法を示しています。

```
snowballEdge create-virtual-network-interface --endpoint https://[ip address] --manifest-file /path/to/manifest --unlock-code [unlock code] --ip-address-assignment [DHCP or STATIC] --physical-network-interface-id [physical network interface id] --static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]
```

**Example 例: VNIC の作成 (DHCP を使用)**  

```
snowballEdge create-virtual-network-interface --ip-address-assignment dhcp --physical-network-interface-id s.ni-8EXAMPLEaEXAMPLEd
{
  "VirtualNetworkInterface" : {
    "VirtualNetworkInterfaceArn" : "arn:aws:snowball-device:::interface/s.ni-8EXAMPLE8EXAMPLEf",
    "PhysicalNetworkInterfaceId" : "s.ni-8EXAMPLEaEXAMPLEd",
    "IpAddressAssignment" : "DHCP",
    "IpAddress" : "192.0.2.0",
    "Netmask" : "255.255.255.0",
    "DefaultGateway" : "192.0.2.1",
    "MacAddress" : "EX:AM:PL:E1:23:45",
    "MtuSize" : "1500"
  }
}
```

## 仮想ネットワークインターフェイスの記述
<a name="ec2-edge-describe-vnic"></a>

デバイスで以前に作成した VNIC を定義するには、`snowballEdge describe-virtual-network-interfaces` コマンドを使用します。その使用方法は以下のとおりです。

**使用**

このコマンドは、Snowball Edge クライアントの設定ありか、設定なしの、2 つの方法で使用できます。以下の使用例は、Snowball Edge クライアントの設定ありの方法を示しています。

```
snowballEdge describe-virtual-network-interfaces
```

以下の使用例は、Snowball Edge クライアントの設定なしの方法を示しています。

```
snowballEdge describe-virtual-network-interfaces --endpoint https://[ip address] --manifest-file /path/to/manifest --unlock-code [unlock code]
```

**Example 例: VNIC の定義**  

```
snowballEdge describe-virtual-network-interfaces
[
  {
    "VirtualNetworkInterfaceArn" : "arn:aws:snowball-device:::interface/s.ni-8EXAMPLE8EXAMPLE8",
    "PhysicalNetworkInterfaceId" : "s.ni-8EXAMPLEaEXAMPLEd",
    "IpAddressAssignment" : "DHCP",
    "IpAddress" : "192.0.2.0",
    "Netmask" : "255.255.255.0",
    "DefaultGateway" : "192.0.2.1",
    "MacAddress" : "EX:AM:PL:E1:23:45",
    "MtuSize" : "1500"
  },{
    "VirtualNetworkInterfaceArn" : "arn:aws:snowball-device:::interface/s.ni-1EXAMPLE1EXAMPLE1",
    "PhysicalNetworkInterfaceId" : "s.ni-8EXAMPLEaEXAMPLEd",
    "IpAddressAssignment" : "DHCP",
    "IpAddress" : "192.0.2.2",
    "Netmask" : "255.255.255.0",
    "DefaultGateway" : "192.0.2.1",
    "MacAddress" : "12:34:5E:XA:MP:LE",
    "MtuSize" : "1500"
  }  
]
```

## Snowball Edge での仮想ネットワークインターフェイスの更新
<a name="ec2-edge-update-vnic"></a>

仮想ネットワークインターフェイス (VNI) の作成後、`snowballEdge update-virtual-network-interface` コマンドを使用して、その設定を更新できます。特定の VNI の Amazon リソースネーム (ARN) を指定してから、更新する要素に対してのみ値を指定します。

**使用方法**

このコマンドは、Snowball Edge クライアントの設定ありか、設定なしの、2 つの方法で使用できます。以下の使用例は、Snowball Edge クライアントの設定ありの方法を示しています。

```
snowballEdge update-virtual-network-interface --virtual-network-interface-arn [virtual network-interface-arn] --ip-address-assignment [DHCP or STATIC] --physical-network-interface-id [physical network interface id] --static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]
```

 以下の使用例は、Snowball Edge クライアントの設定なしの方法を示しています。

```
snowballEdge update-virtual-network-interface --endpoint https://[ip address] --manifest-file /path/to/manifest --unlock-code [unlock code] --virtual-network-interface-arn [virtual network-interface-arn] --ip-address-assignment [DHCP or STATIC] --physical-network-interface-id [physical network interface id] --static-ip-address-configuration IpAddress=[IP address],NetMask=[Netmask]
```

**Example 例: VNIC の更新 (DHCP を使用)**  

```
snowballEdge update-virtual-network-interface --virtual-network-interface-arn arn:aws:snowball-device:::interface/s.ni-8EXAMPLEbEXAMPLEd --ip-address-assignment dhcp
```

## Snowball Edge での仮想ネットワークインターフェイスの削除
<a name="ec2-edge-delete-vnic"></a>

仮想ネットワークインターフェイス (VNI) を削除するには、` snowballEdge delete-virtual-network-interface` コマンドを使用できます。

**使用方法**

このコマンドは、Snowball Edge クライアントの設定ありか、設定なしの、2 つの方法で使用できます。以下の使用例は、Snowball Edge クライアントの設定ありの方法を示しています。

```
snowballEdge delete-virtual-network-interface --virtual-network-interface-arn [virtual network-interface-arn]
```

以下の使用例は、Snowball Edge クライアントの設定なしの方法を示しています。

```
snowballEdge delete-virtual-network-interface --endpoint https://[ip address] --manifest-file /path/to/manifest --unlock-code [unlock code] --virtual-network-interface-arn [virtual network-interface-arn]
```

**Example 例: VNIC の削除**  

```
snowballEdge delete-virtual-network-interface --virtual-network-interface-arn arn:aws:snowball-device:::interface/s.ni-8EXAMPLEbEXAMPLEd
```

# Snowball Edge での Amazon EC2-compatibleエンドポイントの使用
<a name="using-ec2-endpoint"></a>

以下は、Amazon EC2 互換エンドポイントの概要です。このエンドポイントでは、Amazon EC2 互換 API オペレーションを使用して、Amazon マシンイメージ (AMI) とコンピューティングインスタンスをプログラムで管理できます。

## Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する
<a name="using-ec2-adapter-cli-endpoint"></a>

を使用して AWS Snowball Edge デバイスにコマンド AWS CLI を発行する場合、エンドポイントが Amazon EC2-compatibleエンドポイントであることを指定できます。次に示すように、HTTPS エンドポイント、またはセキュリティで保護されていない HTTP エンドポイントの使用を選択できます。

**セキュリティで保護された HTTPS エンドポイント**

```
aws ec2 describe-instances --endpoint https://192.0.2.0:8243 --ca-bundle path/to/certificate
```

**セキュリティで保護されていない HTTP エンドポイント**

```
aws ec2 describe-instances --endpoint http://192.0.2.0:8008
```

`8243` の HTTPS エンドポイントを使用すると、転送中のデータは暗号化されます。この暗号化は、ロックの解除時に Snowball Edge によって生成される証明書を使用して行われます。証明書を取得したら、ローカルの `ca-bundle.pem` ファイルに保存できます。次に、以下に示すように AWS CLI プロファイルを設定し、証明書へのパスを含めます。

**証明書を Amazon EC2 互換エンドポイントに関連付けるには**

1. Snowball Edge を電源とネットワークに接続し、電源を入れます。

1. デバイスのロック解除が終了したら、ローカルネットワークでの IP アドレスを書き留めておきます。

1. ネットワーク上のターミナルから Snowball Edge に ping を送信できることを確認します。

1. ターミナルで `snowballEdge get-certificate` コマンドを実行します。このコマンドの詳細については、「[Snowball Edge でのパブリックキー証明書の管理](snowball-edge-certificates-cli.md)」を参照してください。

1. `snowballEdge get-certificate` コマンドの出力をファイルに保存します (例: `ca-bundle.pem`)。

1. ターミナルから次のコマンドを実行します。

   ```
   aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem
   ```

この手順を完了したら、これらのローカル認証情報、証明書、および指定されたエンドポイントを使用して CLI コマンドを実行できます。

## Snowball Edge でサポートされている Amazon EC2-compatible AWS CLI コマンド
<a name="cli-support-ec2-edge"></a>

Snowball Edge デバイスのコンピューティングインスタンスは、Amazon EC2-compatibleエンドポイントを介して管理できます。このタイプのエンドポイントは、 AWS SDKs の多くの Amazon EC2 CLI コマンドとアクションをサポートしています。 AWS リージョン AWS CLI の呼び出し先を指定するなど AWS CLI、 のインストールと設定については、 [AWS Command Line Interface ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/)を参照してください。

### Snowball Edge でサポートされている EC2-compatible AWS CLI コマンドのリスト
<a name="list-cli-commands-ec2-edge"></a>

以下は、Snowball Edge デバイスでサポートされている Amazon EC2 の AWS CLI コマンドとオプションのサブセットの説明です。コマンドまたはオプションが以下に示されていない場合、そのコマンドまたはオプションはサポートされていません。サポートされていない一部のオプションを、コマンドとともに宣言できます。ただし、それらのオプションは無視されます。
+ [associate-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/associate-address.html) – デバイスの 3 つの物理ネットワークインターフェイスのいずれかで使用するために、仮想 IP アドレスをインスタンスに関連付けます。
  + --instance-id – 単一の `sbe` インスタンスの ID。
  + --public-ip – インスタンスへのアクセスに使用する仮想 IP アドレス。
+ [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html) – デバイスで停止したか実行中のインスタンスに Amazon EBS ボリュームをアタッチし、指定したデバイス名でインスタンスに公開します。
  + --device `value` — デバイス名。
  + --instance-id – ターゲットの Amazon EC2 互換インスタンスの ID。
  + -volume-id `value` — EBS ボリュームの ID。
+ [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html) — Snowball Edge デバイスで使用するために、1 つ以上の Egress ルールをセキュリティグループに追加します。具体的には、このアクションでは、1 つ以上の IPv4 CIDR アドレス範囲にインスタンスがトラフィックを送信できます。詳細については、「[Snowball Edge のセキュリティグループによるネットワークトラフィックの制御](edge-security-groups.md)」を参照してください。
  + --group-id `value` — セキュリティグループの ID
  + [--ip-permissions `value`] — IP アクセス許可の 1 つ以上のセット。
+ [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html) — 1 つ以上の Ingress ルールをセキュリティグループに追加します。`authorize-security-group-ingress` を呼び出すときは、`group-name` または `group-id` のどちらかの値を指定する必要があります。
  + [--group-name `value`] — セキュリティグループ名。
  + [--group-id `value`] — セキュリティグループの ID
  + [--ip-permissions `value`] — IP アクセス許可の 1 つ以上のセット。
  + [--protocol `value`] IP プロトコル。指定できる値は `tcp`、`udp`、および `icmp` です。「すべてのプロトコル」が指定されている場合を除き、`--port` 引数は必須です (-1)。
  + [--port `value`] — TCP または UDP 用に許可するポートの範囲。この値は、1 つの整数または範囲 (最小/最大) です。

    ICMP の場合、1 つの整数または範囲 (`type`-`code`) です。この場合、`type` は ICMP タイプ番号を表し、`code` は ICMP コード番号を表します。-1 の値は、すべての ICMP タイプのすべての ICMP コードを示します。`type` だけの -1 の値は、特定の ICMP タイプのすべての ICMP コードを示します。
  + [--cidr `value`] — CIDR IP の範囲。
+ [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) — 起動テンプレートを作成します。*起動テンプレート*には、インスタンスを起動するためのパラメータが含まれています。`RunInstances` を使用してインスタンスを起動するときに、リクエストで起動パラメータを指定する代わりに起動テンプレートを指定できます。デバイスごとに最大 100 個のテンプレートを作成できます。
  + --launch-template-name `string` — 起動テンプレート名。
  + --launch-template-data `structure` — 起動テンプレートの情報。以下の属性がサポートされています。
    + `ImageId`
    + `InstanceType`
    + `SecurityGroupIds`
    + `TagSpecifications`
    + `UserData`

    JSON 構文:

    ```
    {
        "ImageId":"string",
        "InstanceType":"sbe-c.large",
        "SecurityGroupIds":["string", ...],
        "TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"Test"},
        {"Key":"Stack","Value":"Gamma"}]}],
        "UserData":"this is my user data"
    }
    ```
  + [--version-description `string`] — 起動テンプレートの最初のバージョンの説明。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [create-launch-template-version](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template-version.html) — 起動テンプレートの新しいバージョンを作成します。新しいバージョンの基になる起動テンプレートの既存のバージョンを指定できます。起動テンプレートのバージョンには、作成された順序で番号が付けられます。起動テンプレートのバージョン番号を指定、変更、または置き換えることはできません。起動テンプレートごとに最大 100 個のバージョンを作成できます。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-id `string` — 起動テンプレートの ID。
  + --launch-template-name `string` — 起動テンプレート名。
  + --launch-template-data `structure` — 起動テンプレートの情報。以下の属性がサポートされています。
    + `ImageId`
    + `InstanceType`
    + `SecurityGroupIds`
    + `TagSpecifications`
    + `UserData`

    JSON 構文:

    ```
    {
        "ImageId":"string",
        "InstanceType":"sbe-c.large",
        "SecurityGroupIds":["string", ...],
        "TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"Test"},
         {"Key":"Stack","Value":"Gamma"}]}],
        "UserData":"this is my user data"
    }
    ```
  + [--source-version `string`] — 新しいバージョンの基となる起動テンプレートのバージョン番号。新しいバージョンは、`launch-template-data` で指定したパラメータを除いて、基になるバージョンと同じ起動パラメータを継承します。
  + [--version-description `string`] — 起動テンプレートの最初のバージョンの説明。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) — 指定したリソースの 1 つ以上のタグを追加または上書きします。各リソースには、最大 50 個のタグを設定できます。各タグはキーとオプションの値で構成されます。タグキーは、リソースごとに一意にする必要があります。以下のリソースがサポートされています。
  + AMI
  + インスタンス
  + 起動テンプレート
  + セキュリティグループ
  + キーペア
+ [create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html) — Snowball Edge にセキュリティグループを作成します。最大で 50 個のセキュリティグループを作成できます。セキュリティグループを作成するときに、任意のフレンドリ名を指定します。
  + --group-name `value` — セキュリティグループ名。
  + --description `value` — セキュリティグループの説明。これは、情報提供のみを目的としています。この値の長さは最大 255 文字とすることができます。
+ [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html) — デバイスのインスタンスにアタッチできる Amazon EBS ボリュームを作成します。
  + [--size `value`] — GiB 単位のボリュームのサイズで、1 GiB～1 TB (1000 GiB) とすることができます。
  + [--snapshot-id `value`] — ボリュームの作成元となるスナップショット。
  + [--volume-type `value`] — ボリュームのタイプ。値が指定されていない場合、デフォルト値は `sbg1` です。以下に示しているのは、可能な値です。
    + マグネティックボリュームの `sbg1`
    + SSD ボリュームの `sbp1`
  + [--tag-specification `value`] — 作成中にボリュームに適用するタグのリスト。
+ [delete-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-launch-template.html) — 起動テンプレートを削除します。起動テンプレートを削除すると、すべてのバージョンが削除されます。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-id `string` — 起動テンプレートの ID。
  + --launch-template-name `string` — 起動テンプレート名。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [delete-launch-template-version](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-launch-template-version.html) — 起動テンプレートの 1 つ以上のバージョンを削除します。起動テンプレートのデフォルトバージョンは削除できません。まずデフォルトとして別のバージョンを割り当てる必要があります。デフォルトバージョンが起動テンプレートの唯一のバージョンである場合は、`delete-launch-template` コマンドを使用して起動テンプレート全体を削除します。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-id `string` — 起動テンプレートの ID。
  + --launch-template-name `string` — 起動テンプレート名。
  + --versions (list) `"string" "string"` — 削除する 1 つ以上の起動テンプレートバージョンのバージョン番号。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html) — セキュリティグループを削除します。

  インスタンスに関連付けられている、または他のセキュリティグループによって参照されているセキュリティグループを削除しようとすると、`DependencyViolation` でそのオペレーションは失敗します。
  + --group-name `value` — セキュリティグループ名。
  + --description `value` — セキュリティグループの説明。これは、情報提供のみを目的としています。この値の長さは最大 255 文字とすることができます。
+ [delete-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-tags.html) — 指定したリソース (AMI、コンピューティングインスタンス、起動テンプレート、セキュリティグループ) から、指定したタグのセットを削除します。
+ [delete-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-volume.html) — 指定した Amazon EBS ボリュームを削除します。ボリュームは `available` 状態である必要があります (インスタンスにアタッチされていません)。
  + --volume-id `value` — ボリュームの ID。
+ [describe-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-addresses.html) — デバイスで同じ数の `sbe` インスタンスに関連付けられている 1 つ以上の仮想 IP アドレスを定義します。
  + --public-ips – インスタンスに関連付けられている 1 つ以上の仮想 IP アドレス。
+ [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) — 使用可能な 1 つ以上のイメージ (AMI) について説明します。使用可能なイメージは、ジョブの作成時に Snowball Edge デバイスに追加されます。
  + --image-id — AMI の Snowball AMI ID。
+ [describe-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-attribute.html) — 指定したインスタンスの指定した属性について説明します。一度に 1 つの属性のみ指定できます。以下の属性がサポートされています。
  + `instanceInitiatedShutdownBehavior` 
  + `instanceType`
  + `userData`
+ [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) – 1 つ以上のインスタンスを記述します。レスポンスは、インスタンスに割り当てられているすべてのセキュリティグループを返します。
  + --instance-ids – デバイスで停止した 1 つ以上の `sbe` インスタンスの ID。
  + --page-size — 呼び出しで取得する各ページのサイズ。この値は、コマンドの出力で返された項目数には影響を与えません。ページサイズを小さく設定すると、デバイスへの呼び出しが多くなり、各呼び出しで取得する項目が少なくなります。こうすることで、呼び出しのタイムアウトを防ぐことができます。
  + --max-items — コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。
  + --starting-token — ページ割りを始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。
+ [describe-instance-status](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-status.html) – 指定したインスタンスまたはすべてのインスタンスのステータスを説明します。デフォルトでは、すべてのインスタンスのステータスを返すよう特に指定しない限り、実行中のインスタンスのみが説明されます。インスタンスステータスには、以下の要素が含まれます。
  + **ステータスチェック** – Snow デバイスは、実行中の Amazon EC2 互換インスタンスのステータスチェックを実行して、ハードウェアおよびソフトウェアの問題を特定します。
  + **インスタンスの状態** – インスタンスを起動した瞬間から終了時までインスタンスを管理できます。

  このコマンドでは、次のフィルタがサポートされます。
  + `[--filters]` (リスト)

    フィルター。
    + `instance-state-code` – 16 ビットの符号なし整数としてのインスタンスの状態のコード。上位バイトは内部サービスレポート目的で使用されるため、無視します。下位バイトは表示されている状態に基づいて設定されます。有効な値は 0 (保留中)、16 (実行中)、32 (シャットダウン中)、48 (終了)、64 (停止中)、80 (停止) です。
    + `instance-state-name` – インスタンスの状態 (`pending` \$1 `running` \$1 `shutting-down` \$1 `terminated` \$1 `stopping` \$1 `stopped` )。
    + `instance-status.reachability` – 名前が `reachability` (`passed` \$1 `failed` \$1 `initializing` \$1 `insufficient-data` ) のインスタンスステータスに基づいてフィルタリングします。
    + `instance-status.status` – インスタンスのステータス (`ok` \$1 `impaired` \$1 `initializing` \$1 `insufficient-data` \$1 `not-applicable` )。
    + `system-status.reachability` – 名前が reachability (`passed` \$1 `failed` \$1 `initializing` \$1 `insufficient-data` ) のシステムステータスに基づいてフィルタリングします。
    + `system-status.status` – インスタンスのシステムステータス (`ok` \$1 `impaired` \$1 `initializing` \$1 `insufficient-data` \$1 `not-applicable` )。
  + JSON 構文:

    ```
    [
      {
        "Name": "string",
        "Values": ["string", ...]
      }
      ...
    ]
    ```
  + `[--instance-ids]` (リスト)

    インスタンス ID。

    デフォルト: すべてのインスタンスについて説明します。
  + `[--dry-run|--no-dry-run]` (ブーリアン)

    実際にリクエストを行わずに、ユーザーがアクションに必要なアクセス許可を持っているかどうかをチェックし、エラーレスポンスを返します。必要なアクセス許可がある場合、エラーレスポンスは `DryRunOperation` です。

    それ以外の場合は、`UnauthorizedOperation` です。
  + `[--include-all-instances | --no-include-all-instances]` (ブーリアン)

    `true` の場合、すべてのインスタンスのヘルスステータスが含まれます。`false` の場合、実行中のインスタンスのみのヘルスステータスが含まれます。

    デフォルト: `false`
  + `[--page-size]` (整数) – 呼び出しで取得する各ページのサイズ。この値は、コマンドの出力で返された項目数には影響を与えません。ページサイズを小さく設定すると、デバイスへの呼び出しが多くなり、各呼び出しで取得する項目が少なくなります。こうすることで、呼び出しのタイムアウトを防ぐことができます。
  + `[--max-items]` (整数) – コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。
  + `[--starting-token]` (文字列) – ページ分割を始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。
+ [describe-launch-templates](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-templates.html) — 1 つ以上の起動テンプレートを定義します。`describe-launch-templates` コマンドはページ分割されたオペレーションです。複数の呼び出しを行って、結果のデータセット全体を取得できます。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-ids (list) `"string" "string"` — 起動テンプレートの ID のリスト。
  + --launch-template-names (list) `"string" "string"` — 起動テンプレート名のリスト。
  + --page-size — 呼び出しで取得する各ページのサイズ。この値は、コマンドの出力で返された項目数には影響を与えません。ページサイズを小さく設定すると、デバイスへの呼び出しが多くなり、各呼び出しで取得する項目が少なくなります。こうすることで、呼び出しのタイムアウトを防ぐことができます。
  + --max-items — コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。
  + --starting-token — ページ割りを始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) — 指定した起動テンプレートの 1 つ以上のバージョンを定義します。すべてのバージョン、個々のバージョン、またはバージョンの範囲を定義できます。`describe-launch-template-versions` コマンドはページ分割されたオペレーションです。複数の呼び出しを行って、結果のデータセット全体を取得できます。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-id `string` — 起動テンプレートの ID。
  + --launch-template-name `string` — 起動テンプレート名。
  + [--versions (list) `"string" "string"`] — 削除する 1 つ以上の起動テンプレートバージョンのバージョン番号。
  + [--min-version `string`] — 起動テンプレートバージョンを説明する最小のバージョン番号。
  + [--max-version `string`] — 起動テンプレートバージョンを説明する最大のバージョン番号。
  + --page-size — 呼び出しで取得する各ページのサイズ。この値は、コマンドの出力で返された項目数には影響を与えません。ページサイズを小さく設定すると、デバイスへの呼び出しが多くなり、各呼び出しで取得する項目が少なくなります。こうすることで、呼び出しのタイムアウトを防ぐことができます。
  + --max-items — コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。
  + --starting-token — ページ割りを始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [describe-security-groups](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-security-groups.html) — 1 つ以上のセキュリティグループを説明します。

  `describe-security-groups` コマンドはページ分割されたオペレーションです。複数の API コールを発行して、結果のデータセット全体を取得できます。
  + [--group-name `value`] — セキュリティグループ名。
  + [--group-id `value`] — セキュリティグループの ID。
  + [--page-size `value`] – AWS サービスコールで取得する各ページのサイズ。このサイズは、コマンドの出力で返された項目数には影響を与えません。ページサイズを小さく設定すると、 AWS サービスへの呼び出しが多くなり、各呼び出しで取得する項目が少なくなります。このアプローチは、 AWS サービス呼び出しがタイムアウトするのを防ぐのに役立ちます。使用例については、*AWS Command Line Interface ユーザーガイド*の[ページ割り](https://docs.aws.amazon.com/cli/latest/userguide/pagination.html)を参照してください。
  + [--max-items `value`] — コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。 AWS CLIの範囲外で `NextToken` レスポンス要素を直接使用しないでください。使用例については、*AWS Command Line Interface ユーザーガイド*の[ページ割り](https://docs.aws.amazon.com/cli/latest/userguide/pagination.html)を参照してください。
  + [--starting-token `value`] — ページ割りを始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。使用例については、*AWS Command Line Interface ユーザーガイド*の[ページ割り](https://docs.aws.amazon.com/cli/latest/userguide/pagination.html)を参照してください。
+ [describe-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html) — 指定したリソース (`image`、`instance`、またはセキュリティグループ) の1 つ以上のタグを説明します。このコマンドでは、次のフィルタがサポートされています。
  + launch-template
  + resource-id
  + resource-type – `image` または `instance`
  + キー
  + value
+ [describe-volumes](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-volumes.html) — 指定した Amazon EBS ボリュームについて説明します。
  + [--max-items `value`] — コマンドの出力で返される項目の総数。使用可能な項目の総数が指定された値を上回る場合、コマンドの出力で `NextToken` が提供されます。ページ分割を再開するには、後続コマンドの `starting-token` 引数で `NextToken` 値を指定します。
  + [--starting-token `value`] — ページ割りを始める場所を指定するトークン。このトークンは、以前に切り詰められたレスポンスからの `NextToken` 値です。
  + [--volume-ids `value`] — 1 つ以上のボリュームの ID。
+ [detach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/detach-volume.html) — 停止したか、実行中のインスタンスから Amazon EBS ボリュームをデタッチします。
  + [--device `value`] — デバイス名。
  + [--instance-id] — ターゲットの Amazon EC2 インスタンスの ID。
  + --volume-id `value` — ボリュームの ID。
+ [disassociate-address](https://docs.aws.amazon.com/cli/latest/reference/ec2/disassociate-address.html) – 仮想 IP アドレスとインスタンスの関連付けを解除します。
  + --public-ip — インスタンスからの関連付けを解除する仮想 IP アドレス。
+ [get-launch-template-data](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-launch-template-data.html) — 指定したインスタンスの設定データを取得します。このデータを使用して起動テンプレートを作成できます。
  + --instance-id – 単一の `sbe` インスタンスの ID。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [modify-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-launch-template.html) — 起動テンプレートを変更します。起動テンプレートのどのバージョンをデフォルトバージョンとして設定するかを指定できます。起動テンプレートのバージョンを指定せずにインスタンスを起動すると、起動テンプレートのデフォルトバージョンが適用されます。

  リクエストで起動テンプレート ID または起動テンプレート名を指定します。
  + --launch-template-id `string` — 起動テンプレートの ID。
  + --launch-template-name `string` — 起動テンプレート名。
  + --default-version `string` — デフォルトバージョンとして設定された起動テンプレートのバージョン番号。
  + --endpoint `snowballEndpoint` – Amazon EC2 互換 API オペレーションを使用して、コンピューティングインスタンスをプログラムで管理できるようにする値。詳細については、「[Snowball Edge のエンドポイントとして EC2-compatible AWS CLI エンドポイントを指定する](#using-ec2-adapter-cli-endpoint)」を参照してください。
+ [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) — 指定したインスタンスの属性を変更します。以下の属性がサポートされています。
  + `instanceInitiatedShutdownBehavior`
  + `userData`
+ [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) — セキュリティグループから 1 つ以上の Egress ルールを削除します。
  + [--group-id `value`] — セキュリティグループの ID
  + [--ip-permissions `value`] — IP アクセス許可の 1 つ以上のセット。
+ [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) — セキュリティグループに対する 1 つ以上の Ingress ルールを取り消します。`revoke-security-group-ingress` を呼び出すときは、`group-name` または `group-id` のどちらかの値を指定する必要があります。
  + [--group-name `value`] — セキュリティグループ名。
  + [--group-id `value`] — セキュリティグループの ID。
  + [--ip-permissions `value`] — IP アクセス許可の 1 つ以上のセット。
  + [--protocol `value`] IP プロトコル。指定できる値は `tcp`、`udp`、および `icmp` です。「すべてのプロトコル」が指定されている場合を除き、`--port` 引数は必須です (-1)。
  + [--port `value`] — TCP または UDP 用に許可するポートの範囲。単一の整数または範囲 (最小/最大)。

    ICMP の場合、1 つの整数または範囲 (`type`-`code`) です。この場合、`type` は ICMP タイプ番号を表し、`code` は ICMP コード番号を表します。-1 の値は、すべての ICMP タイプのすべての ICMP コードを示します。`type` だけの -1 の値は、特定の ICMP タイプのすべての ICMP コードを示します。
  + [--cidr `value`] — CIDR IP の範囲。
+ [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) — AMI 用の Snowball AMI ID を使用して、複数のコンピューティングインスタンスを起動します。
**注記**  
インスタンスのサイズとタイプに応じて、Snowball Edge 上でコンピューティングインスタンスを起動する際に、最大で 1 時間半かかることがあります。
  + [--block-device-mappings `(list)]` — ブロックデバイスマッピングのエントリ。パラメータ `DeleteOnTermination`、`VolumeSize`、および `VolumeType` がサポートされています。ブートボリュームのタイプは `sbg1` である必要があります。

    このコマンドの JSON 構文は次のとおりです。

    ```
    {
       "DeviceName": "/dev/sdh",
       "Ebs": 
       {
          "DeleteOnTermination": true|false,
          "VolumeSize": 100,
          "VolumeType": "sbp1"|"sbg1"
       }
    }
    ```
  + --count — 起動するインスタンスの数。単一の数字が指定されている場合は、起動する最小値と見なされます (デフォルトは 1)。`min:max` の形式で範囲が指定されている場合、最初の数字は起動するインスタンスの最小数と解釈され、2 番目は起動するインスタンスの最大数として解釈されます。
  + --image-id — `describe-images` を呼び出して取得できる、AMI の Snowball AMI ID。インスタンスを起動するには、AMI が必要です。
  + --InstanceInitiatedShutdownBehavior — デフォルトでは、インスタンスから (shutdown や poweroff などのコマンドを使用して) シャットダウンを開始すると、インスタンスが停止します。この動作を変更して、インスタンスの停止ではなく終了させることができます。パラメータ `stop` および `terminate` がサポートされています。デフォルトは `stop` です。詳細については、*Amazon EC2 Linux インスタンス用ユーザーガイド*の[インスタンスによって開始されるシャットダウン動作の変更](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior)を参照してください。
  + --instance-type – `sbe` インスタンスタイプ。
  + --launch-template `structure` — インスタンスの起動に使用する起動テンプレート。`run-instances` コマンドで指定したパラメータはすべて、起動テンプレート内の同じパラメータを上書きします。起動テンプレートの名前または ID のいずれかを指定できますが、両方を指定することはできません。

    ```
    {
       "LaunchTemplateId": "string",
       "LaunchTemplateName": "string",
       "Version": "string"
    }
    ```
  + --security-group-ids — 1 つ以上のセキュリティグループの ID。[CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html) を使用してセキュリティグループを作成できます。値を指定しない場合、デフォルトのセキュリティグループの ID が作成したインスタンスに割り当てられます。
  + --tag-specifications — 起動中にリソースに適用されるタグ。起動時にのみインスタンスにタグ付けできます。指定されたタグは、起動時に作成されたすべてのインスタンスに適用されます。作成後のリソースにタグを付けるには、`create-tags` を使用します。
  + --user-data — インスタンスで使用可能なユーザーデータ。を使用している場合は AWS CLI、base64 エンコードが実行され、ファイルからテキストをロードできます。それ以外の場合は、base64 でエンコードされたテキストを指定する必要があります。
  + --key-name (文字列) — キーペア名。キーペアは、`CreateKeyPair` または `ImportKeyPair` を使用して作成できます。。
**警告**  
キーペアを指定しない場合、ユーザーが別の方法でログインすることを許可する設定の AMI を選択した場合を除き、インスタンスに接続することはできません。
+ [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) — 以前に停止した `sbe` インスタンスを開始します。インスタンスにアタッチされたすべてのリソースは、開始や停止の間は保持されますが、インスタンスを終了させると消去されます。
  + --instance-ids – デバイスで停止した 1 つ以上の `sbe` インスタンスの ID。
+ [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) — 実行中の `sbe` インスタンスを停止します。インスタンスにアタッチされたすべてのリソースは、開始や停止の間は保持されますが、インスタンスを終了させると消去されます。
  + --instance-ids – デバイスで停止する 1 つ以上の `sbe` インスタンスの ID。
+ [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) — 1 つ以上のインスタンスをシャットダウンします。このオペレーションはべき等です。インスタンスを複数回終了させると、各コールは成功します。インスタンスにアタッチされたすべてのリソースは、開始や停止の間は保持されますが、インスタンスを終了させるとデータは消去されます。
**注記**  
デフォルトでは、`shutdown` や `poweroff` などのコマンドを使用してインスタンスからシャットダウンを開始すると、インスタンスは停止します。ただし、`InstanceInitiatedShutdownBehavior` 属性を使用してこの動作を変更し、これらのコマンドでインスタンスを終了させることができます。詳細については、*Amazon EC2 Linux インスタンス用ユーザーガイド*の[インスタンスによって開始されるシャットダウン動作の変更](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior)を参照してください。
  + --instance-ids — デバイスで終了する 1 つ以上の `sbe` インスタンスの ID。これらのインスタンスに保存されたすべての関連するデータは失われます。
+ [create-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-key-pair.html) — 指定した名前で 2,048 ビットの RSA キーペアを作成します。Amazon EC2 は公開キーを保存し、ファイルに保存するプライベートキーを表示します。PEM エンコードされた PKCS\$11 形式 (暗号化なし) で、プライベートキーが返されます。指定した名前のキーがすでに存在する場合、Amazon EC2 からエラーが返されます。
  + —key-name (文字列) — キーペアの一意の名前。

    制約: 最大 255 字の ASCII 文字。
  + [--tag-specifications] (リスト) — 新しいキーペアに適用するタグ。

  ```
  {
      "ResourceType": "image"|"instance"|"key-pair"|"launch-template"|"security-group",
      "Tags": [
        {
          "Key": "string",
          "Value": "string"
        }
        ...
      ]
    }
    ...
  ```
+ [import-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-key-pair.html) — 
  + —key-name (文字列) — キーペアの一意の名前。

    制約: 最大 255 字の ASCII 文字。
  + --public-key-material (blob) — 公開キー。API コールの場合、テキストは base64 でエンコードされている必要があります。コマンドラインツールでは、base64 エンコーディングが自動的に実行されます。
  + [--tag-specifications] (リスト) — 新しいキーペアに適用するタグ。

  ```
  {
      "ResourceType": "image"|"instance"|"key-pair"|"launch-template"|"security-group",
      "Tags": [
        {
          "Key": "string",
          "Value": "string"
        }
        ...
      ]
    }
  ```
+ [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) — 

  [--filters] (リスト) — フィルター。
  + key-pair-id — キーペアの ID。
  + key-name — キーペア名。
  + tag-key — リソースに割り当てられたタグのキー。このフィルターを使用して、タグの値に関係なく、特定のキーでタグが割り当てられているすべてのリソースを検索します。
  + [--tag-specifications] (リスト) — 新しいキーペアに適用するタグ。
  + tag :key — リソースに割り当てられたタグのキーと値の組み合わせ。フィルター名にタグキーを使用し、タグ値をフィルター値として使用します。例えば、キー `Owner` と値 `Team A` のタグを持つすべてのリソースを検索するには、`tag:Owner` のフィルター名と `Team A` のフィルター値を指定します。

  ```
  {
      "Name": "string",
      "Values": ["string", ...]
    }
    ...
  ```
+ [--key-names] (リスト) — キーペア名。

  デフォルト: すべてのキーペアを説明します。
+ [--key-pair-ids] (リスト) — キーペアの ID。
+ [delete-key-pair](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-key-pair.html) — 
  + [--key-name] (文字列) — キーペア名。
  + [--key-pair-id] (文字列) — キーペアの ID。

## Snowball Edge でサポートされている Amazon EC2-compatible API オペレーション
<a name="using-ec2-adapter-supported-api"></a>

以下は、Snowball Edge で使用できる Amazon EC2 互換 API オペレーションと、「Amazon EC2 API リファレンス」**内の説明へのリンクです。Amazon EC2 互換 API コールでは、Signature Version 4 (SigV4) 署名が必要です。 AWS CLI または AWS SDK を使用してこれらの API コールを行う場合、SigV4 署名が処理されます。それ以外の場合は、お客様独自の SigV4 署名ソリューションを実装する必要があります。詳細については、「[Snowball Edge でのローカル Amazon S3 認証情報の取得と使用](using-adapter.md#adapter-credentials)」を参照してください。
+ [AssociateAddress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateAddress.html) — Elastic IP アドレスをインスタンスまたはネットワークインターフェイスに関連付けます。
+  [AttachVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AttachVolume.html) — 以下のリクエストパラメータがサポートされます。
  + `Device`
  + `InstanceId`
  + `VolumeId`
+ [AuthorizeSecurityGroupEgress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupEgress.html) — Snowball Edge デバイスで使用するために、1 つ以上の Egress ルールをセキュリティグループに追加します。具体的には、このアクションでは、1 つ以上の IPv4 CIDR アドレス範囲にインスタンスがトラフィックを送信できます。
+ [AuthorizeSecurityGroupIngress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupIngress.html) — 1 つ以上の Ingress ルールをセキュリティグループに追加します。AuthorizeSecurityGroupIngress を呼び出すときは、`GroupName` または `GroupId` のどちらかの値を指定する必要があります。
+  [CreateVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) — 次のリクエストパラメータがサポートされます。
  + `SnapshotId`
  + `Size`
  + `VolumeType`
  + `TagSpecification.N`
+ [CreateLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) — 次のリクエストパラメータがサポートされます。
  + `ImageId`
  + `InstanceType`
  + `SecurityGroupIds`
  + `TagSpecifications`
  + `UserData`
+ [CreateLaunchTemplateVersion](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplateVersion.html)
+ [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html) — 次のリクエストパラメータがサポートされます。
  + `AMI`
  + `Instance`
  + `Launch template`
  + `Security group`
+ [CreateSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html) — Snowball Edge にセキュリティグループを作成します。最大で 50 個のセキュリティグループを作成できます。セキュリティグループを作成するときに、任意のフレンドリ名を指定します。
+ [DeleteLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteLaunchTemplate.html)
+ [DeleteLaunchTemplateVersions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteLaunchTemplateVersions.html)
+ [DeleteSecurityGroup](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSecurityGroup.html) — セキュリティグループを削除します。インスタンスに関連付けられている、または他のセキュリティグループによって参照されているセキュリティグループを削除しようとすると、`DependencyViolation` でそのオペレーションは失敗します。
+ [DeleteTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteTags.html) — 指定したリソースのセットから指定したタグのセットを削除します。
+  [DeleteVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteVolume.html) — 次のリクエストパラメータがサポートされます。
  + `VolumeId`
+ [DescribeAddresses](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAddresses.html)
+ [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html)
+ [DescribeInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceAttribute.html) – 次の属性がサポートされています。
  + `instanceType`
  + `userData`
+ <a name="API_describe-instance-status"></a>[DescribeInstanceStatus](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceStatus.html)
+ [DescribeLaunchTemplates](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplates.html)
+ [DescribeLaunchTemplateVersions](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeLaunchTemplateVersions.html)
+ [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html)
+ [DescribeSecurityGroups](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html) – 1 つ以上のセキュリティグループを説明します。`DescribeSecurityGroups` はページ割りされたオペレーションです。複数の API コールを発行して、結果のデータセット全体を取得できます。
+ [DescribeTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeTags.html) – このコマンドでは、次のフィルタがサポートされています。
  + `resource-id`
  + `resource-type` — AMI あるいはコンピューティングインスタンスのみ
  + `key`
  + `value`
+  [DescribeVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html) — 次のリクエストパラメータがサポートされます。
  + `MaxResults`
  + `NextToken`
  + `VolumeId.N`
+  [DetachVolume](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DetachVolumes.html) — 次のリクエストパラメータがサポートされます。
  + `Device`
  + `InstanceId`
  + `VolumeId`
+ [DisassociateAddress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateAddress.html)
+ [GetLaunchTemplateData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetLaunchTemplateData.html)
+ [ModifyLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyLaunchTemplate.html)
+ [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html) — `userData` の属性のみがサポートされます。
+ [RevokeSecurityGroupEgress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RevokeSecurityGroupEgress.html) — セキュリティグループから 1 つ以上の Egress ルールを削除します。
+ [RevokeSecurityGroupIngress](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RevokeSecurityGroupIngress.html) — セキュリティグループに対する 1 つ以上の Ingress ルールを取り消します。RevokeSecurityGroupIngress を呼び出すときは、`group-name` または `group-id` のどちらかの値を指定する必要があります。
+ [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) –
**注記**  
インスタンスのサイズとタイプに応じて、Snowball Edge 上でコンピューティングインスタンスを起動する際に、最大で 1 時間半かかることがあります。
+ [StartInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StartInstances.html)
+ [StopInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_StopInstances.html) — 停止したインスタンスに関連付けられているリソースは保持されます。これらのリソースを解放するには、インスタンスを終了させます。ただし、関連付けられているすべてのデータが削除されます。
+ [TerminateInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html)

# Snowball Edge での起動テンプレートを使用した EC2-compatibleインスタンスの自動起動
<a name="ec2-autostart"></a>

起動テンプレートと Snowball Edge クライアント起動設定コマンドを使用して、 AWS Snowball Edge デバイスで Amazon EC2-compatibleインスタンスを自動的に起動できます。

*起動テンプレート*には、Snowball Edge で Amazon EC2 互換インスタンスを作成するために必要な設定情報が含まれています。起動テンプレートを使用して起動パラメータを保存できるため、Snowball Edge で EC2 互換インスタンスを起動するたびにパラメータを指定する必要がありません。

Snowball Edge で自動起動設定を使用する際に、Amazon EC2 互換インスタンスを起動するためのパラメータを設定します。Snowball Edge の設定後、再起動してロックを解除すると、自動起動設定を使用して、指定したパラメータでインスタンスが起動します。自動起動設定を使用して起動されたインスタンスが停止した場合は、デバイスのロックを解除すると、インスタンスの実行が開始されます。

**注記**  
自動起動設定を初めて指定した後は、デバイスを再起動してインスタンスを起動します。以降、(計画済みまたは計画外の再起動後の) インスタンスの起動はすべて、デバイスのロック解除後に自動的に行われます。

起動テンプレートを使用して、Amazon EC2 互換インスタンスを起動するときに、そのインスタンスの Amazon マシンイメージ (AMI) ID、インスタンスタイプ、ユーザーデータ、セキュリティグループ、タグを指定できます。サポートされているインスタンスタイプについては、「[Snowball Edge デバイスのコンピューティングインスタンスのクォータ](ec2-edge-limits.md)」を参照してください。

Snowball Edge で EC2 互換インスタンスを自動起動させるには、以下のステップに従います。

1.  AWS Snowball Edge デバイスを注文するときは、コンピューティングインスタンスを持つ Snowball Edge デバイスを注文するジョブを作成します。詳細については、「[Snowball Edge を注文するジョブの作成](https://docs.aws.amazon.com/snowball/latest/developer-guide/create-job-common.html)」を参照してください。

1. Snowball Edge を入手したら、そのロックを解除します。

1. EC2 互換 API コマンド `aws ec2 create-launch-template` を使用して、起動テンプレートを作成します。

1. Snowball Edge クライアントコマンド `snowballEdge create-autostart-configuration` を使用して、EC2 互換インスタンスの起動テンプレートをネットワーク設定にバインドします。詳細については、「[Snowball Edge での EC2-compatible起動設定の作成](using-ec2-edge-client.md#ec2-edge-create-autostart-config)」を参照してください。

1. デバイスを再起動し、そのロックを解除します。起動テンプレートで指定した属性と、Snowball Edge クライアントコマンド `create-autostart-configuration` を使用して、EC2 互換インスタンスが自動起動します。

実行中のインスタンスのステータスを表示するには、EC2 互換 API コマンド `describe-autostart-configurations` を使用します。

**注記**  
起動テンプレート AWS Snowball Edge をサポートするためのコンソールまたはジョブ管理 API はありません。 AWS Snowball Edge デバイスで EC2 互換インスタンスを自動起動させるには、EC2 互換コマンドと Snowball Edge クライアント CLI コマンドを使用します。

# Snowball Edge での Amazon EC2-compatibleインスタンスでの Snow 用インスタンスメタデータサービスの使用
<a name="imds"></a>

IMDS for Snow は、Snow 上の Amazon EC2 互換インスタンスにインスタンスメタデータサービス (IMDS) を提供します。インスタンスメタデータは、インスタンスに関する情報のカテゴリです。ホスト名**、イベント**、セキュリティグループ**などのカテゴリが含まれます。IMDS for Snow を使用すると、インスタンスメタデータを使用して、Amazon EC2 互換インスタンスの起動時に指定したユーザーデータにアクセスすることもできます。例えば、IMDS for Snow を使用して、インスタンスを設定するためのパラメータを指定したり、単純なスクリプトにこれらのパラメータを含めたりすることができます。汎用 AMI をビルドし、ユーザーデータを使って起動時に提供された設定ファイルを変更することができます。

インスタンスメタデータ、ユーザーデータ、および Snow EC2 互換インスタンスについては、本ガイドの「[サポートされているインスタンスメタデータとユーザーデータ](https://docs.aws.amazon.com/snowball/latest/developer-guide/edge-compute-instance-metadata.html)」を参照してください。

**重要**  
インスタンスメタデータおよびユーザーデータにはそのインスタンス自体内からのみアクセスできるものの、データは認証または暗号化手法によって保護されていません。インスタンス、そしてインスタンス上で実行される任意のソフトウェアに対して直接アクセス権がある可能性がある人はメタデータを表示できます。そのため、パスワードまたは存続期間の長い暗号化キーなどの機密データはユーザーデータとして保管しないようにしてください。

**注記**  
このセクションの例では、インスタンスメタデータサービスの IPv4 アドレスを使用します (169.254.169.254)。リンクローカル IPv6 アドレスを使用したインスタンスメタデータの取得はサポートされていません。

**Topics**
+ [Snowball Edge の IMDS バージョン](imds-versions.md)
+ [Snowball Edge で IMDSv1 と IMDSv2 を使用してインスタンスメタデータを取得する例](imds-code-examples.md)

# Snowball Edge の IMDS バージョン
<a name="imds-versions"></a>

IMDS バージョン 2 または IMDS バージョン 1 を使用して、実行中のインスタンスからインスタンスメタデータにアクセスできます。
+ インスタンスメタデータサービスバージョン 2 (IMDSv2) – セッション指向メソッド
+ インスタンスメタデータサービスバージョン 1 (IMDSv1) – リクエスト/レスポンス方式

Snow ソフトウェアのバージョンによって、IMDSv1 または IMDSv2、あるいは両方を使用できます。これは、EC2 互換インスタンスで実行されている AMI の種類によっても異なります。Ubuntu 20.04 を実行している AMI など、一部の AMI では IMDSv2 が必要です。インスタンスメタデータサービスは、`PUT` または `GET` ヘッダーの有無によって IMDSv1 と IMDSv2 リクエストを区別します。IMDSv2 はこれら両方のヘッダーを使用します。IMDSv1 は `GET` ヘッダーのみを使用します。

AWS では、IMDSv2 のセキュリティが高いため、IMDSv1 ではなく IMDSv2 の使用を推奨しています。詳細については、[EC2 Instance Metadata Service の拡張により、オープンファイアウォール、リバースプロキシ、および SSRF の脆弱性に対して多層防御を追加](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/)を参照してください。

## Snowball Edge の IMDSv2
<a name="imdsv2"></a>

IMDSv2 を使用してインスタンスメタデータをリクエストする場合、リクエストは次のルールに従う必要があります。

1. `PUT` リクエストを使って、インスタンスメタデータサービスに対してセッションを開始します。`PUT` リクエストは、インスタンスメタデータサービスに対する後続の `GET` リクエストに含める必要のあるセッショントークンを返します。セッション期間を定義するセッショントークン。セッション期間は、最短で 1 秒、最長で 6 時間に設定可能です。この期間中、以降のリクエストで同じセッショントークンを使用できます。この期間の期限が切れたら、将来のリクエストに使用する新しいセッショントークンを作成する必要があります。このトークンは、IMDSv2を使ってメタデータにアクセスするのに必要です。

1. トークンを、インスタンスメタデータサービスに対するすべての`GET`リクエストに含めます。

   1. トークンはインスタンス固有のキーです。トークンは他の EC2 互換インスタンスでは有効ではなく、生成されたインスタンスの外部で使用しようとすると拒否されます。

   1. `PUT`リクエストにはトークンの有効期限 (TTL) を最大 6 時間 (21,600 秒) まで秒単位で指定するヘッダーが含まれている必要があります。トークンは論理的セッションを表します。TTL はトークンが有効な時間の長さ、つまりセッションの期間を指定します。

   1. トークンの期限が切れた後、インスタンスメタデータにアクセスし続けるためには、別の `PUT` リクエストを使用して新しいセッションを作成する必要があります。

   1. 各リクエストについてトークンを再使用するか、あるいは新しいトークンを作成することを選択できます。少数のリクエストでは、インスタンスメタデータサービスにアクセスする必要があるたびに、トークンを生成してすぐに使用するほうが簡単かもしれません。ただし、効率を重視するなら、インスタンスメタデータをリクエストする必要があるたびに`PUT`リクエストを書くより、トークン期間を長く指定して再使用することができます。それぞれが独自のセッションを表すトークンを同時に使用できる数については実際的に制限がありません。

HTTP `GET` および `HEAD` メソッドは IMDSv2 インスタンスメタデータリクエストで許可されています。`PUT` リクエストは、`X-Forwarded-For` ヘッダーが含まれている場合、拒否されます。

デフォルトで、`PUT` リクエストに対するレスポンスのホップ制限 (有効期限) は IP プロトコルレベルで 1 です。IMDS for Snow には、`PUT` レスポンスのホップ制限を変更する機能はありません。

次の例では、Linux シェルスクリプトと IMDSv2 を使って、最上位インスタンスメタデータ項目を取得します。この例では以下を行います。

1. `PUT` リクエストを使って、6 時間 (21,600 秒) 持続するセッショントークンを作成する

1. セッショントークンヘッダーを `TOKEN` という変数に格納する

1. トークンを使って最上位のメタデータ項目をリクエストする

EC2 互換トークンを生成するには、2 つのコマンドを使用します。コマンドは個別に実行することも、1 つのコマンドとして実行することもできます。

最初に、次のコマンドを使用してトークンを生成します。

**注記**  
`X-aws-ec2-metadata-token-ttl-seconds` は必須ヘッダーです。このヘッダーが含まれていない場合は、「**400 - Missing or Invalid Parameters**」エラーコードが表示されます。

```
    [ec2-user ~]$ TOKEN=curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"
```

その後、次のコマンドを使用して、トークンを使用して最上位のメタデータ項目を生成します。

```
    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
```

**注記**  
トークンの作成時にエラーが発生した場合は、有効なトークンではなくエラーメッセージが変数に格納され、コマンドは機能しません。

トークンを保存し、コマンドを組み合わせることができます。次の例では、上記の 2 つのコマンドを組み合わせて、セッショントークンヘッダーを `TOKEN` という変数に格納します。

**Example 組み合わされたコマンド**  

```
    [ec2-user ~]$ TOKEN=curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/
```

トークンを作成した後、期限切れになるまで再使用することができます。次のコマンド例では、インスタンスの起動に使用される AMI の ID を取得し、前の例で `$TOKEN` で作成されたトークンに格納します。

**Example トークンの再利用**  

```
    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id                        
```

## Snowball Edge の IMDSv1
<a name="imdsv1"></a>

IMDSv1 はリクエスト/レスポンスモデルを使用します。インスタンスメタデータをリクエストするには、`GET` リクエストをインスタンスメタデータサービスに送信します。

```
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/                   
```

インスタンスメタデータは実行中のインスタンスから利用できるため、Amazon EC2 コンソールや AWS CLI を使用してアクセスする必要はありません。これはインスタンスから実行するスクリプトを記述しているときに便利です。例えば、インスタンスメタデータからインスタンスのローカル IP アドレスにアクセスして、外部アプリケーションへの接続を管理できます。インスタンスメタデータはいくつかのカテゴリに分けられます。各インスタンスメタデータカテゴリの説明については、本ガイドの「[サポートされているインスタンスメタデータとユーザーデータ](https://docs.aws.amazon.com/snowball/latest/developer-guide/edge-compute-instance-metadata.html)」を参照してください。

実行中のインスタンス内からインスタンスメタデータのすべてのカテゴリを表示するには、次の IPv4 URI を使用します。

```
    http://169.254.169.254/latest/meta-data/
```

これらの IP アドレス は、リンクローカルアドレスであり、インスタンスからのみ使用することが可能です。詳細については、Wikipedia の[リンクローカルアドレス](https://en.wikipedia.org/wiki/Link-local_address)を参照してください。

すべてのインスタンスメタデータがテキスト (HTTP コンテンツタイプ `text/plain`) として返されます。

特定のメタデータリソースのリクエストでは、適切な値が返されます。リソースが使用できない場合は「**404 - Not Found**」HTTP エラーコードが返されます。

一般的なメタデータリソースに対するリクエスト (URI が `/` 文字で終わる場合) は、使用可能なリソースのリストを返すか、そのようなリソースがない場合は「**404 - Not Found**」HTTP エラーコードを返します。リスト項目は個別の行に表示され、各行の末尾には改行記号 (ASCII 文字コード 10) が付いています。

IMDSv1 を使って行われたリクエストでは、次の HTTP エラーコードが返されます。
+ **400 ‐ Missing or Invalid Parameters** – `PUT` リクエストは無効です。
+ **401 ‐ Unauthorized** – `GET`リクエストで無効なトークンが使用されています。推奨されるアクションは新しいトークンを生成することです。
+ **403 ‐ Forbidden** – リクエストが許可されていないか、インスタンスメタデータサービスがオフになっています。

# Snowball Edge で IMDSv1 と IMDSv2 を使用してインスタンスメタデータを取得する例
<a name="imds-code-examples"></a>

次の例は、Linux インスタンスで使用できるコマンドを示しています。

**Example 使用可能なインスタンスメタデータのバージョンの取得**  
次の例では使用できるインスタンスメタデータのバージョンを取得しています。各バージョンは新しいインスタンスのメタデータカテゴリがリリースされたときのインスタンスメタデータビルドを参照してください。以前のバージョンに存在する構造および情報に依存するスクリプトがある場合は以前のバージョンを使用することができます。  
IMDSv2  

```
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/
    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current  Dload  Upload   Total   Spent    Left  Speed
    100        56         100      56      0       0       3733     0    --:--:-- --:--:-- --:--:--  3733
    *   Trying 169.254.169.254...
    * TCP_NODELAY set
    * Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
    > GET / HTTP/1.1
    > Host: 169.254.169.254
    > User-Agent: curl/7.61.1
    > Accept: */*
    > X-aws-ec2-metadata-token: MDAXcxNFLbAwJIYx8KzgNckcHTdxT4Tt69TzpKExlXKTULHIQnjEtXvD
    >
    * HTTP 1.0, assume close after body
    < HTTP/1.0 200 OK
    < Date: Mon, 12 Sep 2022 21:58:03 GMT
    < Content-Length: 274
    < Content-Type: text/plain
    < Server: EC2ws
    <
    1.0
    2007-01-19
    2007-03-01
    2007-08-29
    2007-10-10
    2007-12-15
    2008-02-01
    2008-09-01
    2009-04-04
    2011-01-01
    2011-05-01
    2012-01-12
    2014-02-25
    2014-11-05
    2015-10-20
    2016-04-19
    2016-06-30
    2016-09-02
    2018-03-28
    2018-08-17
    2018-09-24
    2019-10-01
    2020-10-27
    2021-01-03
    2021-03-23
    * Closing connection 0
```
IMDSv1  

```
    [ec2-user ~]$ curl http://169.254.169.254/
    1.0
    2007-01-19
    2007-03-01
    2007-08-29
    2007-10-10
    2007-12-15
    2008-02-01
    2008-09-01
    2009-04-04
    2011-01-01
    2011-05-01
    2012-01-12
    2014-02-25
    2014-11-05
    2015-10-20
    2016-04-19
    2016-06-30
    2016-09-02
    2018-03-28
    2018-08-17
    2018-09-24
    2019-10-01
    2020-10-27
    2021-01-03
    2021-03-23
    latest
```

**Example 最上位のメタデータ項目の取得**  
次の例では、最上位のメタデータ項目を取得します。最上位のメタデータ項目の詳細については、本ガイドの「[サポートされているインスタンスメタデータとユーザーデータ](https://docs.aws.amazon.com/snowball/latest/developer-guide/edge-compute-instance-metadata.html)」を参照してください。  
IMDSv2  

```
    [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ 
    ami-id
    hostname
    instance-id
    instance-type
    local-hostname
    local-ipv4
    mac
    network/
    reservation-id
    security-groups
```
IMDSv1  

```
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/ 
    ami-id
    hostname
    instance-id
    instance-type
    local-hostname
    local-ipv4
    mac
    network/
    reservation-id
    security-groups
```

**Example 最上位メタデータの値の取得**  
次の例では、前の例で取得された一部の最上位メタデータ項目の値を取得します。IMDSv2 リクエストは、前の例のコマンドで作成された保管済みトークン (期限内であると仮定) を使用します。  
`ami‐id` IMDSv2  

```
    curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890                    
```
`ami-id` IMDSv1  

```
    curl http://169.254.169.254/latest/meta-data/ami-id ami-0abcdef1234567890                    
```
`reservation-id` IMDSv2  

```
    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/reservation-id r-0efghijk987654321
```
`reservation-id` IMDSv1  

```
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/reservation-id \
    r-0efghijk987654321
```
`local-hostname` IMDSv2  

```
    [ec2-user ~]$ curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/local-hostname ip-00-000-00-00                    
```
`local-hostname` IMDSv1  

```
    [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-hostname ip-00-000-00-00
```

# Snowball Edge での Amazon EC2-compatibleインスタンスでのブロックストレージの使用
<a name="edge-ebs"></a>

Snowball Edge のブロックストレージでは、アプリケーションのニーズに基づいてブロックストレージを追加または削除できます。Amazon EC2 互換インスタンスにアタッチしたボリュームは、インスタンスの有効期間とは無関係に存続するストレージボリュームとして公開されます。使い慣れた Amazon EBS API を使用して、ブロックストレージを管理できます。

特定の Amazon EBS コマンドは、EC2 互換エンドポイントを使用することでサポートされます。サポートされているコマンドには、`attach-volume`、`create-volume`、`delete-volume`、`detach-volume`、および `describe-volumes` があります。これらのコマンドの詳細については、[Snowball Edge でサポートされている EC2-compatible AWS CLI コマンドのリスト](using-ec2-endpoint.md#list-cli-commands-ec2-edge) を参照してください。

**重要**  
ボリュームをデタッチする前に、デバイスに存在するすべてのファイルシステムをオペレーティングシステム内でアンマウントしてください。この操作を行わないと、データが失われる可能性があります。

Amazon EBS ボリュームのクォータ、およびデバイスの Amazon EBS ボリュームとクラウドの Amazon EBS ボリュームの違いを以下に示します。
+ Amazon EBS ボリュームは、このボリュームをホストしているデバイスで実行中の EC2 互換インスタンスでのみ使用できます。
+ ボリュームタイプは、キャパシティー最適化 HDD (`sbg1`) またはパフォーマンス最適化 SSD (`sbp1`) のいずれかに制限されます。デフォルトのボリュームタイプは `sbg1` です。
+ Snowball Edge は、Amazon S3 オブジェクトと Amazon EBS の間で HDD メモリを共有します。で HDD ベースのブロックストレージを使用すると AWS Snowball Edge、Amazon S3 オブジェクトで使用できるメモリの量が減ります。同様に、Amazon S3 オブジェクトを使用すると、HDD ボリュームの Amazon EBS ブロックストレージに使用可能なメモリの量が減ります。
+ Amazon EC2 互換のルートボリュームは常に IDE ドライバーを使用します。追加の Amazon EBS ボリュームは、Virtio ドライバー (使用可能な場合) を優先的に使用します。Virtio ドライバーを使用できない場合、SBE はデフォルトで IDE ドライバーを使用します。パフォーマンスが向上するため、Virtio ドライバーをお勧めします。
+ Amazon EBS ボリュームを作成する際、`encrypted` パラメータはサポートされません。ただし、デバイス上のすべてのデータは、デフォルトで暗号化されます。。
+ ボリュームの範囲は 1 GB ～ 10 TB です。
+ 最大 10 個の Amazon EBS ボリュームを 1 つの EC2 互換インスタンスにアタッチできます。
+  AWS Snowball Edge デバイスで保持できる Amazon EBS ボリュームの数に正式な制限はありません。ただし、Amazon EBS ボリュームの総容量は、デバイスで使用可能なスペースによって制限されます。

# Snowball Edge のセキュリティグループによるネットワークトラフィックの制御
<a name="edge-security-groups"></a>

*セキュリティグループ*は、1 つ以上のインスタンスのトラフィックを制御する仮想ファイアウォールとして機能します。インスタンスを起動するときに、1 つ以上のセキュリティグループとインスタンスを関連付けます。各セキュリティグループに対してルールを追加して、関連付けられたインスタンスに対するトラフィックを許可できます。詳細については、「Amazon EC2 ユーザーガイド」の「[Amazon EC2 security groups for Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html)」を参照してください。

Snowball Edge デバイスのセキュリティグループは、 AWS クラウドのセキュリティグループに類似しています。Virtual Private Cloud (VPC) は、Snowball Edge デバイスではサポートされません。

Snowball Edge のセキュリティグループと EC2 VPC のセキュリティグループの上記以外の違いを次に示します。
+ 各 Snowball Edge デバイスのセキュリティグループは、最大 50 個に制限されています。
+ デフォルトのセキュリティグループでは、すべてのインバウンドトラフィックとアウトバウンドトラフィックを許可します。
+ ローカルインスタンス間のトラフィックは、プライベートインスタンス IP アドレスまたはパブリック IP アドレスのいずれかを使用します。たとえば、SSH を使用してインスタンス A からインスタンス B に接続するとします。この場合、ターゲットの IP アドレスは、セキュリティグループのルールでこのトラフィックが許可される場合に、インスタンス B のパブリック IP あるいはプライベート IP アドレスのいずれかを使用できます。
+  AWS CLI アクションと API コールにリストされているパラメータのみがサポートされています。これらは、通常は EC2 VPC インスタンスでサポートされているパラメータのサブセットです。

サポートされている AWS CLI アクションの詳細については、「」を参照してください[Snowball Edge でサポートされている EC2-compatible AWS CLI コマンドのリスト](using-ec2-endpoint.md#list-cli-commands-ec2-edge)。サポートされている API オペレーションの詳細については、「[Snowball Edge でサポートされている Amazon EC2-compatible API オペレーション](using-ec2-endpoint.md#using-ec2-adapter-supported-api)」を参照してください。

# Snowball Edge でサポートされている EC2-compatibleインスタンスメタデータとユーザーデータ
<a name="edge-compute-instance-metadata"></a>

*インスタンスメタデータ*はインスタンスに関するデータで、実行中のインスタンスを設定または管理するために使用します。Snowball Edge では、コンピューティングインスタンス用の、インスタンスメタデータカテゴリのサブセットがサポートされます。詳細については「Amazon EC2 ユーザーガイド」の「[インスタンスメタデータとユーザーデータ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)」を参照してください。

以下のカテゴリがサポートされています。他のカテゴリを使用すると、`404` エラーメッセージが返されます。


**Snowball Edge デバイスでサポートされるインスタンスメタデータのカテゴリ**  

| [データ] | 説明 | 
| --- | --- | 
|  ami-id  | インスタンスの起動に使用される AMI ID。 | 
| hostname | インスタンスのプライベート IPv4 DNS ホスト名。 | 
|  instance-id  | このインスタンスの ID。 | 
|  instance-type  | インスタンスの種類。 | 
|  local-hostname  | インスタンスのプライベート IPv4 DNS ホスト名。 | 
|  local-ipv4  | インスタンスのプライベート IPv4 アドレス。 | 
|  mac  | インスタンスのメディアアクセスコントロール (MAC) アドレス。 | 
|  network/interfaces/macs/mac/local-hostname  | インターフェイスのローカルホスト名。 | 
|  network/interfaces/macs/mac/local-ipv4s  | インターフェイスに関連付けられたプライベート IPv4 アドレス。 | 
|  network/interfaces/macs/mac/mac  | インスタンスの MAC アドレス。 | 
|  network/interfaces/macs/mac/public-ipv4s  | インターフェイスに関連付けられた Elastic IP アドレス。 | 
|  public-ipv4  | パブリック IPv4 アドレス。 | 
|  public-keys/0/openssh-key  | パブリックキー。インスタンスの起動時に指定された場合のみ返されます。 | 
|  reservation-id  | 予約の ID。 | 
| userData | 起動時にインスタンスに指示を送るシェルスクリプト。 | 


**Snowball Edge デバイスでサポートされるインスタンス動的データカテゴリ**  

| [データ] | 説明 | 
| --- | --- | 
| インスタンスアイデンティティ/ドキュメント | インスタンスの属性を含む JSON。instanceId、imageId、privateIp、および instanceType のみが値を持ちます。返されるその他の属性は null です。詳細については、「Amazon EC2 ユーザーガイド」の「[インスタンスアイデンティティドキュメント](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html)」を参照してください。 | 

## Snowball Edge のコンピュータインスタンスのユーザーデータ
<a name="userdatasupport"></a>

シェルスクリプトを使用して、Snowball Edge デバイスのコンピューティングインスタンスのユーザーデータにアクセスします。シェルスクリプトを使用して、起動時にインスタンスに指示を送ることができます。ユーザーデータは、 `modify-instance-attribute` AWS CLI コマンドまたは `ModifyInstanceAttribute` API アクションを使用して変更できます。

**ユーザーデータを変更するには**

1. `stop-instances` AWS CLI コマンドを使用してコンピューティングインスタンスを停止します。

1. `modify-instance-attribute` AWS CLI コマンドを使用して、 `userData` 属性を変更します。

1. `start-instances` AWS CLI コマンドを使用してコンピューティングインスタンスを再起動します。

コンピューティングインスタンスでは、シェルスクリプトのみがサポートされています。Snowball Edge デバイスで実行されるコンピューティングインスタンスでは、`cloud-init` パッケージディレクティブはサポートされません。 AWS CLI コマンドの操作の詳細については、*[AWS CLI 「 コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/)」を参照してください。*

## Snowball Edge で実行されている EC2-compatibleインスタンスの停止
<a name="managing-ec2-instances"></a>

デバイスで作成した Amazon EC2 互換インスタンスを誤って削除しないために、オペレーティングシステムからインスタンスをシャットダウンしないでください。たとえば、`shutdown` または `reboot` コマンドを使用しないでください。オペレーティングシステム内からインスタンスをシャットダウンすると、[terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) コマンドを呼び出すのと同じ結果になります。

代わりに、[stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) コマンドを使用して、保持する Amazon EC2 互換インスタンスを一時停止します。