IPv6対応VPC・ALBを作ってみた

[前回](https://qiita.com/y_k_individual/items/6472e268490c17bc17b4)のALBを使ったIPv6対応環境を実際に作ってみた

## サブネット設計

### IPv6の構造

IPv6の構造は、一般的には下図のようになる
![ipv6-structure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/f88a3c9b-8140-a39b-595b-15ff7a53988a.png)


しかしAWSでのIPv6の構造は下図のようになる
![ipv6-aws-structure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/0b98ef60-9649-18aa-cc4e-34b67475c89c.png)


### サブネット設計方針

IPv4ではサブネットに含めることができるホスト数に重点をおいたが、  
IPv6では経路集約に重点を置きサブネットを設計する

今回は

- ap-notheast-a: 1x番台
- ap-notheast-c: 2x番台

とした

## 特別なアドレス

IPv6において ::/0 は任意のIPを示す

IPv4における0.0.0.0/0と同義である


## IPv6対応VPC

1. IPv6 CIDRブロックを有効にし、VPCを作成する

    ![vpc-create.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/3d56fbfd-3241-7928-61e9-5cd324bee9d1.png)


2. VPCにサブネットを作成する

    ![vpc-subnet-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/8bd6b62a-275e-9add-01dc-e37a1717d0e0.png)


    ![vpc-subnet-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/ac4b7b4c-3907-17a0-648d-db9fd8cd8058.png)

3. インターネットゲートウェイを作成して、VPCにアタッチする

4. ルートテーブルを作成し編集する

    ![vpc-rtb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/8555df34-e880-28f2-9a8a-40996045718e.png)




5. ルートテーブルにサブネットを関連付ける

    作成したルートテーブルから「サブネットの関連付け」タブから「サブネットの関連付けの編集」を選択する  

    ![vpc-rtb-subnet-relation.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/945cc90b-4c53-1320-d4b6-33dfc81d6594.png)


## IPv6対応ALB

ここから、サービスにEC2を選択する

1. 作成したVPC内に対応したセキュリティグループを作る

    ![ec2-security-group.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/bfd84b52-e12c-6233-e4b4-29be221994bc.png)


2. 作成したVPC内にEC2を作る

    ![ec2-create1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/8f2d5f15-8fa7-9457-5954-c4ea790b53ed.png)

    ![ec2-create2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/f6ce824a-797b-9595-6463-b7e2af7b5f1d.png)


3. 作成したVPC内にALBを作る
    - IPアドレスタイプはdualstackを選択する
    - セキュリティグループは先ほど作ったものを選択する
    ![ec2-alb-config1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/022a93f5-583f-7ada-4ee9-4a892154fac4.png)

    ![ec2-alb-config2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609106/730a1523-b50c-d504-43ae-e347cba4d5a5.png)


## 参考

[マスタリングTCP/IP IPv6編 第2版](https://www.amazon.co.jp/dp/B01IGW5EPO)

[どう割り振る？ IPv6でのアドレス設計](https://www.atmarkit.co.jp/ait/articles/1109/06/news122.html)

[[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる（その1）](https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_1/)

[[初心者向け]VPC作成からEC2インスタンス起動までを構成図見ながらやってみる（その２）](https://dev.classmethod.jp/articles/creation_vpc_ec2_for_beginner_2/)

[AWSでWEBサーバーをたてよう（３）ALB編](https://note.com/agw/n/n6a5fecde4c8d)

[Amazon Virtual Private Cloud (VPC) の Elastic Load Balancing でインターネットプロトコルバージョン 6 (IPv6) をサポート](https://aws.amazon.com/jp/about-aws/whats-new/2017/01/announcing-internet-protocol-version-6-ipv6-support-for-elastic-load-balancing-in-amazon-virtual-private-cloud-vpc/)

[Elastic Load BalancingがIPv6に対応しました！(5年ぶり2回目)](https://dev.classmethod.jp/articles/elb-ipv6/)