SAPのソリューション

デジタルトランスフォーメーション(DX)を推進などの経営課題の解決に向けて、ERPソリューション、クラウドアプリケーションや開発・運用基盤を組み合わせて、グローバルなエコシステムを構築のためのソリューションです。

お客様の課題

業種や規模によって企業の課題は経営課題、業務課題、システム課題など多様です。さらにそれぞれ課題は単一分野の課題だけではなく、相互に関連することで複雑になっています。

GSLが提供するサービス

様々な業種に関する技術・ノウハウに裏付けられたソリューション力をベースにした豊富なSAP S/4HANA導入テンプレートを用いて導入し、運用保守までワンストップサービス体制でサポートします。

お役立ち情報

NTTデータGSLは日本企業のDX推進やグローバルビジネス展開の支援を提供しています。
GSL Tech Blogでは、最新技術に関するノウハウやナレッジをまとめています。
GSLコラムでは、製品情報だけではなく、トレンドや基本的な用語の解説などをまとめています。
関連資料ダウンロードでは、お客様の課題やソリューションをまとめた資料を用意しています。
GSLニュースは、SAPソリューションをはじめ周辺系システムとの連携を通じたDX推進など、最新の情報をメールマガジンでお届けします。
GSL University Journalは、企業内大学である「GSL University」における各研究室の教授等によるインサイトや成果報告、社員からの寄稿をまとめております。
ぜひご覧いただき、お役立てください。

企業情報

日本企業のグローバル展開に伴うシステムのグローバル化需要の拡大に対応するために設立し、NTT DATAのSAPグローバル体制において、国内のグループ会社に分散していたSAPソリューション、業務ノウハウの一体化を図り、SAP事業の中核会社として、企業の戦略的な事業経営を目指します。

コマンドでSAP BTPを管理する
~SAP HANA Cloudインスタンス作成、使用料金確認~

2022年8月29日

本記事では、SAP社が提供するSAP Business Technology Platform(SAP BTP)を用いて、ツールやサービスを活用した作業効率の向上と作業品質確保を目指す事例をご紹介します。 ぜひご一読ください。

はじめに

SAP Business Technology Platform(以下 SAP BTP)で、サブアカウントの管理やサービスの管理操作をウェブブラウザーからSAP BTPコックピットにログインして操作します。

いわゆるGUI画面から行うことが多いと思いますが、今回はCLIでSAP BTPから使用料金の抽出方法をご紹介します。

今回使用するツールのご紹介

SAP BTP CLIとは

SAP BTP CLIは、SAP BTPのサブアカウントの作成や更新、権限の管理、およびサービスブローカとプラットフォームの操作などアカウント管理タスクにおいてSAP BTP コックピットを代替する方法です。

コマンドラインベースのツールのため、ターミナルによる操作やスクリプト化に向いています。

Cloud Foundry CLIとは

Cloud Foundry CLI(以下 CF CLI)はCloud Foundryのオフィシャルコマンドラインツールです。コマンドラインを使ってCloud Foundry環境のアプリ、サービスインスタンス、オーガニゼーション、スペース、ユーザ等を管理できます。

SAP BTP Usage Data Management Service REST APIとは

SAP Usage Data Management Service for SAP BTPはSAP BTPのアプリケーションやサービスのリソース消費状況、使用料金のレポーティングサービスです。月別の使用量、サブアカウントの日別使用量、サブアカウント月別の使用料金(CPEAライセンスのみ)が確認できます。

REST API(Feature Set Bのみ使用可能)も提供されているため、定期的に情報を収集するように自動化することも可能です。

手順方法について

1.準備作業

クライアント端末のOSに合わせて、SAP BTP CLIとCF CLIをダウンロードし、インストールします。ここではWindows版を使用していますが、インストール手順は割愛します。

2.CF CLIでSAP HANA Cloudインスタンスを作成する

SAP BTPトライアルアカウントを使用し、Cloud Foundry環境を準備して開始します。

ステップ1.Cloud Foundry環境にログインします

cf8 login –u <user名> -p <パスワード> -a <CF API Endpoint>

※本検証ではCF CLI v8を使用しておりcfコマンドはすべてcf8と表示しています。

GSL_Tech_Blog_11-1.png

ステップ2.SAP HANAインスタンスを作るためのサービスオファリングとプランがあるかをチェックします

cf8 m

トライアル環境では下記赤枠が該当します。

GSL_Tech_Blog_11-2.png

ステップ3.jsonファイルを書きます

メモリサイズ、ストレージ、ホワイトIPリスト、レプリカー等インスタンスをどう作成するかのパラメータをjsonファイルに指定します。cfコマンドを実行するとjsonファイルを読み取り、その通りにSAP HANA Cloudインスタンスを作成します。

本検証ではパスワード、メモリサイズ、ストレージサイズのみ指定します。

GSL_Tech_Blog_11-3.png

ステップ4.インスタンスを作成します

cf8 create-service <サービスオファリング名> <プラン名> <インスタンス名> -c <jsonファイル>

GSL_Tech_Blog_11-4.png

コマンド実行が成功したら「OK」が表示され、インスタンス作成まで数分かかります。

ステップ5.インスタンス作成状況をモニタリングします

cf8 services

GSL_Tech_Blog_11-5.png

SAP BTPコックピットからも確認します。

GSL_Tech_Blog_11-6.png

3.SAP BTP CLIでUsage Data Management Serviceのインスタンスを作成する

"2.CF CLIでSAP HANA Cloudインスタンスを作成する"で使ったトライアルアカウントを引き続き使用します。

ステップ1.SAP BTP環境にログインします

詳細説明は下記のブログに記載がありここでは割愛します。

GSL_Tech_Blog_11-7.png

btp --infoで確認します。

GSL_Tech_Blog_11-8.png

ステップ2.サブアカウント情報を確認します

サブアカウントIDは後続の手順で使うのでメモしておきます。

btp list accounts/subaccount

GSL_Tech_Blog_11-9.png

ステップ3.Usage Data Managementのインスタンスを作成します

btp create services/instance --subaccount <サブアカウントID> --service <ユーザが指定するサービス名> --offering-name <Usage Data Managementのサービスオファリング名> --plan-name < Usage Data Managementサービスのプラン名>

GSL_Tech_Blog_11-10.png

サービスオファリング名とプラン名の確認方法は下記です。

btp list services/offering --subaccount <サブアカウントID>

GSL_Tech_Blog_11-11.png

btp list services/plan --subaccount <サブアカウントID>

GSL_Tech_Blog_11-12.png

SAP BTPコックピットからも確認します。

GSL_Tech_Blog_11-13.png

4. SAP BTP Usage Data Management Service REST APIでSAP BTPコストをモニタリングする

ステップ1.サービスキーを作成します

GSL_Tech_Blog_11-14.png

GSL_Tech_Blog_11-15.png

作成したキーを確認します。

GSL_Tech_Blog_11-16.png

ステップ2.curlでインスタンスのアクセストークンをリクエストします

curl -L -X POST “/oauth/token” -H "Content-Type: application/x-www-form-urlencoded" -u "<clientid>:<clientsecret>" -d "grant_type=client_credentials"url、clientid、clientsecretはステップ1.で作ったサービスの中で確認できます。

access_tokenの部分にトークンが返してきます。これを使ってUsage Data Management REST APIにリクエストします。

GSL_Tech_Blog_11-17.png

ステップ3.SAP BTP環境の月額使用料金を確認します

curlコマンドで2022年8月分を確認する場合は下記のように指定します。

curl -X GET "<target_url>/reports/v1/monthlySubaccountsCost?fromDate=202208&toDate=202208" -H "accept: application/json" -H "authorization: Bearer <access_token>"

ただ、curlで確認した結果を少し工夫しないと見にくいです。ここではPythonのrequestsを使ってリクエストした結果を、データフレームに入れて見やすいよう整形しています。

GSL_Tech_Blog_11-18.png

REST APIなのでhttp経由でリクエスト結果を出力すると、様々な言語やツールで加工や自動化が可能です。

最後に

これらのツールやサービスを使えば、SAP BTPの開発・管理作業はSAP BTPコックピットでの能動的な目視ではなく、スクリプトにより自動化ができます。最初はリファレンスを確認しながら、トライアンドエラーすると思いますので少し時間がかかるかもしれませんが、作業効率の向上や作業品質の確保等につながります。

参考