スタートアップのCTOとして着任した初日、AWSの請求書を見て目を疑った。月額約300万円。ユーザー数はわずか5,000人。1ユーザーあたり月600円のインフラコスト。明らかに異常だった。
コスト内訳の衝撃
EKSクラスター(月80万円)、RDS Multi-AZ r6g.2xlarge(月45万円)、ElastiCache r6g.xlarge(月30万円)、NAT Gateway(月25万円)、CloudFront + WAF(月20万円)、その他Lambda、SQS、S3等(月100万円)。エンタープライズ向けの構成が、ユーザー5,000人のBtoCアプリに適用されていた。
やったこと①:EKSを捨てた
Kubernetesは不要だった。アプリケーションをECS Fargateに移行し、シンプルなタスク定義に書き換えた。さらに検討の結果、EC2 1台で十分だと判明。月80万円→月3万円。
やったこと②:RDSをダウンサイジング
r6g.2xlarge(8vCPU, 64GB RAM)は、ピーク時のCPU使用率が3%。t4g.medium(2vCPU, 4GB RAM)に変更。Multi-AZも停止し、日次スナップショットのみに。月45万円→月3万円。
やったこと③:使われていないサービスの停止
ElastiCacheはアプリ側で利用されていなかった(前任者が「将来使うかも」で起動したまま放置)。Lambda関数42個のうち、実際に動いているのは7個。残りは開発中に作って放置されたもの。NAT Gatewayは通信量に対して過剰。VPCエンドポイントに切り替え。
結果:月18万円
EC2 1台、RDS t4g.medium、S3、CloudFront。構成はシンプルになり、障害ポイントは激減し、コストは94%削減。教訓は明確だ。「必要かもしれない」でインフラを積み上げるな。必要になってから追加しろ。AWSの最大の顧客は、過剰設計を恐れるエンジニアだ。








# comment