AWSの料金が急に上がった?検証環境が本番より高くなった実話と対処法

AWS

AWS移行を終えてひと安心していた矢先、マネジメントコンソールの請求画面を開いてフリーズしました。

本番環境:月額 約3万円
検証環境:月額 約4万5千円

……え?逆じゃない?

私が所属する情シス部門では、昨年度から業務システムをオンプレミス(社内サーバー)からAWSへ移行しました。本番環境と検証環境をそれぞれ構築して、「さあ運用開始!」となったタイミングでこの事態に気づいたのです。

「AWSはコスト削減になる」と社内で説明して移行を進めた手前、このままでは立場がありません。原因を徹底的に調べ、3つの対策を打った結果、検証環境のコストを本番環境以下に抑えることができました。同じような状況に悩んでいる情シス担当者の方に向けて、実体験をそのままお伝えします。

なぜ検証環境がコスト過多になりやすいのか

検証環境は「後回し」にされがちな、コストの伏魔殿です。

本番環境は障害が起きたら大変なので、みんな真剣に構成を考えます。冗長化の必要性・インスタンスのスペック・バックアップ……細かく精査します。ところが検証環境はどうでしょう?「本番と同じ構成で作っておけばいいか」という空気が漂いがちです。その結果、本番環境と同等のスペック・構成がそのままコピーされ、誰も最適化しないまま動き続けることになります。

AWS移行直後は特に要注意です。オンプレの感覚のまま「サーバーは常時稼働が当たり前」と思い込んでいると、AWSの従量課金の特性を活かせず、無駄なコストが積み上がっていきます。

私の検証環境が高くなった原因は3つだった

原因① EC2のインスタンスタイプが本番と同じだった

EC2(Amazon Elastic Compute Cloud)とは、AWSが提供する仮想サーバーのことです。私の環境では、本番・検証ともに m5.xlarge(vCPU 4個・メモリ16GB)を使っていました。本番環境ではこのスペックが必要ですが、検証環境でそこまでのパワーは必要ありません。スペックの選定は「本番の縮小版」ではなく、「検証に必要な最小限」で考えるべきでした。

原因② マルチAZ構成のまま使っていた

マルチAZ(Multi-AZ)とは、異なるデータセンターに同じシステムを冗長化して配置する構成です。本番環境では非常に重要な設定ですが、検証環境にここまでの可用性は必要ありません。にもかかわらず、RDS(AWSのデータベースサービス)でマルチAZ構成を有効にしたままでした。これだけでコストがほぼ2倍になります。本番と同じ「安心感」を検証環境にも求めてしまっていたのが原因でした。

原因③ 24時間365日、ずっと稼働していた

オンプレのサーバーは電源を入れたら基本的に動かし続けます。その感覚のままAWSを使っていたため、検証環境のEC2とRDSは土日も夜中も動き続けていました。1ヶ月720時間のうち業務時間外はおよそ500時間以上。全体の70%近くが「誰も使っていない稼働時間」になっていたのです。AWSの最大のメリットは「使った分だけ払う」こと。その利点をまったく活かせていませんでした。

実際にやった3つのコスト削減策

対策① EC2インスタンスタイプをダウンサイジング

m5.xlarget3.medium(vCPU 2個・メモリ4GB)に変更しました。t3シリーズは「バースト可能タイプ」と呼ばれ、普段は低スペックで動きつつ、負荷が高い瞬間だけCPUパワーを一時的に上げることができます。検証用途には十分な性能で、料金は約1/4程度になります。変更手順はEC2インスタンスを停止 → インスタンスタイプを変更 → 再起動の3ステップで完了します。「本番と同じスペックでないと不安」は思い込み。検証なら最小限で十分です。

対策② RDSのマルチAZ構成をシングルAZに変更

RDSの設定画面から「マルチAZ配置」を無効にするだけで完了です。この変更を行うと一時的にRDSが再起動するため、業務終了後に実施することをおすすめします。費用は変更直後から単純に半減します。冗長化は必要な場所にだけかける。検証環境は「止まっても困らない」が正解です。

対策③ EventBridge+Lambdaで夜間・週末を自動停止

これが最もインパクトのある対策でした。Amazon EventBridgeでスケジュールを設定し、AWS Lambdaを使ってEC2とRDSを自動で起動・停止するようにしました。

時間動作
平日 8:00EC2・RDS 起動
平日 22:00EC2・RDS 停止
土曜 0:00EC2・RDS 停止(念のため)
月曜 7:50EC2・RDS 起動

これにより、稼働時間は月720時間 → 約220時間に削減。コストも約70%減を実現しました。

Cost Explorerで今すぐ確認できること

コスト削減の第一歩は「何にお金がかかっているか把握すること」です。AWSのCost Explorerを使えば、サービス別・リソース別にコストを可視化できます。

  1. AWSマネジメントコンソールにログイン
  2. 画面右上のアカウント名をクリック →「請求とコスト管理」を選択
  3. 左メニューの「Cost Explorer」を開く
  4. 「サービス別」でEC2・RDSの費用を確認
  5. 「リソース別」に掘り下げて、どの環境が高いか特定する

「なんとなく高い」を「なぜ高いか」に変えるだけで、打ち手が見えてきます。

まとめ

原因対策効果
インスタンスタイプが大きすぎたt3.mediumにダウンサイジング約75%減
マルチAZ構成が不要だったシングルAZに変更約50%減
24時間稼働していた夜間・週末を自動停止約70%減

AWSはオンプレと違い、「設定を見直すだけでコストが下がる」というのが大きな強みです。最初から完璧な構成を作るより、まず動かして改善していく。その繰り返しがAWSを使いこなす近道だと実感しました。もし「うちも検証環境のコストが妙に高い……」と感じている方がいれば、ぜひCost Explorerを開いてみてください。

関連記事:LambdaでEC2・RDS夜間停止自動化|AWSコスト削減実装ガイド
関連記事:Aurora Serverlessで自動スケーリング|予測不能な負荷への対応方法