Oracle Cloud Infrastructure (OCI)、使っていますか?OCI に限らずですが、クラウドは無計画に利用すると突然多額の利用料を請求されかねません。
そこで今回は、OCI の利用料金の確認方法をご紹介したうえで、予算アラート機能を使って利用料予測をチェックする方法をお知らせします。
OCI の利用料金の確認方法
OCI の利用料を確認するには、「コスト分析」画面を利用します。
- OCI 管理コンソール左上のハンバーガーメニュー → アカウント管理 → コスト分析
この画面で、コンパートメント単位で利用料を確認できます。
「コンパートメント」でフィルタをしない初期状態では、全てのサービスの利用料が確認できます。
- OMC (Oracle Management Cloud)
- IDCS (Oracle Identity Cloud Service)
など、現状 OCI の中に存在せずコンパートメントに紐付かないサービスについても、コンパートメントでのフィルタ指定をしない状態でのみ確認できます。
サービスごとに、単価と使用量も確認できますので、意図せず課金されている内容がないか、ここで確認するようにすると良いでしょう。
「使用状況レポート」はよく分からない…
「コスト分析」画面が所属する「アカウント管理」メニューの中に、「使用状況レポート」という画面がありました。
開いてみると、何やらエラーが出ています。どうも自分で Policy を設定しないと見えないようです。指定すべき Policy のステートメントは2つで、エラーの下に手順込みで記載されていますので、そのとおりに設定してみます。
- 以下2つのステートメントを記述した Policy を、テナンシのルート・コンパートメント直下に作成する
define tenancy usage-report as 【テナンシの OCID】
endorse group 【グループ名】 to read objects in tenancy usage-report
Policy を設定すると、次のようにレポートファイルが見えるようになります。
.csv.gz
という拡張子のとおり、CSV ファイルが圧縮されています。中を開いてみましたが、リソースの使用状況がログのように出力されているだけで、普段ユーザが利用するファイルではないようです。
予算アラートを設定する
少し寄り道しましたが、続いて予算アラートを設定してみます。OCI の予算アラート機能は2種類あり、
- 利用実績に基づくアラート (「すでに○○円以上使っていますよ!」)
- 利用予測に基づくアラート (「このままだと○○円請求されちゃいますよ!」)
が設定できます。一つひとつ試してみます。
「コスト分析」画面と同じ「アカウント管理」メニュー内に、「予算」という項目がありますので、こちらに移動します。
まずは「予算の作成」ボタンを押下します。
上のようなダイアログが表示されます。
指定のコンパートメントに対して、今月いくら使ったか or 今月いくら使いそうか、をアラートルールとして設定できます。アラートのしきい値は「月次予算金額」に対する比率か、絶対値のいずれかで指定できます。アラートはメール送信のみになりますが、複数のメールアドレスを指定できます。
試しにこのように設定してみました。月次予算を50万円と設定し、その半分、50% 利用されたら、アラートメールを送信してもらうようにしています。
予算を作成しました。作成した直後は、「支出」などのデータが N/A
となっていますが、しばらくすると正しく情報を収集し、表示が正常に戻ります。
予算名のリンクを押下して、詳細を見てみます。追加でアラートルールを設定したい場合は、この画面の「予算アラート・ルールの作成」ボタンを押下します。
今度は、「予測支出」に基づくアラートルールを作成してみます。設定した「月次予算」の 75% を使いそうだと予測が出たら、アラートメールを送信してもらいます。
登録してみました。
実際にアラートメールを受信してみました。次のような感じでメールが届きます。
「このまま使用されると月末までに○○円の請求額に達しちゃいそうですよー」といったメールがちゃんと届きました。
OCI CLI でも予算の確認・設定ができる
ついでに、OCI CLI でも予算の確認や設定ができるので、確認してみます。
$ oci budgets budget list --compartment-id='ocid1.tenancy.【テナンシ OCID】' --all | jq '.'
{
"data": [
{
"actual-spend": 240386.12668824094,
"alert-rule-count": 2,
"amount": 500000,
"compartment-id": "ocid1.tenancy.【テナンシ OCID】",
"defined-tags": {},
"description": "月次予算の半分に到達したらアラート",
"display-name": "【名前】-test-1",
"forecasted-spend": 372598.49636677344,
"freeform-tags": {},
"id": "ocid1.budget.【予算 OCID】",
"lifecycle-state": "ACTIVE",
"reset-period": "MONTHLY",
"target-compartment-id": "ocid1.compartment.【ターゲットコンパートメント OCID】",
"target-type": "COMPARTMENT",
"targets": [
"ocid1.compartment.【ターゲットコンパートメント OCID】"
],
"time-created": "2020-01-16T05:07:33.337000+00:00",
"time-spend-computed": "2020-01-20T01:55:02.370000+00:00",
"time-updated": "2020-01-20T01:56:36.427000+00:00",
"version": 1
}
]
}
amount
が月次予算金額、 actual-spend
が実績支出、 forecasted-spend
が予測支出です。アラートルールに関係なく、定期的に Slack に情報を連携する場合などに利用できるかと思います。
ついでに、予算アラートの設定も確認できますが、こちらはあまり参照することもないかと…。
$ oci budgets alert-rule list --budget-id='ocid1.budget.【予算 OCID】' --all | jq '.'
{
"data": [
{
"budget-id": "ocid1.budget.【予算 OCID】",
"defined-tags": {},
"description": null,
"display-name": "alertrule20200116050733",
"freeform-tags": {},
"id": "ocid1.alertrule.【アラート OCID】",
"lifecycle-state": "ACTIVE",
"message": "今月の使用料金が月次予算の半分に到達しました。",
"recipients": "【メールアドレス】",
"threshold": 50,
"threshold-type": "PERCENTAGE",
"time-created": "2020-01-16T05:07:33.562000+00:00",
"time-updated": "2020-01-16T05:07:33.562000+00:00",
"type": "ACTUAL",
"version": 1
},
{
"budget-id": "ocid1.budget.【予算 OCID】",
"defined-tags": {},
"description": null,
"display-name": "alertrule20200116050906",
"freeform-tags": {},
"id": "ocid1.alertrule.【アラート OCID】",
"lifecycle-state": "ACTIVE",
"message": "今月の使用料が月次予算の 75% を超えそうです (予測)。",
"recipients": "【メールアドレス】",
"threshold": 75,
"threshold-type": "PERCENTAGE",
"time-created": "2020-01-16T05:09:06.361000+00:00",
"time-updated": "2020-01-16T05:09:06.361000+00:00",
"type": "FORECAST",
"version": 1
}
]
}
まとめ
AWS や GCP などにもある予算設定を、OCI でも同じように設定できました。月次使用料の予測アラートも設定できますので、プロジェクトに応じて柔軟に設定し活用していきましょう。