OCI Cost Analysis / Budgets
クラウド費用を可視化し、使いすぎを早めに察知。OCI Cost Analysis で内訳を分析し、子テナンシ・コンパートメント・タグの予算メールで超過を検知する。
- コストを期間・サービス・タグ単位で可視化し傾向を分析する。
- 予算を作成し、実績や予測がしきい値を超えると登録先へメールで警告する。
- 可視化と予算アラートが中心で、課金そのものを止める機能ではない。
解決する課題
請求書が届いてから「今月は高かった」と気づく後追いの運用から脱却し、コストの内訳と増加要因をリアルタイムに近い形で把握できます。
- 何にいくら使っているのか、サービス別・コンパートメント別・タグ別に内訳を知りたい
- コストの推移とトレンドを見て、急増したリソースや無駄を特定したい
- チーム/プロジェクトごとに上限(予算)を設定し、超えそうなときに早めに気づきたい
- 月末の請求を待たずに、予測ベースで着地額を見積もって意思決定したい
- 複数チームにコストを配賦(チャージバック/ショーバック)するための根拠データが欲しい
主要概念と用語
- Cost Analysis(コスト分析): コンソール上でコストを期間・粒度・グルーピングを変えて可視化・集計する画面。AWS の Cost Explorer に相当する
- Budget(予算): 子テナンシ・コンパートメント・タグのいずれかへ、月次または最長1年の単発予算を定義するオブジェクト。実績や予測がしきい値に達するとメールを送る
- Budget Alert Rule(アラートルール): 予算に紐づくしきい値設定。実際の支出(actual spend) か 予測支出(forecasted spend) のどちらを基準に、金額または割合(例 80 パーセント)で発火するかを定義する
- コスト追跡タグ(Cost-Tracking Tag): 定義済みタグに「コスト追跡」属性を付けたもの。タグ対象の予算に使う。Cost Analysis と独自形式のコストレポートは、この属性がない定義済みタグも参照できる
- Usage Report(使用状況レポート): テナンシのコスト・使用量明細を CSV として定期生成し、専用の Object Storage バケットに出力する詳細データ。BI ツールや外部分析に取り込む
- Cost and Usage Reports / FOCUS: コストと使用量の詳細を業界標準フォーマット(FOCUS)でも取得できる出力形式。マルチクラウドの横断分析に向く
- コンパートメント(Compartment): コストを集計・配賦する主要な境界。組織やプロジェクトをコンパートメントで切ると、そのままコスト配賦の単位になる
- 予測(Forecast): 過去の使用傾向から月末などの着地額を推定する仕組み。予測ベースの予算アラートに使われる
仕様・制限・クォータ
- 予算の対象は子テナンシ・コンパートメント・タグのいずれか。子テナンシ対象は組織の親テナンシから作成する
- 予算期間は繰り返しの月次または最長1年の単発。月次では処理開始日、単発では開始日と終了日を指定する
- 1 つの予算に複数のアラートルールを設定できる(例: 50 パーセント・80 パーセント・100 パーセントで段階通知)
- タグ別の予算にはコスト追跡タグをあらかじめ作成・適用する。Cost Analysis の分類には定義済みタグを使え、いずれもタグ付与前のコストへは遡及しない
- コストデータには反映の遅延がある。利用が記録されてから Cost Analysis や予算に反映されるまで時間差があるため、分単位のリアルタイム監視には向かない
- 予算アラートは通知であって課金停止ではない。しきい値を超えてもリソースは動き続け、自動でサービスが止まることはない
- Usage Report は Oracle 側テナンシの bling バケットに出力され、参照には対応する権限が必要。利用者自身のバケットではない
- 予算やアラートの個数にはテナンシ単位の上限(クォータ)があり、必要に応じてサービスリクエストで引き上げる
内部の仕組み
横にスクロール
OCI の課金エンジンが各サービスの使用量を継続的に計測・集計し、その結果が Cost Analysis・Budgets・Usage Report という複数の出口に供給されます。
- 計測 → 集計 → 可視化/評価の流れになっており、Cost Analysis は集計済みデータをクエリして表示する読み取り系、Budgets は同じ集計データを定期的に評価してしきい値判定を行う仕組み
- 予算の評価は24時間ごとに実行され、対象(子テナンシ・コンパートメント・タグ)に紐づく当期の実績コストを集計し、各アラートルールのしきい値と比較する。予測ベースのルールでは推定着地額と比較する
- しきい値を満たすと、予算はアラートルールへ登録したメールアドレスへ直接警告を送る。Notifications トピックへの直接配信ではない
- タグ単位の分析は、リソースに付与された定義済みタグをキーに行える。タグが付いていないコストは「タグなし」として扱われ、按分されない
- 詳細な明細が要る場合は Usage Report が CSV を Object Storage に出力し、これを Autonomous Database や外部 BI に取り込んで自由に分析する
Budgets のアラートは「超えそう/超えた」をメールで知らせるだけで、リソースを自動停止しません。コストの強制ガードが必要なら、Quota(クォータ)でリソース作成を制限します。自動停止は Budgets から Functions への直接配信ではなく、別の定期評価や運用処理として設計します。 また、コストデータは反映に時間差があるため、予算アラートは「即時の支出ブロック」ではなく「早期警告」として設計します。
設計パターン / ベストプラクティス
- コンパートメント設計をコスト配賦の単位に合わせる: チーム・プロジェクト・環境(本番/検証)でコンパートメントを切ると、Cost Analysis のグルーピングと予算対象がそのまま組織構造に対応する
- コスト追跡タグを早期に標準化:
CostCenter・Project・Environmentなどの定義済みタグをコスト追跡対象にし、タグ付け規約を IaC(Terraform 等)で強制する。後付けは遡れないため初期が肝心 - 段階的なアラートルール: 同じ予算に 50 / 80 / 100 パーセントなど複数のしきい値を設定し、早期は担当者、超過時はマネージャーへとエスカレーションする
- 予測ベースのアラートを併用: 実績だけでなく予測ベースのルールも入れておくと、月の前半で急増した場合に着地超過を早く検知できる
- 重要度別に通知先を分離: 予算のアラートルールごとにメール宛先を分け、早期警告と超過時の受信者を整理する
- 自動アクションは別経路で設計: 検証環境の夜間停止や上限超過時のスケールダウンは、スケジュール処理やコストAPIの定期評価として実装する
- 強制力が要る箇所は Quota で: 「これ以上作らせない」はアラートではなく Compartment Quota で実装する
運用・監視
- アラートが鳴らない: アラートルールの基準(実績か予測か)、しきい値(金額か割合か)、登録したメール宛先、最終評価時刻を確認する
- タグ別コストが想定と合わない: 定義済みタグを使っているか、リソースに実際にタグが付与されているか、タグ付け前の期間ではないかを確認する。タグ予算ではコスト追跡属性も確認する
- 数字がリアルタイムでない: コストデータには反映遅延があるのが正常。当日のごく直近の利用は反映途中のことがある
- 明細を深掘りしたい: Cost Analysis の集計で足りない粒度は Usage Report(CSV)を取得し、BI/DB で分析する
- 複数チームへの配賦: コンパートメントとコスト追跡タグの両軸で集計し、ショーバック(見える化のみ)かチャージバック(実費請求)かに応じてレポートを設計する
- 権限不足: コストや予算が見えない場合は、後述の IAM ポリシー(
usage-budgetsや使用量参照の権限)を確認する
コスト
Cost Analysis・Budgets・Cost and Usage Reports といったコスト管理機能そのものは、基本的に追加料金なしで利用できます。Oracle 側の bling バケットにあるレポート原本の保管や、Budgets の警告メールにも別料金はかかりません。課金されるのは分析対象のクラウド資源と、レポートを自分のストレージや分析基盤へ複製した場合の周辺サービスです。
| 項目 | OCI Cost Analysis / Budgets | AWS Cost Explorer / Budgets |
|---|---|---|
| 可視化・分析 | Cost Analysis(コンソールで集計・グラフ化) | Cost Explorer |
| 予算とアラート | Budgets(コンパートメント/タグ単位) | AWS Budgets |
| 詳細明細の出力 | Usage Report(CSV を Object Storage へ) | Cost and Usage Report(CUR)を S3 へ |
| コスト配賦のキー | コンパートメント+コスト追跡タグ | アカウント+コスト配分タグ |
| 機能自体の料金 | 基本的に追加料金なし | 基本機能は無償、一部 API 等は有償 |
セキュリティ
- IAM ポリシーで参照と管理を分離: コストの閲覧(使用量・コストの read)と予算の作成・変更(
manage budgets相当)を別グループに割り当て、最小権限にする - テナンシ全体のコストは強い権限: テナンシ全体のコストや使用状況の参照は機微情報になり得るため、ファイナンス担当など限定したグループにのみ付与する
- Usage Report バケットの保護: 明細 CSV が出力されるバケットは、配賦に必要な人だけが読めるようにアクセスを絞る
- 通知先の保護: 予算アラートへ登録するメールアドレスを必要な担当者に絞り、異動や役割変更に合わせて見直す
- タグの整合性: コスト追跡タグはタグ名前空間(Tag Namespace)で一元管理し、自由記述タグの乱立で配賦が壊れないようガバナンスを効かせる
「コストがいくらか」は Cost Analysis / Budgets、「リソースをこれ以上作らせない」は Compartment Quota、「誰がいつ何を操作したか」は OCI Audit。 コスト管理は可視化と警告、強制は Quota、操作証跡は Audit、と役割を分けて設計します。
Well-Architected の観点
- コスト最適化(Cost Optimization)が主役: Cost Analysis で支出を継続的に可視化し、未使用・過剰なリソースを定期的に洗い出して右サイズ化・停止する
- 予算による予防統制: プロジェクト開始時に予算とアラートを必ずセットし、コスト超過を事故ではなく仕組みで検知する文化にする
- 配賦による責任分界: コンパートメントとコスト追跡タグで「誰のコストか」を明確にし、各チームが自分の支出に責任を持つ(ショーバック/チャージバック)
- 運用との連携: 予算メールを対応手順へ結び、強制上限は Quota、自動停止は独立した定期処理として責任を分ける
試験で問われるポイント
- 予算(Budget)の対象は子テナンシ・コンパートメント・タグのいずれか。子テナンシ対象は親テナンシから作る
- アラートルールは実績(actual)支出と予測(forecasted)支出のどちらを基準にもできる
- 予算アラートは通知のみで、リソースを自動停止しない。強制的に作成を止めたいなら Compartment Quota を使う
- Cost Analysis は定義済みタグで分類でき、タグ予算にはコスト追跡属性を使う。タグ付け前のコストは遡って分類されない
- 詳細な明細が必要なら Usage Report(CSV を Object Storage に出力)を使う
- AWS では Cost Explorer = Cost Analysis、AWS Budgets = Budgets、CUR = Usage Report に対応する
- Cost Analysis / Budgets の機能自体は基本的に追加料金がかからない
関連サービス・比較
OCI のコスト管理は、可視化(Cost Analysis)、予算とアラート(Budgets)、明細出力(Usage Report)、そして強制統制(Quota)が役割分担しています。AWS の対応サービスと並べると理解しやすくなります。
| 観点 | OCI | AWS |
|---|---|---|
| コストの可視化・分析 | Cost Analysis | Cost Explorer |
| 予算としきい値アラート | Budgets(子テナンシ/区画/タグ) | AWS Budgets |
| 詳細明細データ | Usage Report(CSV/FOCUS) | Cost and Usage Report(CUR) |
| コスト配賦のタグ | コスト追跡タグ | コスト配分タグ |
| アラート通知の配信 | 登録メールアドレスへ直接送信 | Amazon SNS/メール |
| リソース作成の上限統制 | Compartment Quota | Service Quotas/SCP |
| 操作の監査証跡 | OCI Audit | AWS CloudTrail |
ハンズオン / CLI例
# 1) コンパートメントを対象に月次予算を作成
# amount は通貨単位、reset-period は月次サイクルを指定
oci budgets budget budget create \
--compartment-id "$TENANCY_OCID" \
--target-type "COMPARTMENT" \
--targets "[\"$COMPARTMENT_OCID\"]" \
--amount 1000 \
--reset-period "MONTHLY" \
--display-name "team-a-monthly-budget"
# 2) 実績支出が 80% に達したらメールで通知するアラートルールを追加
# type は ACTUAL(実績)か FORECAST(予測)、threshold-type は割合か金額
oci budgets budget alert-rule create \
--budget-id "$BUDGET_OCID" \
--type "ACTUAL" \
--threshold 80 \
--threshold-type "PERCENTAGE" \
--recipients "finance@example.com" \
--display-name "alert-80pct-actual"
# 3) 予測支出が 100% を超える見込みになったら鳴らす予測ベースのルール
oci budgets budget alert-rule create \
--budget-id "$BUDGET_OCID" \
--type "FORECAST" \
--threshold 100 \
--threshold-type "PERCENTAGE" \
--recipients "finance@example.com" \
--display-name "alert-forecast-overrun"
# 4) 作成済みの予算とアラートルールを一覧で確認
oci budgets budget budget list --compartment-id "$TENANCY_OCID"
oci budgets budget alert-rule list --budget-id "$BUDGET_OCID"
# 5) 詳細明細(Usage Report)の取得は専用バケットを参照する
# レポートは Oracle 側テナンシのバケットに出力されるため namespace を指定して読む
oci os object list \
--namespace-name "bling" \
--bucket-name "$TENANCY_OCID"
OCI Service
OCI Cost Analysis / Budgetsを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
管理・ガバナンス
比較で見る軸
クラウド: OCI / カテゴリ: 管理・ガバナンス / 難易度: basic
導入後に効く点
予算を作成し、実績や予測がしきい値を超えると登録先へメールで警告する。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- OCI
- カテゴリ
- 管理・ガバナンス
- 難易度
- basic
- 関連資格
- —
- 設計柱
- cost
判断チェックリスト
- 自社の用途が「管理・ガバナンス / cost」に近いか確認する。
- 強みである「コストを期間・サービス・タグ単位で可視化し傾向を分析する。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。