パブリックIPv4アドレスの有料化に備えよう ~ Elastic IP編 ~
今年のre:Invent 2023で初めてアメリカに行くことになりまして、ドキドキして夜も眠れない日々を過ごしています。やっさんでございます。
本ブログを読んでらっしゃる皆様は、Amazon Web Services様(以下、AWS)で予定している重要な料金体系の変更をご存知でしょうか。タイトルにもあります通り、「パブリックIPv4アドレス」の料金体系の変更です。
本ブログ投稿では、パブリックIPv4アドレスが有料化されるということについての解説と、AWSのサービスの一つであるElastic IPにおけるパブリックIPv4アドレスの有料化に備える方法をご紹介します。
最初にまとめ
最初に「パブリックIPv4の有料化に備えよう ~ Elastic IP編」のまとめを記載します。
- 運用業務目的で利用している仮想マシンに付与されたElastic IPは、「EC2 Instance Connect Endpoint」を利用することによってコストを0に削減することが出来ます。積極的にEC2 Instance Connect Endpointを活用していきましょう!
- Session Mangerの選択肢もありますが、VPC Interface Endpointは利用料金が発生するため、コスト削減の効果は「EC2 Instance Connect Endpoint」のほうが高いです。
- 他システム連携など、運用業務目的以外で利用する必要があるElastic IPは、別途システム連携で利用している静的IPを他のエンドポイントにオフロードできるか確認していきましょう!
パブリックIPv4アドレスの有料化とは
2023年7月28日に、AWSはパブリックIPv4アドレスの有料化を発表しました。これは2024年2月1日からAWSで利用しているパブリックIPv4アドレスに料金が発生し、0.005USD/時間が課金されるようになります。有料化の背景に、パブリックIPv4アドレスの希少化が影響しています。パブリックIPv4アドレスは32桁の2進数で構成されており43億個のパブリックIPv4アドレスが存在します。
近年、クラウドの台頭によって簡単にパブリックIPv4アドレスを取得できるようになりました。また、IoTによって多くのモノがインターネットに繋がるようになり、多くのパブリックIPv4アドレスが消費されてきました。43億個では足りなくなっており、パブリックIPv4アドレスは希少性が年々高まっている状況にあります。
AWS様のブログによると、パブリックIPv4アドレスを取得するためのコストはこの5年間で300%上昇していると記載されています。
パブリックIPv4の利用状況の可視化をする
AWSではきたるパブリックIPv4アドレスの有料化に備えるために「Public IP Insights」を提供しています。この機能は無料で利用でき、現在のパブリックIPv4アドレスの使用状況を可視化することが出来ます。積極的に活用していきましょう!
Elastic IPとは
本題となるパブリックIPv4アドレス有料化に備えるためのElascit IPについてです。
Elastic IPは、静的パブリックIPV4アドレスになります。静的であるため、一度割り当てられたアドレスは変わらずに、ずっと固定で利用できます。
Elastic IPは以下のAWSリソースに関連付けることができます。
AWSリソース | 説明 |
---|---|
Amazon EC2 インスタンス(EC2) | AWS上でホストする仮想マシン。仮想マシンへのインターネット経由のアクセスなどの用途のために、Elastic IPアドレスを利用可能。 |
Elastic Network Interface(ENI) | 仮想ネットワークカードを表すVPC内の論理ネットワーキングコンポーネント。EC2にElastic IPを関連付けた場合はENIにも同じElastic IPが設定される。 |
Elastic IPの利用用途は主にIP固定
Elastic IPの利用用途を考えてみます。Elastic IPは静的IPであるため、IPアドレスの値を固定化することが出来ます。この静的IPアドレスの主な使用用途は運用業務で利用する踏み台サーバーや、他システム連携を行うホストでIPアドレス値の固定化を行う時に利用することが出来ます。
後者の他システム連携は場合によっては必要になるケースがあり、外せない要件になる可能性がありますが、前者の運用業務で利用する踏み台サーバーでElastic IPを利用しているケースはコストを削減できます!
Elastic IPを利用しない選択肢のご紹介
Elastic IPの利用しない選択肢はいくつかあります。選択肢をご紹介します。
選択肢1. EC2 Instance Connect Endpoint を利用する
EC2 Instance Connect はSSH接続を安全に利用する方法として利用できます。EC2 Instance Connectは2種類の方法があります。
利用方法 | パブリックIPv4アドレス | 説明 |
---|---|---|
EC2 Instance Connect | 必要 | ブラウザベースのクライアントにはパブリックIPv4アドレスが必要です |
EC2 Instance Connect Endpoint | 不要 | EC2 Instance Connect の VPC Endpointの利用料金はかかりません(2023年11月7日時点) |
名称に「Endpoint」がない通常のEC2 Instance ConnectはパブリックIPv4アドレスが必要になりますので、本記事のコスト削減を達成することが出来ません。ここでは、「EC2 Instance Connect Endpoint」を利用することでコストを削減することが出来ます。
EC2 Instance Connect Endpoint を利用したSSH接続の例
EC2 Instance Connect Endpointは他のVPC Endpointと比較して簡単にセットアップできるようになっております。以下添付画像のように「Endpoint」の新規作成時に最初から選択肢として用意されています。
EC2インスタンスにEC2 Instance Connect Endpointを用いて接続します。作成したEndpointを利用して接続します。
EC2に接続することが出来ました!
EC2 Instance Connect Endpointは、ホストへのエージェントインストールやセキュリティグループの設定など、他にも必要な設定があります。
また、ブラウザだけでなくAWS CLIを利用してコンソールからのSSH接続も可能です。
より詳細な説明はAWS 公式ページもご参照下さい。
EC2 Instance Connect Endpoint を使用した、パブリック IPv4 アドレスを必要としないインスタンスへの接続
選択肢2. Session Manager を利用する
パブリックIPv4アドレスを利用せずにEC2に接続する方法として、Session Mangerを利用する方法もあります。このSession ManagerではVPC Interface Endpointの作成が必要でして、以下のエンドポイントが必要です。
VPC Interface Endpoint 種別 | 説明 |
---|---|
ec2messages.region.amazonaws.com | Systems Manger サービス への APIオペレーションに使用 |
ssm.region.amazonaws.com | 同上 |
ssmmessages.region.amazonaws.com | 同上 |
VPC Interface Endpointoの利用料金
VPC Interface Endpointには利用料金が発生します。
2023年11月7日時点での利用料金は以下の通りになっております。
0.014USD / 時間
Session Manager を利用したSSH接続の例
Session Mangerを利用する場合は、ご説明しました通り3つのVPC Interface Endpointが必要です。以下画像のように用意します。
Session ManagerでSSH接続します。以下画像のように、SSMエージェントがインストールされているホストは選択肢として指定して接続することが出来るようになります。
EC2に接続することが出来ました!
Session Managerは、ホストへのエージェントインストールなど、他にも必要な設定があります。
また、ブラウザだけでなくAWS CLIを利用してコンソールからのSSH接続も可能です。
より詳細な説明はAWS 公式ページもご参照下さい。
選択肢3. VPCでIPv6を有効にして、IPv6前提でアクセスする
パブリックIPv4アドレスを利用しないもうひとつの選択肢として、パブリックIPv6アドレス利用を前提とするネットワーク設計にする方法があります。
このネットワーク設計について必要なことを一覧化しました。
必要なこと | 説明 |
---|---|
VPCの設定変更 | VPCでIPv6アドレスを利用できるよう設定変更を行います |
EC2へのIPv6アドレスの付与 | EC2を起動する時にIPv6アドレスを有効化します |
プロバイダーのIPv6対応 | 作業者のインターネット環境がIPv6に対応しているか確認する必要があります |
上記の特にプロバイダーのIPv6対応は、メッシュWiFiなど他社製のルーターを利用している場合にIPv6に対応していないという状況もあり軽視できない事柄となっています。
IPv6アドレスでEC2にSSH接続する方法について当社ブログ記事も併せてご参照下さい。
その他、推奨されない方法についての考察
運用業務で利用するホストへのSSH接続においては、推奨されない方法がいくつかあります。
例えば、ECS Execを利用してコンテナにSSH接続する方法があります。しかしながら、ECSのコンテナの共有ボリュームはEFSが利用できますが、本目的のためにEFSを使うというのはEFS導入の手間とコストがかかります。標準でアタッチされるボリュームはコンテナを停止するとその内容が保持されないため、ECS ExecによるSSH接続は今回は対象外としました。
また、AWS CloudShellを利用してパブリックサブネットのEC2インスタンスに接続するという方法もありますが、この方法ですとCloudShellで利用されているIPアドレスを毎回セキュリティグループのインバウンドで許可する必要があり実用的ではありません。
パブリックIPv4アドレス利用料削減のコスト比較
最も重要なコストを比較します。比較内容は1ヶ月に発生する利用料金です。
選択肢 | 利用料金 / 月 | 内訳 |
---|---|---|
EC2 Instance Connect Endpoint | 0 USD / 月 | |
Session Manager | 30.24 USD / 月 | ・VPC Interface Endpoint × 3 |
VPC IPv6 有効化 | 0 USD / 月 | |
番外:Elastic IPを使い続ける | 3.60 USD / 月 |
いかがでしょうか。私であればEC2 Instance Connect Endpointを利用することを第一に考えます。このように比較すると、Session Managerは便利ではあるのですがコスト的にはElastic IPと比べて料金が高くなることが分かります。
まとめ
最初のまとめと同じ内容になりますが、再掲いたします。
- 運用業務目的で利用している仮想マシンに付与されたElastic IPは、「EC2 Instance Connect Endpoint」を利用することによってコストを0に削減することが出来ます。積極的にEC2 Instance Connect Endpointを活用していきましょう!
- Session Mangerの選択肢もありますが、VPC Interface Endpointは利用料金が発生するため、コスト削減の効果は「EC2 Instance Connect Endpoint」のほうが高いです。
- 他システム連携など、運用業務目的以外で利用する必要があるElastic IPは、別途システム連携で利用している静的IPを他のエンドポイントにオフロードできるか確認していきましょう!
本記事ではElastic IP編をお届けしました。
2024年2月1日に備えて、パブリックIPv4アドレスの利用コストを
積極的に削減をしていきましょう!