【手順】iOSのAPIサーバーに必要なIPv6をEC2に設定してみた(VPC)

  • 5
    いいね
  • 2
    コメント

はじめに

構築したサーバーをiOSのAPIサーバーとして使うとき、IPv6に対応することが必須になります。
IPv6に対応していないと、下記のようなエラーが出てしまいます。

We discovered one or more bugs in your app when reviewed on iPhone and iPad running iOS 10.2.1 on Wi-Fi connected to an IPv6 network.

まずは、現状の確認(IPv6)

1.AWSコンソールにログイン

2.IPv6に対応しているかコンソール上で確認。

[サービス]→[インスタンス]→[対象サーバーにチェック]→[説明]タブ押下
スクリーンショット 2017-03-13 20.50.11.png
空欄になっていますね!
設定後は、赤枠内にIPv6が表示されるはずです!

IPv6設定手順

1.AWSコンソールにログイン

2.VPCの編集/作成(今回は既存のVPCを編集します。)

[サービス]→[VPC]→[VPC]→[既存のVPCにチェック]→[アクション]→[Edit CIDRs]→[Add IPv6 CIDR]→[閉じる]
WS000003.JPG

WS000004.JPG

3.サブネットの編集

[サービス]→[VPC]→[サブネット]→[対象のサブネットにチェック]→[サブネットのアクション]→[Edit IPv6 CIDRs]→[Add IPv6 CIDR]→[チェックを入れる]→[閉じる]
WS000005.JPG

WS000006.JPG
まだIPv6はないですね。
WS000007.JPG
IPv6ができました!右の赤枠内のチェックは忘れやすいので、要注意!

4.IPv6をインスタンスに設定

[サービス]→[EC2]→[インスタンス]→[対象のサーバーにチェック]→[アクション]→[ネットワーキング]→[Manage IP Addresses]→[新しいIPの割り当て(IPv6 Addresses)]→[更新する]
WS000008.JPG

WS000009.JPG

5.コンソール上で確認

[サービス]→[インスタンス]→[対象サーバーにチェック]→[説明]タブ押下
WS000010.JPG
IPv6付与できた!
※プライベートIPv6を付与するために、サーバーの再起動をしたほうがいいかもしれません。

サーバー内の設定!(上記設定のみだと、VPC内でしか疎通できません。下記は、お外への通信のための設定です。)

1.対象サーバーにログインして、rootにsu

2.まずは、設定前のIPを確認

コンソールでは、設定されたがサーバー内では設定されていない????

スクリーンショット 2017-03-20 10.48.17.png

3.IPv6を有効にする

下記設定を行います。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
EVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
#IPV6INIT="no" ←★コメントアウト
IPV6INIT="yes" ←★追記!
PERSISTENT_DHCLIENT="1"
DHCPV6C=yes ←★追記!

4.設定の反映

networkの再起動で、IPv6有効設定を反映させます

# systemctl restart network

5.設定後のIPv6を確認!

IPv6の欄が増えました!

# ip a

スクリーンショット 2017-03-20 10.58.14.png