前のAWSのPrivate SubnetにあるUbuntuにNATをしないでパッケージを追加する方法の続き。今度はパブリックサブネットの話。
IPv4の有償化の話は以下
https://aws.amazon.com/jp/blogs/news/new-aws-public-ipv4-address-charge-public-ip-insights/
ざっくり言うと、
以前までは、ちゃんと使用(インスタンスに付与されているなど)しているIPv4に関しては無償。キープ、ホールドしているIPv4については有償だった。つまり、使っている分には課金されない。未使用で確保しているとコストがかかっていた。
来年からは、使用、未使用に関わらず、IPv4は課金するという方式になった。実際、IPv4の枯渇は深刻で、相場は跳ね上がっているそう。
AWSのIPv6は無料。IPv6は、約340澗(1澗は1兆×1兆×1兆)個なので、当分使い切ることはなさそうと。。。(あれっIPv4が出た時もそう言っていなかったか?)なんか、合理的な説明のつく話が欲しい。とあるCPUのスペックを読んでいた時に、アプリケーションが使う絶対アドレスが48ビット(中途半端な)と書いてあったのだが、理由が。。。
「太陽が膨張して、地球を飲み込むまでの時間をカウントするためには48ビットで間に合うので、48ビットになりました。。。」
と書いてあった。というくらい、128ビットって大きい。銀河系とアンドロメダ星雲が合体完了するまでカウントできるのか?
閑話休題。
早速、IPv6しか持たない、インスタンスを作ってみた。(テスト環境は、年末まで無償のARMインスタンス)
起動すると。。。確かにIPv4のアドレスもなければ、DNSホスト名もない。
EC2 Instance Connect でもIPv4アドレスがないので接続できない。さらにこの環境は、EC2 Instance Connect Endpointがこのサブネットに接続されていないので、EC2 Instance Connect Endpointに接続もできない。
残るは、外部からSSHのみなのだが。ここから先はIPv6が使える環境でアクセスしてみる。もはやAWSの環境をIPv6にするよりまずは自宅やオフィスをIPv6にする必要があるのは言うまでもない。
とりあえず、セキュリティグループを開けてみる。
フレッツ光+v6プラスのSonetだが、JPNE のアドレス空間で開けてみた。ほんとはルータで調べてもっと制御したほうがいいのだが。
手元の純粋なIPv6端末を用意。ネットワーク情報は結構おしゃべりなので、マスクしている。
IPv6でSSHでログインしてみる。
注意点はIPv6のオプション、-6を付けること。
ssh -6 -i KeyPair.pem ubuntu@<IPv6アドレス>
ログイン出来た。
IPv6へにアクセス確認
特に問題はない。
IPv4へのアクセス確認。
送信元となるインスタンスにパブリックIPv4が無いので実はIPv4を外部通信するのは無理。なのでAWSのパブリックのエンドポイントURLも無理。
結果としてプライベートサブネットと同じく、インタフェース型のエンドポイントが必要になる。
なんだかなぁ。頑張れ、AWSさん!
Apacheを入れてアクセスしてみる
ブラウザには http://[<IPv6アドレス>]
といった[]で括る必要がある。
アクセス出来た。
ほんとにパブリックIPv4を使っていないのかは、VPCのメニューの下の方にある、Amazon VPC IP Address Managerというところで確認が可能。
確かにPublic IPは使っていない。
まとめると、
プライベートサブネットでIPv6を使う場合
IPv4のアウトバウンドはないが、IPv6のアウトバンドは可能。また、ubuntuのパッケージインストールが可能になる。
パブリックサブネットでIPv6のみで使う場合
外からIPv6でアクセスができるが、IPv4のパブリックアドレスがないとIPv6がふられたプライベートサブネットと同じような状態
いずれのケースもAWSのサービスへアクセスする場合は、課金が発生するendpointを配置する必要がある。エンドポイントの課金は、IPv4アドレスの課金よりも高額。よって、まだ、2023年8月時点では、IPv4の課金から逃げられる状態ではない。そのうち解消すると思うが。
無理にやる必要はないが、いずれIPv6全盛になるので、IPv4の環境を維持しつつ、今のうちにIPv6にも対応しておいたほうがいい。IPv6化はなんてったて無料なので。
アクセス元、例えば自宅もIPv6にしなきゃならないんだけど、フレッツ光の人でも結構気にしないままPPPoEでIPv4オンリーとか、フレッツでIPv6で通信できること(無料のところもある)を知らない人がいたり。。。一方、家族全員のスマホがIPv6のアドレスが振られていたり、良くも悪くも結構無頓着な人が多いような気がする。
よって、合わせてアクセス元もIPv6対応にしておいたほうがいい。ただ、場合によっては、無線LANルータとかは買い替えで、さらに自宅鯖を持っている人は、IPv4とIPv6の両方に対応させるのはかなり面倒臭いと思う。まぁ、暫定処置で、ONUのLANポートにスイッチングハブを噛ませて2本に分岐させて、一本はPPPoEのルーターへ、もう一本は、LAN側のスイッチングハブに刺しておくという手もある。これでIPv6の通信は、ONU直結となる。ただ。。。IPv6アドレスとしてはルータなどのファイヤウォールを挟まないので注意。端末側のファイヤーウォールでIPv6の着信を塞ぐ必要がある。スマホやタブレットはどうするの?という話は置いておいて。。。
と言うことを経て、自分の環境もIPv6対応にしてしまった。Cloudformationを作るのにまるまる1日かかった。