ヤマムギ

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

  関連記事

S3バケットのデフォルト暗号化はデフォルトだったことを確認しました

S3バケットのデフォルト暗号化は名前のとおりだとデフォルトなので、暗号化を指定し …

Systems Manager パブリックパラメータCLIでAWSのサービス数を出力してみました(2020/5/26)

先日のAWSのサービス数を数えてみました(2020/5/23)を見られて、お師匠 …

Amazon EC2 Auto ScalingのVPCは変更できる

EC2 Auto ScalingのVPCは変更できたっけ??と思いまして試しまし …

S3バケットポリシーで特定のVPCエンドポイント以外からのリクエストを拒否しつつメンテナンスはしたい

特定のVPCで実行されているEC2のアプリケーションからのリクエストだけを許可し …

Active Directory認証でAWSマネジメントコンソールにSSO

こちらの2つのサイトを参考にすすめました。 Active Directory資産 …

Amazon Linux2のCloud9でPython CDKのモジュールインストール

AMIがCloud9AmazonLinux2-2021-02-02T16-48の …

AWSアカウントでルートユーザーが使用されたときにTeamsへ投稿する

Organizations組織内のアカウントのいずれかでルートユーザーが使用され …

php-fpm で Out of memoryが発生した際にメール通知する(AWS CloudWatch , Amazon SNS)

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

Systems Manager パッチマネージャでベースラインを作成して適用する

ベースラインの作成 Systems Managerのパッチマネージャーでパッチベ …

CloudFrontディストリビューションを別アカウントへ移動する

すでにCNAMEを設定しているCloudFrontディストリビューションを、別ア …