

# EC2 インスタンスの IPv6 アドレスを管理する
<a name="working-with-ipv6-addresses"></a>

VPC とサブネットに IPv6 CIDR ブロックが関連付けられている場合は起動時または起動後に IPv6 アドレスをインスタンスに割り当てることができます。インスタンスの IPv6 アドレスにコンソールでアクセスするには、**[インスタンス]** ページまたは **[ネットワークインターフェイス]** ページを使用します。以下のタスクでは、インスタンスの IP アドレスを設定します。代わりにネットワークインターフェイスの IP アドレスを設定するには、「[ネットワークインターフェイスの IP アドレスを管理する](managing-network-interface-ip-addresses.md)」を参照してください。

**Topics**
+ [インスタンスへの IPv6 アドレスの割り当て](#assign-ipv6-address)
+ [インスタンスの IPv6 アドレスを表示する](#view-ipv6-addresses)
+ [インスタンスメタデータを使用して IPv6 アドレスを表示する](#view-ipv6-addresses-imds)
+ [インスタンスからの IPv6 アドレスの割り当て解除](#unassign-ipv6-address)

## インスタンスへの IPv6 アドレスの割り当て
<a name="assign-ipv6-address"></a>

IPv6 アドレスは、サブネットの IPv6 アドレス範囲から指定できます。また、Amazon EC2 に自動選択させることもできます。これはプライマリネットワークインターフェイスの IP アドレスです。C1、M1、M2、M3 および T1 のインスタンスタイプは IPv6 アドレスをサポートしていないことに注意してください。

------
#### [ Console ]

**起動時に IPv6 アドレスを割り当てるには**  
[インスタンスを起動する](ec2-launch-instance-wizard.md)ための手順に従います。[ネットワーク設定](ec2-instance-launch-parameters.md#liw-network-settings)を構成するときは**IPv6 IP を自動割り当て**するオプションを選択してください。このオプションが表示されない場合、選択したサブネットには IPv6 CIDR ブロックが関連付けられていません。

**起動後に IPv6 アドレスをインスタンスに割り当てるには**

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

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

1. インスタンスを選択後、[**アクション**]、[**ネットワーク**]、[**IP アドレスの管理**] の順に選択してください。

1. ネットワークインターフェイスを展開します。**[IPv6 addresses]** (IPv6 アドレス) で、**[Assign new IP address]** (新しい IP アドレスの割り当て) を選択してください。

1. サブネットの範囲から IPv6 アドレスを入力します。フィールドを空欄のままにすると、Amazon EC2 が自動的に IPv6 アドレスを選択します。このオプションが表示されない場合、インスタンスのサブネットには IPv6 CIDR ブロックが関連付けられていません。

1. **[保存]** を選択します。

------
#### [ AWS CLI ]

**起動時に IPv6 アドレスを割り当てるには**  
`--ipv6-addresses` オプションで [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) コマンドを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
--ipv6-addresses Ipv6Address=2001:db8::1234:5678:1.2.3.4 Ipv6Address=2001:db8::1234:5678:5.6.7.8
```

Amazon EC2 に IPv6 アドレスを選択させる場合は、代わりに `--ipv6-address-count` のオプションを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
--ipv6-address-count 2
```

**起動後に IPv6 アドレスをインスタンスに割り当てるには**  
[assign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html) コマンドを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
aws ec2 assign-ipv6-addresses \ 
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4 2001:db8::1234:5678:5.6.7.8
```

Amazon EC2 に IPv6 アドレスを選択させる場合は、代わりに `--ipv6-address-count` のオプションを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
aws ec2 assign-ipv6-addresses \
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-address-count 2
```

------
#### [ PowerShell ]

**起動時に IPv6 アドレスを割り当てるには**  
`-Ipv6Address` パラメータで [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) コマンドレットを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
-Ipv6Address $ipv6addr1,$ipv6addr2
```

IPv6 アドレスを次のように定義します。

```
$ipv6addr1 = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr1.Ipv6Address = "2001:db8::1234:5678:1.2.3.4"
$ipv6addr2 = New-Object Amazon.EC2.Model.InstanceIpv6Address
$ipv6addr2.Ipv6Address = "2001:db8::1234:5678:5.6.7.8"
```

Amazon EC2 に IPv6 アドレスを選択させる場合は、代わりに `-Ipv6AddressCount` のパラメータを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
-Ipv6AddressCount 2
```

**起動後に IPv6 アドレスをインスタンスに割り当てるには**  
[Register-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Ipv6AddressList.html) コマンドレットを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address "2001:db8::1234:5678:1.2.3.4","2001:db8::1234:5678:5.6.7.8"
```

Amazon EC2 に IPv6 アドレスを選択させる場合は、代わりに `-Ipv6AddressCount` のパラメータを使用します。次の例では、2 つの IPv6 アドレスを割り当てます。

```
Register-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6AddressCount 2
```

------

## インスタンスの IPv6 アドレスを表示する
<a name="view-ipv6-addresses"></a>

インスタンスの IPv6 アドレスを表示することができます。

------
#### [ Console ]

**インスタンスの IPv6 アドレスを表示するには**

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

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

1. インスタンスを選択してください。

1. **[Networking]** (ネットワーキング) タブで、**[IPv6 addresses]** (IPv6 アドレス) を見つけます。

------
#### [ AWS CLI ]

**インスタンスの IPv6 アドレスを表示するには**  
[describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) コマンドを使用します。

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[].Ipv6Address" \
    --output text
```

以下は出力の例です。

```
2001:db8::1234:5678:1.2.3.4
```

------
#### [ PowerShell ]

**インスタンスの IPv6 アドレスを表示するには**  
[Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) コマンドレットを使用します。

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances.Ipv6Address
```

以下は出力の例です。

```
2001:db8::1234:5678:1.2.3.4
```

------

## インスタンスメタデータを使用して IPv6 アドレスを表示する
<a name="view-ipv6-addresses-imds"></a>

インスタンスに接続すると、インスタンスメタデータを使用して IPv6 アドレスを取得できるようになります。最初に、`http://169.254.169.254/latest/meta-data/network/interfaces/macs/` からインスタンスの MAC アドレスを取得します。

------
#### [ IMDSv2 ]

**Linux**  
次のコマンドを Linux インスタンスから実行します。

```
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" http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

**Server**  
次のコマンドレットを Windows インスタンスから実行します。

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

------
#### [ IMDSv1 ]

**Linux**  
次のコマンドを Linux インスタンスから実行します。

```
curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

**Server**  
次のコマンドレットを Windows インスタンスから実行します。

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/network/interfaces/macs/mac-address/ipv6s
```

------

## インスタンスからの IPv6 アドレスの割り当て解除
<a name="unassign-ipv6-address"></a>

IPv6 アドレスはインスタンスからいつでも割り当て解除できます。

------
#### [ Console ]

**インスタンスから IPv6 アドレスを割り当て解除するには**

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

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

1. インスタンスを選択後、[**アクション**]、[**ネットワーク**]、[**IP アドレスの管理**] の順に選択してください。

1. ネットワークインターフェイスを展開します。**[IPv6 addresses]** (IPv6 アドレス) で、IPv6 アドレスの横にある **[Unassign]** (割り当て解除) を選択してください。

1. **[保存]** を選択します。

------
#### [ AWS CLI ]

**インスタンスから IPv6 アドレスを割り当て解除するには**  
[unassign-ipv6-addresses](https://docs.aws.amazon.com/cli/latest/reference/ec2/unassign-ipv6-addresses.html) コマンドを使用します。

```
aws ec2 unassign-ipv6-addresses \ 
    --network-interface-id eni-1234567890abcdef0 \
    --ipv6-addresses 2001:db8::1234:5678:1.2.3.4
```

------
#### [ PowerShell ]

**インスタンスから IPv6 アドレスを割り当て解除するには**  
[Unregister-EC2Ipv6AddressList](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Ipv6AddressList.html) コマンドレットを使用します。

```
Unregister-EC2Ipv6AddressList `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -Ipv6Address 2001:db8::1234:5678:1.2.3.4
```

------