💸

AWSのコストを月額$10,000削減した話:NATゲートウェイからVPCエンドポイントへの切り替え

に公開

はじめに

以前、社内向けWebアプリの保守を担当していた際、AWSの請求額が高いので原因を調査するよう依頼されました。今回は、その原因調査から対策までの経験を共有します。

月額約$10,000と大幅なコスト削減に成功したので、同じような構成で運用している方の参考になればと思います。

原因の特定

調査の結果、主なコストの原因は NATゲートウェイ であることがわかりました。
原因となっていた部分のシステム構成は以下の通りです。

システム構成図 before

なぜコストがかかっていたかというと:

  • ECSのタスクがプライベートサブネット内で定期実行されていた
  • タスクがECRからDockerイメージを取得する際、NATゲートウェイを経由していた
  • 複数のタスクが1分毎や5分毎など短いスパンで起動していたため、NATゲートウェイのデータ転送量が膨大に

結果として、NATゲートウェイ経由の通信料が月額約$5,000に達していました。
そして本番・開発環境の両方で同じ構成だったため、合計で月額約$10,000のコストが発生していたわけです。

対処法:VPCエンドポイントの導入

ECRからイメージを取得する際に NATゲートウェイを経由せず、VPCエンドポイントを経由するように変更しました。
変更後のシステム構成は以下の通りです。

システム構成図 after

具体的な設定方法は公式ドキュメントを参考にしてください。
AWS公式:VPCエンドポイントを使用したECRアクセス

VPCエンドポイントとは?

VPCエンドポイントは、VPC内からAWSサービスに直接プライベート接続できる機能です。
主な特徴は以下の通りです。

  • インターネットを経由しない:プライベートIPでAWSサービスにアクセスできる
  • NATゲートウェイ不要:データ転送コストが大幅に削減できる
  • セキュリティ向上:インターがットに公開せずに通信可能

NATゲートウェイとのコスト比較

項目 NATゲートウェイ VPCエンドポイント
データ転送 高額(GB単位で課金) 無料または低額
インターネット経由 必須 不要
セキュリティ 公開IP経由で通信 プライベート通信

頻繁にECRからイメージを取得するタスクがある場合、NATゲートウェイを経由するとコストが急増しますが、VPCエンドポイントを使えばほぼ定額に抑えられます。

変更後のコスト変化

もともとNATゲートウェイ経由のデータ通信料が月額約$5,000 かかっていましたが、
VPCエンドポイント導入後は月額$100以下になりました。

本番環境と開発環境それぞれ同じ構成にしたので、
トータルで月額約$10,000のコスト削減に成功しました。

まとめ

今回の経験から学んだことは以下です。

  • NATゲートウェイ経由でECRからイメージを取得し、タスクを頻繁に起動している場合はコストが急増する
  • VPCエンドポイントを利用することで、コストを削減可能
  • ドキュメント化や引継ぎの重要性を再認識
    → 開発メンバーが全員離任していた上に、仕様に関する資料があまり残っておらず原因調査が難航
  • 開発だけでなく、運用視点の知識も重要
    → Cost Explorer や CloudWatch Logs の活用方法を知っていれば、より早く原因を特定できたのではないか?

AWSで運用コストを最適化する際、特にECRやS3を頻繁に利用するタスクではVPCエンドポイントの活用が非常に効果的です。
同じような課題を抱えている方は、ぜひVPCエンドポイント導入を検討してみてください。

Discussion