LESSON 30分

「FinOpsはツールの問題ではなく、文化の問題だ」と佐藤CTOは強調した。「エンジニア一人ひとりがコストを意識し、ビジネス判断としてコストを最適化する。それがFinOpsだ。」

1. FinOpsフレームワーク

Inform → Optimize → Operate

フェーズ目的活動
Inform可視化と配分コストの可視化、チームへの配分、レポーティング
Optimize最適化Right-sizing、予約購入、無駄の削減
Operate運用バジェット管理、異常検知、継続的改善

2. Unit Economics

// コストをビジネスメトリクスに紐づける
interface UnitEconomics {
  costPerUser: number;        // $/MAU
  costPerTransaction: number; // $/取引
  costPerApiCall: number;     // $/1M API calls
  costPerGbStored: number;    // $/GB/月
}

function calculateUnitEconomics(
  monthlyCost: number,
  metrics: { mau: number; transactions: number; apiCalls: number; storageGb: number }
): UnitEconomics {
  return {
    costPerUser: monthlyCost / metrics.mau,
    costPerTransaction: monthlyCost / metrics.transactions,
    costPerApiCall: (monthlyCost / metrics.apiCalls) * 1_000_000,
    costPerGbStored: monthlyCost / metrics.storageGb,
  };
}

// 例: 月$50,000、MAU 100万、取引50万件
const economics = calculateUnitEconomics(50000, {
  mau: 1_000_000,
  transactions: 500_000,
  apiCalls: 500_000_000,
  storageGb: 10_000,
});
// costPerUser: $0.05/MAU
// costPerTransaction: $0.10/取引
// → ユーザー数が2倍になってもコストが2倍にならないことが理想

3. チームへのコスト意識浸透

Showback と Chargeback

モデル説明メリットデメリット
Showbackコストを見せるだけ抵抗が少ない行動変容が弱い
Chargebackチームの予算に課金強い動機づけ運用が複雑
// チームごとのコストレポート(Showback)
interface TeamCostReport {
  team: string;
  totalCost: number;
  breakdown: { service: string; cost: number }[];
  trend: { month: string; cost: number }[];
  unitCost: number;        // チームのUnit Economics
  optimizationScore: number; // 0-100(Savings Plans カバレッジ等)
  recommendations: string[];
}

// 毎週のSlack通知
function generateWeeklyCostSummary(teams: TeamCostReport[]): string {
  return teams.map(t =>
    `*${t.team}*: $${t.totalCost.toLocaleString()} (${t.trend.length > 1 ?
      `${((t.totalCost / t.trend.at(-2)!.cost - 1) * 100).toFixed(1)}% vs 先月` :
      '初月'})\n` +
    `  最適化スコア: ${t.optimizationScore}/100\n` +
    (t.recommendations.length > 0 ? `  推奨: ${t.recommendations[0]}` : '')
  ).join('\n\n');
}

4. FinOps 成熟度モデル

レベル特徴チェックポイント
Crawlタグ付け、基本的なコスト可視化Cost Explorerを定期的に確認
Walkチーム別Showback、Right-sizing週次コストレビューを実施
RunChargeback、自動最適化、Unit EconomicsコストがOKRに含まれる

まとめ

トピック要点
FinOpsサイクルInform → Optimize → Operate の継続的改善
Unit Economicsコストをビジネスメトリクスに紐づけて判断
コスト文化Showback/Chargebackでチームのコスト意識を醸成
成熟度Crawl → Walk → Run で段階的に導入

チェックリスト

  • FinOpsの3フェーズを説明できる
  • Unit Economicsを定義し計算できる
  • Showback/Chargebackの違いと使い分けを理解した
  • FinOps成熟度モデルの各レベルを説明できる

次のステップへ

FinOpsプラクティスを学んだ。次は 演習 で、コスト最適化計画を策定しよう。

推定読了時間: 30分