これまでの記事で、AWSコスト最適化の「考え方」と「基本ステップ」を解説してきました。
【第1回】 AWSのコスト最適化って何?家計簿で例えるクラウド節約術!
【第2回】今日から始めるAWSコスト最適化!5ステップで実践する節約術
今回は実践編!
実際のAWS環境でコスト削減を行った経験をもとに、AWS Trusted Advisorを使った具体的な発見と改善プロセスをご紹介します!
人間ドックでは、「コレステロールが高いですよ」「肺に影があります」「運動不足です」などと、具体的な問題点を指摘してくれますよね。
Trusted Advisorも同じ!
AWS環境を診断して、「このサーバー、誰も使ってないですよ」「このセキュリティ設定、危険です」「このデータベース、性能が余ってます」と、具体的な改善点を教えてくれるんです!
今回は特に「コスト最適化」に焦点を当てていきます!
実際に見つかった無駄遣いパターン5選
実際の環境でTrusted Advisorを実行したところ、以下のような無駄遣いが発見されました!
パターン①アイドル状態のRDS
Trusted Advisorにて、2週間CPU使用率0%なRDSインスタンスがあると発覚!
誰も住んでいない別荘の光熱費を払い続けているようなものです。
開発環境の放置
テスト用に立てたにも関わらずプロジェクト終了後も削除せず放置した結果、月額3万円 × 6ヶ月 = 18万円の無駄!
アプリ終了後の削除漏れ
サービス終了しているのに連携ができておらず、気付くまで1年間放置した結果、36万円の無駄!
スナップショットからのリストア後放置
バックアップ後、検証終わったのにDB削除忘れた結果、月額5万円 × 3ヶ月 = 15万円の無駄!
| 対策 | 効果 | 難易度 |
|---|---|---|
| 不要なら削除 | 100%削減 | 簡単 |
| 小さいサイズにダウングレード | インスタンスサイズによる | 中 |
| 自動停止スケジュール設定 | 停止時間による | やや難 |
注意点として、削除前に必ずスナップショット(バックアップ)を取得するようにしたり、本当に誰も使っていないか関係者に確認を必ず行うようにしましょう!
「念のため残してる」は禁物!本当に必要なものだけ残しましょう。
パターン②使用率の低いEC2
Trusted Advisorにて、CPU使用率が平均5%のEC2インスタンスがあることが発覚!
10人乗りのワンボックスカーを買ったのにいつも1人しか乗ってないようなものです。
過剰スペックの選択
しかし、実際の負荷は想定の1/10。
オーバースペックで毎月無駄払いに…
ピーク時基準の設計
ピークは年に数回だけなのに、普段もピーク時に揃えているとむしろスペック過剰に!
開発環境で本番と同じスペック
開発環境に高性能サーバーは不要なのに、本番環境と同じスペックを用意したせいでコストが2倍に!
解決策(例)
ステップ①現状分析
CloudWatchメトリクスで確認すると…
- CPU使用率: 平均5% → 過剰!
- メモリ使用率: 30% → まだ余裕
- ネットワークI/O: 低い → 通信少ない
ステップ②適切なサイズ選び
| 現在 | CPU使用率 | 推薦 | 削減額 |
|---|---|---|---|
| m5.2xlarge | 5% | m5.large | 約月5万円 |
| t3.xlarge | 10% | t3.medium | 約月3万円 |
| c5.4xlarge | 15% | c5.xlarge | 約月8万円 |
ステップ③ Auto Scalingの導入
従来は常にm5.large × 5台 = 月40万円
改善策として
- 通常時:m5.large × 2台 = 月16万円
- ピーク時:自動で5台に増加
- 平均:月20万円
月20万円で、50%もの削減!
パターン③放置されたディスク(EBS)
Trusted Advisorにて、どのサーバーにも接続されていないEBSボリュームを発見!
解約した携帯のオプションサービス料金を払い続けているようなもの!
サーバー削除時の削除漏れ
EC2は削除したものの、それに接続していたディスク(EBS)が残っていて月額1万円 × 放置期間 分、余分に支払いが発生…
開発環境の断捨離忘れ
開発環境で作成したテストデータ用ディスクがプロジェクト終了後も放置、塵も積もれば…
解決策(例)
ステップ①Trusted Advisorで「アタッチされていないEBS」を確認
ステップ②本当に不要か確認(所有者にヒアリング)
ステップ③スナップショット取得後、削除
もし削除をするとなったら、以下に注意をしましょう。
- 誰が、何のために作ったディスクか確認
- 最終アクセス日を確認
- 念のためスナップショット(バックアップ)を取得
- 削除後も7日間はスナップショットを保持
パターン④S3の不完全なアップロードの放置
Trusted Advisorにて、S3バケットに完了していないアップロードのデータが溜まっていることを発見!
買い物カゴに商品を入れたまま放置して、保管料を払い続けているようなもの。
マルチパートアップロードとは、大きなファイル(動画、バックアップなど)を分割してアップロードする仕組み。
例:10GBの動画ファイルをアップロード
→ 100MB × 100個に分割
→ 1個ずつアップロード
→ 全部揃ったら結合
問題が起きるケース
アップロード開始!
→ 50個アップロード完了
→ ネットワークエラーが発生
→ アップロード失敗…
→ しかし50個の「ゴミデータ」は残ったまま
→ 料金は発生し続ける!
解決策(例)
- 自動削除(ライフサイクルルール)の設定
- S3バケットの設定で「不完全なマルチパートアップロードは7日後に自動削除」を指定
7日以内に完了しなかったアップロードは自動削除にすることで料金も自動で削減。
一度設定すれば、あとは自動!
設定方法は以下になります。
- S3コンソールを開く
- バケットを選択
- 「管理」→「ライフサイクルルールを作成する」
- 「有効期限切れのオブジェクト削除マーカーまたは不完全なマルチパートアップロードを削除」を有効化
- 「未完了のマルチパートアップロード」を有効化→「7日後」に設定
- ルールの作成!
パターン⑤ 使われていないVPCエンドポイント
Trusted Advisorにて、誰も使っていないVPCエンドポイントを発見!
家計で例えると、 使わなくなったネット回線の月額料金を払い続けているようなもの。
VPCエンドポイントとは、AWSサービス同士をプライベートに接続する「専用回線」のようなもの。
しかし問題は、プロジェクト終了後VPCエンドポイントだけ残ってること。
使ってないのに月額料金が発生してしまいます…
解決策(例)
1. CloudWatchメトリクスで通信量を確認
– 通信量ゼロ → 誰も使ってない!
2. 接続元のリソースを確認
– EC2が削除済み → 不要!
– アプリが停止中 → 不要!
3. 削除しても影響ないか最終確認
– 関係者にヒアリング
– 本番環境なら特に慎重に!
4. 削除実行!
コスト削減効果まとめ(例)
| パターン | 対象 | 削減額/月 | 削減額/年 | 削減率 |
|---|---|---|---|---|
| 1. アイドルRDS | データベース | 7.5万円 | 90万円 | 83% |
| 2. 低使用率EC2 | サーバー | 40万円 | 480万円 | 97% |
| 3. 放置EBS | ディスク | 5.8万円 | 70万円 | 99% |
| 4. 不完全S3アップロード | ストレージ | 4.5万円 | 54万円 | 99% |
| 5. 未使用VPCエンドポイント | ネットワーク | 2.8万円 | 34万円 | 80% |
| 合計 / 平均 | 60.6万円 | 728万円 | 85% | |
年間700万円以上の削減!これだけあれば…
- 新しいサービス開発に投資できる
- エンジニアを1-2名増員できる
- 全社でボーナス還元できる
などなど、他のことに経費を当てることができます!
- 費用対効果の最大化
└ 削減予算を新規事業に投資 - 透明性の向上
└ 支出を明確に可視化 - 環境のシンプル化
└ 管理対象を減らし運用を楽に - セキュリティ向上
└ 放置リソースのリスク排除 - ベストプラクティス準拠
└ AWS推奨の健全な環境へ
- サービス停止
【対策】影響調査、メンテ枠確保 - パフォーマンス低下
【対策】負荷テスト、監視強化 - 予期せぬ依存関係
【対策】徹底した事前ヒアリング - 初期工数の発生
【対策】段階的な実施で負荷分散 - データ損失
【対策】最新バックアップを確認
Trusted AdvisorはAWSにとって無料の健康診断ツールのようなもの。
定期的にチェックすることであなたの環境の無駄を早期発見しましょう!
コスト最適化に注目して対策を行うことは単なる一時的なコスト削減だけでなく、継続的な改善活動を通じて組織全体のクラウド活用の質を高めることができます!
さあ、あなたも今日からTrusted Advisorで無駄遣いをチェックしてみませんか?