こんにちはますのです。
先日AWSからパブリックIPv4の有料化について記事が出ました。
AWS におけるパブリック IPv4 アドレスの使用状況の特定と最適化
今後のEC2構築時になるべくお金が掛からない構成を目指すべく、IPv6構成の環境を用意しようと思い作ってみようと思います。
IPv6対応のVPC環境構築
VPCを作成します。今回はサブネットも含めて一括で構築予定です。
VPC作成画面で以下設定します。
他はデフォルトのまま次へ進みます。
VPC作成後にCIDRでIPv6が割り当てされていることが確認できます。
同様にルートテーブルやネットワークACLにもIPv6の値が追記されていることが確認できます。
IPv6のIPアドレスを保持するEC2の作成
続いてEC2を作成します。
インスタンスタイプによってはIPv6が設定出来ないので心配な際は「インスタンスタイプを比較」から確認すると良いです。
フィルターで「IPv6 サポート = True」と設定すると設定可能なインスタンスタイプが確認可能です。
※設定不可なものは旧世代インスタンスタイプなので現行インスタンスタイプなら問題なさそう。
ネットワーク設定を変更します。
- VPC:IPv6を有効化したVPCを設定
- サブネット:(任意のサブネット:今回はパブリックサブネット)
- パブリックIPの自動割り当て:無効化
- IPv6 IPを自動で割り当てる:有効化
セキュリティグループなどは後述します。
上記ネットワーク設定を行い、EC2を起動します。
EC2の「詳細タブ:IPv6アドレス」で付与されていることが確認できます。
併せてパブリックIPv4アドレスは付与されていないことも確認できました。
クライアント端末のIPv6アドレスを確認
今回はクライアント端末からTeraTermでIPv6を利用してSSH接続することを想定しています。
まずはクライアント端末の環境がIPv6で通信が可能か事前にチェックしておきましょう。
テストサイト:あなたの IPv6 をテストしましょう。
下図のようにIPv6アドレスやIPv6でインターネットアクセスが可能であることを簡易チェックできます。
一時IPv6アドレスを無効化していない場合、一時IPv6アドレスでアクセスします。
これは動的な値となるため定期的な変更が必要となる点に注意です。
セキュリティグループ設定
先ほど確認したクライアント端末のIPv6アドレスを、EC2にアタッチされているセキュリティグループへ設定します。
HTTP/HTTPSの設定はWebサーバとして用いる場合必要になりますが今回の検証時では無くても良い値になります。
インバウンドルール
- IPバージョン:IPv6
- タイプ:SSH
- プロトコル:TCP
- ポート範囲:22
- ソース:(先ほど確認した「一時IPv6アドレス」)
TeraTermで接続してみる
2023年10月現在で「rsa-sha2-256/512」に対応したTeraTermのバージョンはベータ版のみとなります。TeraTerm 5 beta 1を利用するか、別のターミナルソフトを利用する必要があるので注意。
Tera Term Home Page
EC2作成時に確認したIPv6アドレスを入力します。
IPv6を指定する際は【[]】角括弧で括る必要があります。コロン判別のためと理解です。
いつものごとく、ユーザ名:ec2-user、設定したpemを指定します。
ログインが出来ました。
ついでにhttp接続も可能か試したところ問題なくアクセスできました。
なお、SystemsManager経由の通信はIPv6に未対応なのか、フリートマネージャなどではインスタンス情報が表示されませんでした。
もしSystemsManagerを利用したい場合はコスト増加を受け入れる方針が必要そうです。
EC2 Instance Connect Endpointの利用がオススメ
SSHやRDP接続するだけなら「EC2 Instance Connect Endpoint」の利用が良いでしょう。
パブリックIPv4が付与されていなくてもプライベートIPv4経由で「ポート:22 / 3389」へアクセスすることが可能です。
新規にVPCエンドポイントを作成する必要がありますが、このエンドポイントの利用は課金対象外となります。
EIC Endpoint はすべての AWS 商用リージョンおよび AWS GovCloud (米国) リージョンで利用できます。EIC Endpoint の使用に際して、追加コストは発生しません。通常のデータ転送については所定の料金が適用されます。
引用:Amazon EC2 Instance Connect でパブリック IP アドレスなしで SSH 接続と RDP 接続が可能に
作成も以下のように簡単に作成でき、セキュリティグループでアクセス制御が可能です。