はじめに
「オンプレからAWSに移行すれば、コストが下がりますよ」
この言葉を信じてクラウド移行を進めた現場を、何度か見てきました。
結果はどうだったか。移行後3ヶ月で「なんでこんなに請求が来るんだ」という話になるケースが、思っている以上に多いです。
「クラウドは安い」は嘘ではありません。正しく使えば確かに安くなります。でも「とりあえず移行すれば安くなる」は、完全に間違いです。
この記事では、AWS移行後にコストが爆増するパターンを具体的な金額と合わせて整理します。インフラを触るエンジニアなら、知っておいて損はない話です。
この記事を読むと、以下のことができるようになります。
- AWS移行後にコストが膨らむ典型パターンを把握できる
- 各サービスの料金体系の落とし穴を具体的に理解できる
- コスト爆増を防ぐための設計・運用の勘所がわかる
なぜ「クラウドは安い」という誤解が生まれるのか
まず、なぜこの誤解が広まっているかを整理します。
クラウドが「安い」と言われる文脈は、主に3つです。
初期コストがゼロ:オンプレはサーバー購入費・ラック代・電気代・冷却費がかかります。AWSは使った分だけ払う従量課金なので、初期投資がいりません。
使わないときは払わない:オンプレは24時間365日コストが発生します。AWSは開発環境を夜間・週末に停止すれば、その分は課金されません。
スケールアップ・ダウンが柔軟:オンプレは最大負荷に合わせたスペックを買い切るしかありません。AWSはピーク時だけ大きくして、平常時は小さくできます。
これらは本当のことです。ただし、前提として「適切な設計と運用」がセットになっています。設計を間違えると、オンプレより高くなることは普通にあります。
コストが爆増するパターン5選
現場で実際に見てきたパターンを、具体的な金額とともに紹介します。
パターン1:NAT Gatewayのデータ転送料金を見落とす
プライベートサブネットにEC2を置く構成では、NAT Gatewayが必要です。ここに落とし穴があります。
NAT Gatewayの料金は2種類あります。
| 費用の種類 | 単価(東京リージョン) |
|---|---|
| NAT Gateway稼働料金 | 約$0.062/時間(月額 約$45) |
| データ処理料金 | $0.062/GB |
稼働料金だけ見て「月$45か、安いな」と思っていると、データ処理料金で痛い目を見ます。
たとえばEC2からS3へのデータ転送を毎日100GB行う場合、NAT Gatewayを経由すると月額で$186のデータ処理料金が追加されます。これを防ぐには、S3へのアクセスにはNAT GatewayではなくVPCエンドポイント(Gateway型、無料) を使う設計にする必要があります。
パターン2:開発・検証環境を本番と同スペックで動かし続ける
「本番と同じ環境でテストしたい」という気持ちはわかります。でも、開発環境を本番と同スペックで24時間365日動かすと、コストはほぼ倍になります。
よくある失敗例:
| 環境 | インスタンス | 月額概算 |
|---|---|---|
| 本番 | m5.xlarge × 2台 | 約$280 |
| 開発(本番と同スペック・常時起動) | m5.xlarge × 2台 | 約$280 |
| 合計 | 約$560 |
開発環境は業務時間(平日9〜18時)だけ起動すれば、稼働時間は月約180時間→45時間に削減できます。コストは約4分の1になります。
AWS Instance Schedulerを使えば、自動で起動・停止のスケジュールを設定できます。
# Terraformでタグを使ったスケジュール設定の例
resource "aws_instance" "dev" {
ami = "ami-xxxxxxxxxxxxxxxxx"
instance_type = "m5.xlarge"
tags = {
Name = "dev-server"
InstanceScheduler = "business-hours" # 平日9-18時のみ起動
}
}
パターン3:CloudWatchのログ保存・転送料金が積み上がる
CloudWatchはAWSの標準監視ツールですが、ログを何も考えずに流し続けると、ログ費用が想定外に膨らみます。
| 費用の種類 | 単価(東京リージョン) |
|---|---|
| ログの取り込み | $0.76/GB |
| ログのストレージ | $0.033/GB/月 |
| ログの分析(Insights) | $0.0076/GB |
アプリケーションのデバッグログをDEBUGレベルで全部CloudWatchに流していると、1日で数十GBになることがあります。月単位で見ると数万円のログ費用が発生します。
本番環境ではログレベルをINFO以上に絞る、古いログは自動削除するポリシーを設定するだけで、大幅に削減できます。
# ログレベルの設定例(Python)
import logging
# 本番環境ではINFO以上のみ出力
logging.basicConfig(level=logging.INFO)
# DEBUGログは本番では出力されない
logging.debug("これは本番では出力されない")
logging.info("これは本番でも出力される")
パターン4:リザーブドインスタンスを使わずオンデマンドで動かし続ける
EC2のオンデマンド料金は柔軟に使える分、コストが高めに設定されています。「24時間365日動かし続けるインスタンス」は、リザーブドインスタンス(RI)を使えば最大72%割引になります。
| 料金プラン | m5.large(東京)月額概算 | 年間コスト |
|---|---|---|
| オンデマンド | 約$70 | 約$840 |
| リザーブド(1年・全前払い) | 約$40 | 約$480 |
| 差額 | 約$360/台 |
5台のEC2があれば年間で約$1,800の差が出ます。24時間動き続けることが確定しているインスタンスは、早めにRIに切り替えるのが正解です。
ただし注意点もあります。RIはインスタンスタイプ・リージョンを変更するとき柔軟性が下がります。まずはSavings Plansという選択肢も検討してみてください。こちらはより柔軟にコスト削減できます。
パターン5:データ転送料金(アウトバウンド)を見逃す
AWSはインターネットへのアウトバウンド転送に課金されます。インバウンド(AWSへの転送)は無料です。
| データ転送の方向 | 料金(東京リージョン) |
|---|---|
| インターネット → AWS(インバウンド) | 無料 |
| AWS → インターネット(アウトバウンド)最初の100GB | 無料 |
| AWS → インターネット(アウトバウンド)100GB以降 | $0.114/GB |
動画配信・大容量ファイルのダウンロードを提供するサービスでAWSを使うと、このアウトバウンド転送料金が驚くほど積み上がります。
対策としてはCloudFrontを経由する方法があります。CloudFrontからのアウトバウンドはEC2から直接出すより安く、キャッシュが効けば転送量自体を削減できます。
コストを正しく見積もる3つの習慣
1. AWS Pricing Calculatorで先に試算する
構成を決める前にAWS Pricing Calculatorで概算を出す。特にNAT Gateway・CloudWatch・データ転送は忘れずに入れる。
「このくらいのシステムで月いくら?」という感覚を早めに持つことが大切です。
2. Cost Explorerで定期的に確認する
AWSのCost Explorerを使えば、サービスごと・タグごとのコストを可視化できます。
月次でこれをやるだけで、コスト爆増を早期発見できます。
3. タグで「誰が使っているコスト」を見えるようにする
複数のチームやプロジェクトがAWSを使っている場合、タグを使ってコストを分類するのが基本です。
# リソースに必ずタグをつける例
resource "aws_instance" "app" {
ami = "ami-xxxxxxxxxxxxxxxxx"
instance_type = "t3.medium"
tags = {
Name = "app-server"
Project = "handsOn-lab"
Environment = "production"
Owner = "infra-team"
}
}
タグがないと「どのプロジェクトのコストが増えているのか」が追えません。後からつけようとすると大変なので、最初から設計に組み込んでおくのが正解です。
まとめ
この記事では以下のことを解説しました。
- 「クラウドは安い」は正しいが、「移行すれば自動的に安くなる」は間違い
- NAT Gatewayのデータ処理料金・開発環境の常時起動・CloudWatchのログ費用・オンデマンド料金・アウトバウンド転送料金が爆増の主な原因
- 事前のPricing Calculator試算・月次のCost Explorer確認・タグによるコスト分類の3つが基本の防衛策
AWSのコスト最適化は、一度やって終わりではありません。システムが育つにつれてコスト構造も変わります。月に一度、Cost Explorerを開く習慣だけでも、今日から始めてみてください。
「うちの現場もこのパターンだった」があればぜひコメントで教えてください!
ハンズオンラボでは、未経験からでも「作って覚える」をモットーにしたITハンズオンイベントを定期開催しています。
面白かったら
「👇いいね」で応援