AWS: NAT Instance1

AWSでPrivateなセグメントに配置したEC2インスタンスなどがインターネットと通信を行いたい場合、Publicなセグメントに配置したNAT GatewayやNAT Instance、あるいはプロキシサーバなんかが必要になる。NAT GatewayとNAT Instanceは簡単には次として理解している。

  • NAT Gateway:AWSが管理するインスタンス
  • NAT Instance:ユーザーが構築するインスタンス

自分で作る必要がないNAT Gatewayは便利だがコストに難がある。インターネットから月例でパッチをダウンロードして適用する、SSM Agentを通してメンテナンスをするなどと考えた場合、インターネットからの受信と送信の両方が発生するが、仮に受信を20GB/月、送信を20GB/月として東京リージョンでのコストを試算してみる。

※業務的にクリティカルなものではないのでNAT Instanceはt4g.nano, EBS=8GBで一旦計算する。試算結果は参考程度で、価格は変化するので正しい数値は公式で確認すること

NAT GatewayNAT Instance
インスタンス料0.062 × 730時間0.0054 × 730時間
ディスク使用料0.12 × 8GB
データ処理料0.062 × 40GB
通信料(受信 20GB)
通信料(送信 20GB)0.114 × 20GB0.114 × 20GB
50.02 [USD/Month]7.182 [USD/Month]
NAT Gateway v.s. NAT Instance(t4g.nano 8GB EBS) : IN/OUT=20GB/20GB

効いてくるのはGateway usage hourly cost(インスタンス料)と NAT Gateway data processing cost(データ処理料)の部分。とはいえ、マネージドインスタンスというユーザーが面倒を見なくていいという部分が魅力的なのでNAT Gatewayには価値がある。

NAT Gatewayは使わない時間に停止するということが出来ないので、不要な時間は払いたくないとなれば削除することになる。そうなると作り直した時もルートテーブルを更新したりと面倒である。NAT Instanceの場合は停止がより容易になる。ディスクは残るのでコストが0にはならないが。検証環境なんかはNAT Instanceで良いんじゃないかなと思う。

NAT Instanceの作成は多分次回。