AWSの使用料金を確認したら、無駄な使用料金を発見!参考事例を紹介します!

AWS
この記事は約11分で読めます。

こんにちは、@Manabu です。

AWSはクラウドサービスの中でも特に人気が高く、その優れたスケラービリティや信頼性により、多くの企業や個人開発者に利用されています。

しかし、AWSの料金体系は多岐に渡るため、しっかりと管理しないと予想外のコストが発生することがあります。

Manabu
Manabu

利用サービスを追加したわけじゃないけど高くなっている…?

私も、気づくと120ドル近く使ってしまっている月があり、使用サービスについて見直しました。

画像を見ていただくと、順調にコストが下がっているのがわかると思います。

今回は、AWSの使用サービスと利用料金について見直し、無駄な料金が発生していることに気づいたので、参考例として項目を紹介していきます。

この記事は、以下のような方におすすめです。

・コストが高くなっていると感じる
・サービスや料金の見直しがしたい
・無駄なコストってどんなもの?

初めてAWSを使う方や、コスト管理に不安を感じている方にもおすすめの記事ですので、ぜひ参考にして下さい!

はじめに

AWSにおいてどのように料金が発生するのか、使用料金はどのように確認するのかなど説明します。

AWS料金携帯の基本

AWSはクラウドコンピューティングサービスを提供しており、その料金体系は「従量課金制」を基本としています。これは、実際に使用したリソースの量に基づいて料金が発生するシステムです。

料金はサービスごとに異なり、使用した計算リソース、ストレージ、転送データ量などによって決まります。

主な料金形態

  1. 従量課金制多くのAWSサービスがこのモデルを採用しており、使った分だけ料金を支払います。例えば、EC2やS3などがこれに該当します。
  2. 予約インスタンス:EC2やRDSなどのインスタンスを立てて使用するサービスで、事前にリソースを予約することで割引を受けられるオプションです。長期間にわたって一定のリソースを使用する場合にコスト削減が見込めます。
  3. 無料利用枠:AWSは新規ユーザーに対して12ヶ月の無料利用枠を提供しており、特定のサービスを基本レベルで無料で使用できます。これにより、サービスを試すことができます。
  4. スポットインスタンス:EC2では、使われていない計算リソースを市場価格で購入できるスポットインスタンスがあります。価格は需要と供給によって変動し、コストを大幅に削減できる可能性があります。

使用料金の確認方法

AWSの利用料金を把握し、コストを管理するためには、まず定期的に料金を確認することが重量です。

マネジメントコンソールにある請求ダッシュボードは、AWSの使用状況と関連する費用をリアルタイムで確認できます。

以下は、請求ダッシュボードを使用する際の主要な機能とその利点です。

  • 現在の請求額の確認
    ダッシュボードのトップページでは、現在の請求周期における総請求額を確認できます。これには、各サービスごとの料金も含まれており、どのサービスがコストを最も多く占めているかを素早く把握できます。
  • サービス別の使用料と費用の詳細
    「サービス別の詳細」セクションでは、選択した期間内の各AWSサービスの使用量とそれに対応する費用を詳しく確認できます。これは、コストが予想以上に高くなっている原因を特定するのに役立ちます。
  • 予測請求額
    月末までの予測請求額を確認することもできます。これにより、予算オーバーを防ぐための早期の対応が可能になります。
  • 請求アラートの設定
    AWS Budgetsと連携して、特定の請求額に到達した時点で通知を受け取るように設定できます。これは、予期しない高額な請求を避けるための有効な手段です。

AWSの料金管理と最適化には、このように多様なツールと方法が用意されています。
請求ダッシュボードを定期的にチェックし、予期しない料金の増加を避けるためのプロアクティブなアプローチを取りましょう。

料金の最適化

AWS料金を最適化するためには、使用しているサービスの監視、不要なリソースの削除、適切なリソースサイズの選択、予約インスタンスやスポットインスタンスの活用などが重要です。

また、AWSコストエクスプローラーや予算アラートなどのツールを使用して、コスト管理を行うことも推奨されます。

具体的な対応について

今回、私の環境で最適化を行ったサービスや不要リソースについて紹介します。

対応1:EC2のEBSボリュームの削除

EC2にアタッチするストレージの種類にEBSというブロックストレージがあります。こちらが原因でコストが高くなっていました。

背景

AWSのコスト管理ツールであるCost Explorerを利用して料金を確認した際、EC2サービスに関連するEBSボリュームのコストが目立っていました。

特に、「$0.12 per GB-month of General Purpose SSD (gp2) provisioned storage」という料金設定下で、EBSボリュームの使用料が月額30ドル程度になっていることが明らかになりました。

私の認識としては、EBSについて何か設定したわけでなく、どうしてこんなに高くなっているのだろうと思い、調査することにしました。

対応

具体的な対策として、まずどのEBSボリュームが実際に必要で、どれが不要になったのかを把握するために、現在の使用状況を詳細に分析しました。

不要なEBSボリュームを特定した後、これらを安全に削除することで、不要なストレージコストを削減しました。

結果

このアプローチにより、EC2のEBSボリュームに関連する月額コストを大幅に削減することができました。

具体的には、不要なEBSボリュームの削除により、毎月約30ドルのコストが削減されました。

考察

EBSボリュームのようなストレージリソースは、使用していないときでもコストが発生するため、特に注意が必要です。

今回は手動で実行しましたが、AWSのLambdaなどを利用して定期的に未使用のEBSボリュームを自動的に識別し、削除するスクリプトを実装することで、このプロセスを自動化することも可能なようです。

対応2:EC2を2台から1台構成に変更

AWSの中で人気のあるサービスは、料金が高い傾向にあります。EC2も同様で2台から1台に変更することでコスト削減になります。

背景

AWSで開発を開始した当初は、負荷分散や高可用性を確保するためにEC2インスタンスを2台構成で運用していました。

しかし、現在の利用状況やアプリケーションの構成を再検討したところ、1台のインスタンスでも十分に対応できることが判明したため、AWSサービスの再検討を行うことになりました。

対応

EC2を1台にするために、全体的な構成を変更しました。

まず、元々の構成は以下です。CloudFrontのオリジンにALBを設定して、EC2に分散しているよくある構成です。

以下が対応後の構成になります。

EC2を1台にするために、CloudFrontのオリジンにEC2を直接指定し、EC2とALB、AutoScalingを廃止しています。

また、サイト自体の耐久性と可用性を考え、通常のユーザーの方はCloudFrontとS3の静的ウェブホスティングの構成で閲覧していただくように対応しました。

結果

2台ともリザーブドインスタンスを購入していたのですが、片方は全額前払いではなかったので、毎月約20ドル程度の料金が発生しており、さらにELBも使用していたため、合わせて約40ドルのコストがかかっていました。

今回の対応により、丸々40ドルのコスト削減が実現しています

考察

EC2インスタンスの構成を見直すことは、利用状況に応じたコスト最適化の一環として非常に有効です。

特に、小規模なプロジェクトや個人開発の場合、過剰なリソースを避けることで大きなコスト削減が期待できます。

対応3:RDSからEC2のローカルDBに移行

AWSの中で人気の高いRDSについても、利用料金が高く設定されているため、今回は使用を止めるように対応しました。

背景

当初、データベースの管理を簡素化するためにAmazon RDSを利用していました。

しかし、アプリケーションの構成がシンプルであり、EC2インスタンスのリソースが十分であることから、コスト削減のためにローカルデータベースへの移行を検討しました。

対応

EC2の対応を行なった後、RDSの削除を行うことで以下のような構成になっています。

RDSからデータを取得し、ローカルにMySQLを作成して、データの移行を行なっています。
※対応方法は、以下の記事で紹介しています。

RDS構成からEC2のローカルへDBを移行!AWSコストを削減するための対応方法!

結果

RDSもリザーブドインスタンスを購入していましたが、全額前払いでなかったため、月18ドル程度かかっていました。

この対応で、18ドルのコストを削減しています。

考察

RDSの自動バックアップやスケーリング機能など、マネージドサービスの利便性を失うため、運用管理の負荷が増える点には注意が必要です。

個人開発者の場合、コストと運用負荷のバランスを考慮しながら最適な構成を選択することが重要です。

対応4:Elastic IPの有料化

ElasticIPが完全に有料化され、アタッチしている時間にも料金が発生してしまうため、コスト削減のため対応しました。

背景

AWSでは、Elastic IP(EIP)がインターネットからのアクセスに使用される静的なIPv4アドレスを提供します。

これまで、EC2にアタッチされていれば無料でしたが、2024年2月からElastic IPの需要の増加を受けて新しい料金形態(1時間当たり0.05ドル)が導入されました。

この新しい料金形態の導入に気付かず、2台のEC2インスタンスに1ヶ月間Elastic IPを関連付け続けた結果、予想外の12ドルの追加費用が発生しました。

対策

この問題に対処するために、まずElastic IPを必要としないインスタンスからEIPを解除しました。

特に、Auto Scalingグループによって管理されるインスタンスでは、EIPを関連付けることがコスト効率が悪いことが明らかになりました。

これは、インスタンスの起動と終了が頻繁に行われるため、EIPの再関連付けが必要になり、それが追加料金を発生させる可能性があるからです。

加えて、Elastic IPを使用する代わりに、SSH接続などの目的でAWSのセッションマネージャーを使用することを検討しました。

セッションマネージャーを使用することで、インスタンスへの安全なアクセスを提供しつつ、不必要なElastic IPの使用を避けることができます。

結果

Elastic IPの使用を見直し、必要な場合にのみEIPを取得して使用するようにしたことで、毎月のコストを8ドル削減することができました。

また、セッションマネージャーの使用は、Elastic IPを使わなくても安全にEC2インスタンスへのアクセスを確保できることを示しました。

考察

ElasticIPの料金体系変更は、クラウドリソースの管理において柔軟性とコスト意識を同時に求める重要性を再認識させてくれるものになりました。

Elastic IPは、固定IPの必要性が高い特定のユースケースでは依然として価値がありますが、その利用にはより戦略的なアプローチが必要です。

セッションマネージャーのような代替手段を活用することで、コストを抑えつつ必要な機能を提供することでコストと機能性の最適化を調整していくことが重要です。

対応5:WAFのルールの最適化

WAFにも思ったよりコストがかかっていたので、対応しています。

背景

私たちのブログでは、セキュリティ強化のためにAWS WAF(Web Application Firewall)を導入しています。

しかし、WAFの料金形態について詳細な検討を行ってこなかったため、リクエスト処理だけでなく、ルールやWebACLの設定にも費用が発生していることが、AWSの公式料金ページの確認から新たに明らかになりました。

料金 - AWS WAF | AWS
AWS WAF の料金 – アマゾン ウェブ サービス (AWS)

対策

料金の見直しを行う過程で、WAFのルールセットを精査しました。

その結果、以下のようなコストを支払う価値のないルールがいくつか見つかりました。

  • 初期に設定して以降、ほとんど使用していないIP制限ルール
  • 指定ディレクトリに対するアクセス制限をかける優先度の低いルール
  • 実際には必要性が低いと判断したAWSが提供するマネージドルールセット
    ※サイトに必要かどうかはご自身で判断するようにお願いします。

これらのルールは、Webアプリケーションのセキュリティを維持する上で必須ではなかったため、削除または無効化することにしました。

結果

不要なルールを削除することで、WAFの月額費用を約5ドル削減することができました。

このコスト削減は、セキュリティ対策を行いながらも、経済的な負担を軽減することができるという点で非常に価値があります。

考察

WAFのようなセキュリティサービスを利用する際には、単にセキュリティ強化のためだけでなく、コストパフォーマンスも考慮する必要があることがわかりました。

特に、ルールやポリシーの設定には、それぞれ費用が発生するため、定期的にこれらの設定を見直し、本当に必要なセキュリティ対策のみを実施することが重要です。

また、マネージドルールセットなどの自動化されたセキュリティサービスを利用する場合でも、その内容とコストを理解し、適切に適用することが求められます。

セキュリティとコストのバランスを適切に管理することで、効果的かつ効率的なWebアプリケーション保護策を実現できます。

まとめ

この記事では、AWSの料金を効果的に見直し、具体的なコスト削減策を実施した結果を共有しました。

以下に、主要な措置とその節約効果をまとめます。

実施したコスト削減策と節約額

  • 不必要なEBSの削除:30ドル
  • EC21台とALBの削除:40ドル
  • RDSの移行と削除:18ドル
  • ElasticIPの適切な管理:8ドル
  • WAFのルールを修正:5ドル

これらの措置により、月額120ドルの使用料金が20ドルに削減され、合計で100ドルの節約を実現しました。

特に、コスト管理は一度きりの作業ではなく、定期的に見直しと管理が必要なことを再認識しました。

AWS の請求ダッシュボードなどのツールを積極的に活用し、自分の使用状況に合わせた最適な管理戦略を作成することが、コスト削減とリソースの効率的な使用につながります。

今回の取り組みから得られた知見を活かし、AWSのコスト最適化を継続的に追求していくことが重要です。