何でも屋さんです。
クラウドのコスト最適化は永遠の課題(だと私は思っているのですが)、過去にとある「50人規模の検証環境(バージニアリージョン)」のAWS請求書を見る機会がありました。(「見てしまった」が正しいです)
一見すると通常の検証環境に見えるかもしれませんが、その内訳の「順位」は、何でも屋が見たら二度見するレベルの「異常事態」でした。
一瞬、水戸黄門のように印籠を突きつけようかと思ったのですが、「動けばなんでもOK」という文化と資本力に乗じている背景も見え隠れします。
今回は、この請求書の「順位」から読み取れるアンチパターンと、ソースコードの汚れがインフラコストにどう影響するのかを危険度別で解説します。
(※セキュリティ要件によってコストのかかり方は異なります。今回は一般的なSaaS Webアプリの検証環境としてご覧ください)
衝撃の内訳ランキング(月額コスト順)
- 🥇 1位:VPC
- 🥈 2位:EC2 その他
- 🥉 3位:RDS
- 4位:Elastic File System (EFS)
- 5位:QuickSight
- 6位:CloudTrail(検証環境でなぜこんな上位に!?)
- 7位:CloudWatch(同上)
さて解説。。。
コンピュートリソース(EC2やRDS)を差し置いて、ネットワーク(VPC)がコストランキングの1位に君臨しています。
さらに、検証環境にもかかわらず監視・ログ系やBIツールが上位に食い込んでいるこの内訳がどれだけ異常か、紐解いていきましょう。
異常ポイントのツッコミと危険度
🚨【危険度:★★★★★】VPC代がEC2を超えている
原因:マネージドNAT Gatewayの罠 + リージョン間転送(※推測を含みます)
通常、インフラコストのトップはEC2やRDSなどになるのが健全です。VPCがトップに来ている場合、大半は**「NAT Gatewayのデータ処理料金および通信量」**が爆発しています。
考えられる惨状:
- 検証環境なのに、本番同様のマルチAZでNAT Gatewayを配置し放置している。
- コンテナイメージのPullや、外部APIへの通信が異常な頻度で発生している。
さらにバージニアリージョンの罠:
もし日本の開発チーム(50人)が、バージニアリージョンにある大容量のログやEFSのデータを頻繁にローカルへダウンロードしているとしたら、海を渡る「アウトバウンド通信費」が莫大に膨れ上がります。
インスタンス単価の安さに釣られて、通信費で赤字になる典型的な「安物買いの銭失い」です。もしくは、初期にリージョンという選択肢がバージニアしかなく、そのままここまで来ちゃった系なのか……どちらにしても闇しか感じません。
🚨【危険度:★★★★☆】検証環境なのに高額すぎる CloudTrail & CloudWatch
原因:ソースコードが汚れきっている動かぬ証拠
本番環境ならまだしも、検証環境の監視・ログ運用がコスト上位に食い込むのは異常です。これはまさに「コードの汚れがインフラの請求書に血として滲み出ている状態」と言えます。
考えられる惨状:
- DEBUGレベルのログが放置され、巨大なJSONレスポンスを毎秒CloudWatchに吐き捨てている。
- 例外処理(catch)が適当で、エラー時に指数バックオフ(待機)もせず、0ミリ秒間隔でリトライを繰り返すゾンビコードが無限ループしている。(サーキットブレーカーは無いのでしょうか?)
- AWS SDKをループ内で雑に叩きまくり、CloudTrail(API呼び出し記録)の課金がチャリンチャリンと発生している。
🚨【危険度:★★★☆☆】謎に居座る QuickSight
原因:放置された幽霊アカウント
検証環境の請求書にBIツール(QuickSight)が上位に食い込むのは不自然です。
全員がダッシュボードを作るわけでもないのに、不要なメンバーまでAuthor(作成者)権限で登録されたまま放置されていたり、使っていないSPICE(インメモリDB)の容量を確保しっぱなしにしている可能性が高いです。
💸 健全な検証サーバー(50人規模)の適正価格帯は?
では、最適化された健全な検証環境であれば、いくらくらいに収まるべきなのでしょうか。
【結論】月額 約6万〜12万円が健全な目安です。
以下が適正な構成とコスト感のイメージです。
- EC2 / コンテナ(約 150ドル〜300ドル)
検証環境に過剰な冗長化(マルチAZ)は不要。Spotインスタンスの活用や、夜間・休日の自動シャットダウン(AWS Instance Scheduler等)を導入すれば劇的に下がります。 - RDS(約 100ドル〜150ドル)
Single-AZ構成、かつ本番ほどのハイスペックは不要。こちらも夜間停止でコストカット。 - VPC / ネットワーク(約 30ドル〜50ドル)
NAT Gatewayの数を絞る。よく通信するAWSサービス(S3やECRなど)には「VPCエンドポイント」を設けて、NATを経由させない(データ処理費用を抑える)設計にする。 - CloudWatch / CloudTrail(約 20ドル〜30ドル)
ログの保持期間を短く設定(1週間など)。エラー時以外の無駄なデバッグログは出力しない。
まとめ:最高のアプリは「最安のインフラ」で輝く
今回の環境を例えるなら、「家賃(サーバー代)よりも、廊下の維持費と監視カメラの電気代(VPC・ログ代)が高くついているタワマン」です。
どれだけ高いお金を払って高級なフルマネージドインフラを用意しても、その上で動くアプリケーションのコードが最適化されていなければ、ただリソースと資金を食いつぶすだけです(いわば、高級なグラスで水道水を飲んでいるような状態です)。
逆に、「最低限のリソースで最高のパフォーマンスを叩き出すように設計されたコード」であれば、極限までコストを削った無骨なインフラ構成でも、最高の価値を提供できます。
AWSの請求書は、ただの経理書類ではありません。
「アプリケーションのアーキテクチャが美しく保たれているか」を教えてくれる、最強の健康診断書なのです。皆さんも今月、自社の請求書の内訳をじっくり眺めてみてはいかがでしょうか?