こんにちは、かつコーチです。
「AWSは無料枠があるから安心」と聞いて始めたのに、気づいたら数千円〜数万円の請求が来ていた、という話をSNSでよく見かけます。
実はこれ、他人事ではありません。
私も個人開発でEC2インスタンスを試していたとき、うっかり無料枠の範囲を超えて起動しっぱなしにしてしまい、月末に予想外の請求メールを受け取った経験があります。
この記事では、AWSの無料枠の仕組みと期限、そして高額請求を未然に防ぐための予算アラートの設定手順を解説します。
これから紹介する設定を最初に済ませておけば、金額面の不安を大きく減らして学習に集中できます。
AWS無料枠とは?
3種類ある無料枠のタイプ
AWS無料枠(一定の条件内でAWSサービスを無料で使える制度です)には、実は性質の異なる3つのタイプがあります。
- 12か月間無料:アカウント作成から12か月間、決められた範囲内で無料になる枠(例:EC2の一部インスタンスタイプを月750時間まで)
- 常に無料:期限なく、決められた範囲内であれば無料で使い続けられる枠(例:Lambdaの月100万リクエストまで)
- 短期トライアル:特定サービスを一定期間・一定量だけ無料で試せる枠
見落としがちなのが1つ目の「12か月間無料」です。
アカウント作成から12か月を過ぎると、それまで無料だったEC2やRDSの利用が、通常の従量課金に切り替わります。
「最初の設定のまま放置していたら、13か月目から急に請求が発生した」というのは、実際によくあるパターンです。
なぜ高額請求が起きてしまうのか
高額請求が発生する主な原因は、次の3パターンに集約されます。
- 無料枠の範囲・期限を正しく理解していない
- 使わなくなったリソース(EC2インスタンスやEBSボリュームなど)を停止・削除し忘れる
- アクセスキーの漏洩による第三者の不正利用
特に2つ目は初心者が最もハマりやすいポイントです。
EC2は「停止」しても、アタッチされたストレージ(EBS)には料金がかかり続けることがあります。
「止めたから安心」と思い込まず、不要なリソースは削除まで行う意識が大切です。
実装手順(AWS Budgetsでの予算アラート設定)
手順1:AWS Budgetsを開く
予算アラートはAWS Budgets(予算を設定し、超過しそうになると通知してくれるサービスです)で設定します。
- マネジメントコンソールの検索窓で「Budgets」と入力
- 「AWS Budgets」を選択し、「予算を作成」をクリック
手順2:Zero spend budgetを設定する
初心者に最もおすすめなのがZero spend budget(利用料金が1セントでも発生した時点で通知してくれる予算です)です。
- 「予算を作成」画面で「テンプレートを使用する」を選択
- テンプレートの中から「Zero spend budget」を選ぶ
- 通知先のメールアドレスを入力する
- 「予算を作成」をクリックして完了
予算名: Zero spend budget
しきい値: 実際コストが $0.01 を超えたとき
通知先: your-email@example.com
この設定さえ済ませておけば、無料枠を少しでも超えて課金が発生した瞬間に、メールで気づくことができます。
手順3:具体的な金額の予算アラートも併用する
Zero spend budgetに加えて、「月$5を超えたら通知」のような具体的な金額の予算も設定しておくと安心です。
- 「予算を作成」で「カスタマイズ」を選択
- 予算タイプは「費用予算」を選ぶ
- 期間は「月次」、予算額は「$5」など任意の金額を入力
- アラートのしきい値を「実際コストの80%」「実際コストの100%」など複数設定
- 通知先メールアドレスを入力して作成
複数のしきい値を設定しておくと、「そろそろ危ない」という段階と「もう超えた」という段階の両方で気づけるようになります。
つまずきやすい設定・注意点
- 予算アラートは「通知してくれるだけ」で、自動で課金を止めてくれるわけではない
- 通知先のメールアドレスは、日常的に確認しているものを設定する
- 無料枠の利用状況は「Billing and Cost Management」の「Free Tier」画面からいつでも確認できる
「アラートを設定したから絶対安心」ではなく、「気づく仕組みを作った上で、定期的に自分でも確認する」という二段構えが理想です。
よくあるつまずきポイント・エラー対処
停止しただけのEC2インスタンスで料金が発生し続けた
❌ Before:EC2インスタンスを「停止」して満足してしまう
これは私が実際に経験した失敗です。
検証用に立てたEC2インスタンス(t2.microという無料枠対象のタイプ)を、使い終わったあとに「停止」ボタンで止めただけにしていました。
「停止したから料金はかからないはず」と思い込んでいたのですが、翌月の請求書を確認すると、以下のような明細が数十円〜数百円分計上されていました。
Amazon Elastic Block Store
EBS Storage: $0.10 per GB-month
原因は、EC2インスタンス本体は停止していても、アタッチされていたEBS(EC2にアタッチするストレージボリュームです)は稼働し続けており、そちらに料金が発生していたことでした。
金額自体は小さかったものの、「止めれば無料」という思い込みが間違っていたことに気づかされた出来事でした。
✅ After:不要なリソースは停止ではなく削除する、または定期的に棚卸しする
本当に使い終わったリソースは、停止ではなく「削除(終了)」まで行うのが安全です。
もしバックアップとして残しておきたいデータがある場合は、EBSのスナップショットだけ取得してからボリューム自体は削除する、という運用に変えました。
さらに、月に1回はBilling and Cost Managementの画面を開いて、動いているリソースと請求額に不自然な点がないかを確認する習慣をつけるようにしています。
この習慣をつけてからは、想定外の請求に驚くことはなくなりました。
応用・一歩先の使い方
Cost Explorerでコストの内訳を分析する
予算アラートで「気づく」ことができたら、次はCost Explorer(サービスごと・期間ごとの利用料金を可視化するツールです)で、何にいくらかかっているのかを分析してみましょう。
「どのサービスが費用の大半を占めているか」を可視化することで、構成の見直しポイントが見えてきます。
タグを使ったコスト配分の管理
複数のプロジェクトを並行して運用する場合は、リソースにコスト配分タグ(プロジェクト名などのタグをリソースに付け、タグ単位でコストを集計する仕組みです)を付けておくと、あとから「どのプロジェクトにいくらかかったか」を分析しやすくなります。
個人開発の段階から意識しておくと、将来チームで運用する際にもスムーズに移行できます。
まとめ
この記事のポイント
- AWS無料枠には「12か月間無料」「常に無料」「短期トライアル」の3種類がある
- 高額請求の主な原因は、無料枠の期限切れ・リソースの削除忘れ・アクセスキーの漏洩
- AWS BudgetsでZero spend budgetを設定し、課金発生を即座に検知できるようにする
- EC2インスタンスは「停止」だけでなく、不要なEBSボリュームまで削除する
- 月1回はBilling and Cost Managementで請求額を目視確認する習慣をつける
次に読むべき記事
- AWSとは?クラウドサービスの基本を初心者向けに解説
- IAMの仕組み:ユーザー・グループ・ロール・ポリシーの関係
タグ: AWS, 初心者向け, コスト管理