問題
ECサイトのMOpsチームのエンジニアとして、販促メール配信システムのインフラコストを最適化せよ。
現行構成
| 項目 | 現状 |
|---|---|
| GKE Standard ノード | n2-standard-4(4vCPU/16GB)× 3台(常時稼働) |
| 月間メール配信数 | 500万通 |
| バッチ処理 | 毎朝 03:00〜05:00 の2時間のみ高負荷(CPU 80%) |
| アイドル時間 | それ以外: CPU使用率 5〜10%(22時間/日) |
| GCS: 直近7日 | Standard クラス、200GB(頻繁にアクセス) |
| GCS: 7〜30日 | Standard クラス、500GB(週1〜2回) |
| GCS: 30〜90日 | Standard クラス、800GB(ほぼアクセスなし) |
| GCS: 90日超 | Standard クラス、500GB(アクセスなし) |
GCP 料金(参考)
| リソース | 単価 |
|---|---|
| n2-standard-4(東京リージョン) | $0.19/時間 |
| GKE Autopilot vCPU | $0.048/vCPU時間 |
| GKE Autopilot メモリ | $0.006/GiB時間 |
| GCS Standard | $0.020/GiB/月 |
| GCS Nearline | $0.010/GiB/月(最小30日保存) |
| GCS Coldline | $0.004/GiB/月(最小90日保存) |
| GCS Archive | $0.0012/GiB/月(最小365日保存) |
タスク:
1. 現行月額インフラコストを試算(GKE + GCS)
2. GKE Autopilot移行 + GCS ライフサイクル適用後の月額コストを試算
3. 削減額・削減率・ROIを計算(移行工数: エンジニア10人日、5,000円/時間)
4. ペイバック期間(投資回収期間)を計算
1. 現行月額インフラコストを試算(GKE + GCS)
2. GKE Autopilot移行 + GCS ライフサイクル適用後の月額コストを試算
3. 削減額・削減率・ROIを計算(移行工数: エンジニア10人日、5,000円/時間)
4. ペイバック期間(投資回収期間)を計算
ヒント(段階的開示)
ヒント1 — GKE コスト計算式
GKE のコストは「ノード台数 × 単価 × 稼働時間」で計算できます。現行は常時3台稼働なので、アイドル時間も含めてフルコストがかかっています。
ヒント2 — 計算式の骨格
【GKE Standard の月額コスト】
3台 × $0.19 × 720時間 = ?
【GKE Autopilot の月額コスト(バッチ処理のみ)】
バッチは月30日 × 2時間 = 60時間
- vCPU: 4 × $0.048 × 60時間 = ?
- メモリ: 12GiB × $0.006 × 60時間 = ?
【GCS ライフサイクル最適化】
アクセスパターンに合わせてストレージクラスを選ぶ:
- 直近7日 → Standard
- 7〜30日 → Nearline
- 30〜90日 → Coldline
- 90日超 → Archive
ヒント3 — 計算の答え合わせ
【現行月額試算】
GKE: $0.19 × 3 × 720 = $410.4
GCS Standard(全2TB = 2,048GiB): 2,048 × $0.020 = $40.96
合計: 約 $451
【Autopilot + ライフサイクル後】
GKE Autopilot vCPU: 4 × $0.048 × 60 = $11.52
GKE Autopilot メモリ: 12 × $0.006 × 60 = $4.32
GCS Standard: 200 × $0.020 = $4.00
GCS Nearline: 500 × $0.010 = $5.00
GCS Coldline: 800 × $0.004 = $3.20
GCS Archive: 500 × $0.0012 = $0.60
合計: 約 $28.6
削減額・ROI・ペイバック期間を自分で計算して確認してください。
コスト構造: Before vs After
1. 現行の月額インフラコスト
| 項目 | 計算式 | 月額(USD) |
|---|---|---|
| GKE Standard(n2-standard-4 × 3台) | $0.19 × 3 × 720h | $410.4 |
| GCS Standard(2,048GiB) | 2,048GiB × $0.020 | $41.0 |
| 合計 | $451.4 |
2. 最適化後の月額インフラコスト
GKE Autopilot(バッチ処理 30日 × 2h = 60時間)
| 項目 | 計算式 | 月額(USD) |
|---|---|---|
| vCPU(4コア) | 4 × $0.048 × 60h | $11.5 |
| メモリ(12GiB) | 12 × $0.006 × 60h | $4.3 |
| GKE Autopilot 小計 | $15.8 |
GCS ライフサイクル最適化
| 期間 | 容量 | クラス | 単価 | 月額(USD) |
|---|---|---|---|---|
| 直近7日 | 200GiB | Standard | $0.020 | $4.0 |
| 7〜30日 | 500GiB | Nearline | $0.010 | $5.0 |
| 30〜90日 | 800GiB | Coldline | $0.004 | $3.2 |
| 90日超 | 500GiB | Archive | $0.0012 | $0.6 |
| GCS 小計 | $12.8 |
| 項目 | 月額(USD) |
|---|---|
| GKE Autopilot | $15.8 |
| GCS(最適化後) | $12.8 |
| 合計 | $28.6 |
Terraform ライフサイクルルール実装例
resource "google_storage_bucket" "mops_data" {
name = "mops-data"
location = "asia-northeast1"
lifecycle_rule {
condition { age = 7 }
action { type = "SetStorageClass"; storage_class = "NEARLINE" }
}
lifecycle_rule {
condition { age = 30 }
action { type = "SetStorageClass"; storage_class = "COLDLINE" }
}
lifecycle_rule {
condition { age = 90 }
action { type = "SetStorageClass"; storage_class = "ARCHIVE" }
}
}
3. 削減額・削減率・ROI
【月間削減額】
$451.4 - $28.6 = $422.8/月
1USD = 150円 換算 → 約 63,420円/月
【削減率】
$422.8 / $451.4 × 100 ≒ 93.7%
【移行コスト(工数費)】
10人日 × 8時間 = 80時間
80時間 × 5,000円/時間 = 400,000円(4万円/月 × 0.5人月相当)
【ROI(初年度)】
年間削減額: 63,420円 × 12 = 760,940円
ROI = (760,940 - 400,000) / 400,000 × 100 ≒ 90.2%
4. ペイバック期間
ペイバック期間 = 移行コスト / 月間削減額
= 400,000円 / 63,420円
≒ 6.3ヶ月
一般的にペイバック12ヶ月以内が投資承認の目安。本案件は 6ヶ月以内 で回収でき、多くの企業で承認が得やすい。
5. 非エンジニア向け提案サマリー
結論: 10人日(約40万円)の投資で、インフラコストを 月約6.3万円(94%削減) できます。6〜7ヶ月で初期投資を回収し、以降は毎月約6.3万円の継続的なコスト削減が見込めます。
主な改善内容:
• GKEの最適化: バッチ処理が走る2時間だけサーバーリソースを使う形に変更(従来は24時間常時稼働)
• ストレージの最適化: アクセス頻度の低いデータを安価な保管クラスへ自動移行するルールを設定
リスク: Autopilotへの移行に際して、Argo Workflowsのノードアフィニティ設定を更新する必要があります。移行前にステージング環境での動作確認が必要です(工数内に含む想定)。
主な改善内容:
• GKEの最適化: バッチ処理が走る2時間だけサーバーリソースを使う形に変更(従来は24時間常時稼働)
• ストレージの最適化: アクセス頻度の低いデータを安価な保管クラスへ自動移行するルールを設定
リスク: Autopilotへの移行に際して、Argo Workflowsのノードアフィニティ設定を更新する必要があります。移行前にステージング環境での動作確認が必要です(工数内に含む想定)。
ポイント解説
1
アイドルコストの可視化
GKE Standard は常時3台稼働で、1日22時間(92%)がほぼアイドル状態。このムダを定量化することで改善の優先度が明確になる。
GKE Standard は常時3台稼働で、1日22時間(92%)がほぼアイドル状態。このムダを定量化することで改善の優先度が明確になる。
2
GCSのストレージ階層設計
「とりあえず全部Standard」はよくある過ちで、Coldline/Archiveを使い分けることで GCS コストを $41 → $12.8(69%削減)できる。ライフサイクルルールは
「とりあえず全部Standard」はよくある過ちで、Coldline/Archiveを使い分けることで GCS コストを $41 → $12.8(69%削減)できる。ライフサイクルルールは
gsutil lifecycle set や Terraform の lifecycle_rule で自動化できる。
3
ペイバック期間で説明する
エンジニアは「削減率93%」に目が行きがちだが、ビジネスサイドは「いつ元が取れるか」(ペイバック期間)で判断する。6ヶ月以内なら多くの企業で承認が得やすい。
エンジニアは「削減率93%」に目が行きがちだが、ビジネスサイドは「いつ元が取れるか」(ペイバック期間)で判断する。6ヶ月以内なら多くの企業で承認が得やすい。
実務への応用
Argo Workflows を GKE Autopilot に移行する際の注意点:
# Argo Workflows: Autopilot 対応の設定変更
templates:
- name: batch-step
container:
resources:
requests:
cpu: "2" # Autopilot は requests に基づいて課金される(明示必須)
memory: "6Gi"
# NG: nodeSelector や tolerations は削除する(Autopilot のスケジューラに任せる)
# nodeSelector:
# cloud.google.com/gke-nodepool: batch-pool ← 削除
podTemplate.nodeSelectorやtolerationsを削除し、Autopilot のスケジューラに任せる- リソースリクエスト(
resources.requests)を明示的に設定する(Autopilot は requests に基づいて課金される) - GCS ライフサイクルルールは Terraform
google_storage_bucketのlifecycle_ruleブロックで管理するとIaC化できる
今日のまとめ
「常時稼働 → 必要な時だけ稼働」への転換と、アクセスパターンに合わせたストレージ階層設計の組み合わせで、インフラコストを94%削減できる。
コスト改善提案は「削減率」よりも「ペイバック期間(何ヶ月で元が取れるか)」で語ると、非エンジニアの意思決定者に刺さりやすい。
コスト改善提案は「削減率」よりも「ペイバック期間(何ヶ月で元が取れるか)」で語ると、非エンジニアの意思決定者に刺さりやすい。