3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS VPC IPv6-only subnet 作ってみた

Posted at

初めに

2021/11/23にAWSのブログに投稿された「Introducing IPv6-only subnets and EC2 instances」というブログにて、IPv6アドレスのみが割り当てられるsubnetが作れるようになったとの紹介がありました。

気になったので、ブログの通りに実際にIPv6-onlyのsubnetを作ってみようと思います。

1. IPv6を有効化したVPCの作成

  1. AWSのマネジメントコンソールから、VPCのページを開く。
  2. "Create VPC"を選択して作成画面へ行く。
  3. Name tagやIPv4 CIDRを適当に入力し、IPv6 CIDR blockの設定を "Amazon-provided IPv6 CIDR block" にする。Screen Shot 2021-12-18 at 12.07.20.png
  4. "Create VPC" を押してVPCを作成する。

2. Internet Gatewayのattach

手元からsshでEC2インスタンスに接続するので、上記で作成したVPCにInternet Gatewayをアタッチしておく。これはIPv6のVPCに限った話ではないので手順は省略する。もし分からなければ「Internet gateways - Amazon Virtual Private Cloud」などを参考に。

3. IPv6-only subnetの作成

  1. subnetsのページを開く。
  2. "Create subnet" を選択して作成画面へ行く。
  3. VPC IDは先ほど作成したIPv6が有効になっているVPCを選ぶ。Screen Shot 2021-12-18 at 12.03.42.png
  4. Name tagとAZは適当に入力する。
  5. "IPv6-only" のチェックボックスにチェックを付け、適当なIPv6 CIDRを入力する。Screen Shot 2021-12-18 at 12.06.10.png
  6. "Create subnet"を押してsubnetを作成する。

4. 作成したIPv6-only subnetの確認

  1. subnet一覧から先ほど作成したIPv6-only subnetを選んでチェックを付け、Detailsタブを確認する。
  2. IPv4が無効になっており、IPv6-onlyになっていることが確認できる。Screen Shot 2021-12-18 at 12.09.32.png
  3. また、IPv4アドレスのためのAレコードが無効になっており、IPv6アドレスのためのAAAAレコードが有効になっていることも確認できる。Screen Shot 2021-12-18 at 12.19.48.png

5. ルートテーブルの編集

手元からEC2インスタンスにssh接続するため、上記で作成したIPv6-only subnetからインターネットへのルーティングを追加する。具体的には、subnetに紐づいているルートテーブルに以下のルールを追加すればOK

項目
Destination ::/0
Target <先ほど作成したInternet Gateway>

6. IPv6-only EC2インスタンスの作成

  1. EC2のページを開く。
  2. "Launch Instances" を選択し、作成画面へ行く。
  3. AMIとインスタンスタイプを適当に選ぶ。(筆者はAmazon Linux 2とt3.nano)
  4. Step 3: Configure Instance Details で先ほど作成したIPv6対応のVPCとsubnetを選択し、"Auto-assign IPv6 IP" が "Use subnet setting(Enabled)"、"DNS Hostname" の "Enable resource-based IPv6 (AAAA record) DNS requests" にチェックがついていることを確認する。Screen Shot 2021-12-18 at 12.29.33.png
  5. Security Groupの設定で、自分のIPv6からssh接続できるようにしておく(Test your IPv6.とか使えば自分のIPv6は分かる)。
  6. ssh -i <秘密鍵ファイルへのパス> <ユーザー名(Amazon Linxu 2ならec2-user)>@<EC2インスタンスのIPv6アドレス> でEC2インスタンスにssh接続する。
    Screen Shot 2021-12-19 at 20.40.16.png

EC2インスタンスのpublic IPv6アドレスがeth0にアタッチされていることが確認できますね。

7. IPv6アドレスでEC2 Instance Metadata Serviceを利用

IPv6-onlyのEC2インスタンスではIPv6アドレスでEC2 Instance Metadata Serviceを利用できるらしいです。試してみましょう。

まずは手元のawscliから機能を有効化します。

aws ec2 modify-instance-metadata-options --instance-id <your-instance-id> --http-protocol-ipv6 enabled

成功するとなんかしらjsonが返ってきます。

そして、EC2インスタンス内でMetadata Serviceを叩いてみます。

$ curl -w "\n" --connect-timeout 10 'http://[fd00:ec2::254]/latest/meta-data/hostname'
i-08585e84944be3911.ap-northeast-1.compute.internal

hostnameが取得できますね。

もちろんIPv6アドレス取ってくることもできます。

$ curl -w "\n" --connect-timeout 10 'http://[fd00:ec2::254]/latest/meta-data/ipv6'
2406:da14:326:1820:e24:bb12:f341:30e0

Metadata Serviceのアドレスにec2って入っているのかわいいですね。おしまい。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?