ヤマムギ

growing hard days.

*

このブログからパブリックIPv4 IPアドレスをなくしてコスト最適化

   

2024年2月より使用中のパブリックIPv4アドレスに1時間あたり0.005USDが請求されるようになりました。
パブリックIPv4をどこまでなくせるかもコスト最適化につながります。
AWSの各サービスもIPv6に対応しつつありますし、プライベートEC2 Instance ConnectやCloudFrontのVPCオリジンなどの機能も揃いつつあるので、このブログのパブリックIPv4をなるべくなくしてみます。

現在の構成とパブリックIPv4の必要性

現在のこのブログの構成です。
使用しているパブリックIPv4アドレスは最低4つで、最低2つがApplication Load Balancer、最低2つがEC2インスタンスで使用されています。
最低2つと書いているのは、リクエスト量によって増える可能性があるためです。

だいたい4つのパブリックIPv4アドレスで月額15USD弱かかってます。
これを削減してみます。

Application Load Balancerの方針

Application Load BalancerはCloudFrontのVPCオリジンを使ってプライベートサブネットでパブリックIPv4なしで再構築します。

EC2インスタンスの方針

現在EC2インスタンスがパブリックサブネットにあってパブリックIPv4アドレスを設定している理由を書き出してみます。
S3への画像アップロードはすでにS3 VPCゲートウェイエンドポイントを使用しています。
* CloudWatch Logsへのログ書き込み
* CloudWatchカスタムメトリクスの送信
* Systems Managerセッションマネージャー使用
* WordPressとプラグイン更新時にwordpress.orgへのアクセス

このうち2025年1月現在でIPv6に対応しているのはCloudWatch Logsのみですので、カスタムメトリクスとセッションマネージャーは代替を考えなければいけません。
カスタムメトリクスはメモリ使用量のみモニタリングしているので、メモリ使用量のモニタリングを一時的にやめることにします。
セッションマネージャーの代替にEC2インスタンスコネクトを使用することにします。
wordpress.orgへのアクセスは更新時のみですので、メンテナンス用のEC2インスタンスのみ一時的にパブリックサブネットで起動することにします。

EC2 Instance Connect エンドポイントの作成

EC2 Instance Connect エンドポイントの作成

セッションマネージャーの代替でEC2 Instance Connect エンドポイントを使用できるようにしました。

CloudWatch LogsをIPv6アドレスを使用して送信する

CloudWatch LogsをIPv6アドレスを使用して送信する

EC2インスタンスのパブリックIPv4アドレスを無効にするために、CloudWatch Logsへの送信をIPv6エンドポイントに変更しました。

VPCオリジンを使用してApplication Load Balancerを内部ロードバランサーにする

CloudFrontのVPCオリジンを使用してApplication Load Balancerをプライベートサブネットで起動する

VPCオリジンを使用して、内部ロードバランサーを構築して以前のパブリックサブネットのApplication Load Balancerから移行しました。

最終構成

以上で請求対象のパブリックIPv4をこのブログから削減できました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , , , ,

ad

ad

  関連記事

Lambdaでちょっとしたコードを試すときに便利なエディタのフルスクリーン機能

Lambda歴6年で、はじめて使いました。 この存在に気がついてなかったです。 …

Amazon EC2 Auto Scalingのライフサイクルフック

EC2 Auto Scalingにライフサイクルフックという機能があります。 ス …

S3をトリガーにしたときのLambdaのリソースベースポリシー

LambdaのトリガーでS3を設定したとき、自動的にLambdaのリソースベース …

Amazon SNSサブスクリプションフィルターで優先度別のSQSキューにサブスクライブする

EC2のコンシューマーアプリケーションは優先度の高いキューのメッセージを先に処理 …

Lambda関数で自分自身の環境変数を更新する

Twitterでツイート検索するAPIを試してみるでツイートの取得を重複させない …

WordPressの年ごとのブログ投稿数を調べるSQL

毎年年末に使いそうなのでメモです。 [crayon-67901bace388d6 …

Amazon Linux 2023からAWS CLIをアンインストールする

AWS CLIのない検証用EC2 Linuxが欲しかったのでアンインストールしま …

Backlogの実績工数をAmazon QuickSightで可視化してわかったこと

今年に入ってから、Backlogで個人タスクを登録しだして、予定工数、実績工数を …

EC2インスタンスの起動で、–cli-input-jsonと–cli-input-yamlを使いました

AWS CloudShellから実行しました。 JSON実行 [crayon-6 …

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …