このブログは、2023 年 6 月 29 日に SAP ジャパン公式ブログに掲載されたものを SAP ジャパン公式ブログ閉鎖に伴い転載したものです。
このブログは、Tom Slee が執筆したブログ「SAP HANA Cloud goes “multi-environment”: Part 1- feature overview」(2022 年 9 月 21 日)、「SAP HANA Cloud goes “multi-environment”: Part 2- getting started」(2022 年 9 月 21 日)、「Consuming SAP HANA Cloud from the Kyma environment 」(2022 年 12 月 15 日) の抄訳です。
最新の情報は、SAP Community の最新ブログ 等を参照してください。
■ SAP HANA Cloud の「マルチ環境」のサポート パート1 – 機能概要
■ SAP HANA Cloud の「マルチ環境」のサポート パート2 – 使用開始方法
■ SAP HANA Cloud の Kyma 環境からの使用
このブログでは、Thomas Hammer による SAP HANA Cloud 2022 QRC3 の新機能に関するブログで紹介されている「マルチ環境」のサポートについて説明します。パート 1 では概要を、パート 2では、マルチ環境用 SAP HANA Cloud ツールを使用した使用開始方法について説明します。
2022 年 10 月の 2022 QRC3 リリースで、SAP HANA Cloud は「マルチ環境」対応になりました。ここでいう「マルチ環境」とは、 SAP BTP サブアカウントで利用できる Cloud Foundry またはKyma のランタイム環境のことを言います。このブログでは、これが何を意味し、ユーザーにとってどのようなメリットがあるのか説明します。
最初に、変更されないものについて説明します。
ほとんどの BTP ユーザーにとって、Cloud Foundry 固有のコンセプトがどこからで、SAP BTP コンセプトがどう引き継がれているのかはわからないと思いますが、SAP HANA Cloud のリリース以来、Cloud Foundry のコンセプトが、SAP HANA Cloud のエクスペリエンスの中心でした。データベースのプロビジョニング、管理、開発作業のための SAP HANA Cloud への全ての HTTP アクセスは、以下の図のように Cloud Foundry のユーザー認証と認証フレームワーク経由でした。
SAP HANA Cloud は独自のランドスケープ上で稼働しますが、SAP HANA Cloud へのアクセスのほとんどは Cloud Foundry 経由でした。
その結果、SAP HANA Cloud のデータベースインスタンスは、指定の Cloud Foundry の 「組織」とスペースに「所属」していました。そのため、単なるホスト名とポート番号である SQL エンドポイントではなく、開発、管理、またはツールの利用の目的でこれらにアクセスするには、作業する Cloud Foundry スペースの Space Developer のロール権限が必要でした。
それでは、何が変わったのでしょうか?裏ではいくつかの変更があります。
最も大きなメリットは、認証と権限まわりに関するもので、XXUAA BTP サブアカウントモデルの利用から得られるものです。
SAP Business Application Studio を使用して Calculation View(「ネイティブ HANA 開発」)または Cloud Foundry アプリケーションを開発されている場合、新しいモデルでも引き続き開発は可能ですが、SAP HANA Cloud インスタンスは、Cloud Foundry スペース「内に作成」されないため、1つ以上の Cloud Foundry スペースで利用するためには「インスタンスマッピング」の機能を使用する必要があります。この機能は、SAP HANA Cloud Central から利用可能です。インスタンスの横にある 3 つの点をクリックして、Manage Configuration を選択します。その後 Instance Mapping に移動すると、インスタンスを Cloud Foundry 組織とスペースにマップして HDI コンテナを作成することができます。
SAP HANA Cloud データベースインスタンスをCloud Foundry orgおよびスペースにマッピング
Kyma 内でアプリケーションを開発している場合には、同様のインスタンスマッピング機能が利用可能になるまで、もう少々お待ちください。近い将来 Kyma におけるインスタンスマッピング機能をリリースしたいと思っています。
パート 1 では、SAP HANA Cloud におけるマルチ環境のサポートとは何か(WHAT)について説明しました。次のパート 2 では、使用開始方法(HOW)について説明します。
パート1 では「SAP HANA Cloudにおける「マルチ環境」のサポートが何を意味するのか、そのメリットは何かについて説明しました。パート2では、実際の使用開始方法について説明します。ここでは、SAP BTPのグローバルアカウントおよびサブアカウントの管理者(プラットフォームユーザー)向けに、SAP HANA Cloudデータベース管理者と開発者が新しいマルチ環境対応のSAP HANA Cloud ツールで作業することを目的として説明します。
マルチ環境用ツールは、SAP HANA Cloud の新しい BTP サービスプランとして提供されています。そのため、アクセスするためにはいくつかのステップを踏む必要があります。特定のグローバルアカウントの特定のサブアカウントで新しいツールの使用を開始するには、以下のタスクを完了する必要があります。それぞれについては以下で詳しく説明します。対象のサブアカウントのグローバルアカウント管理者とサブアカウント管理者権限を取得している場合には、これらのタスクは 15 分程度で完了することができます。
ここでは、BTP Cockpit を使用して SAP HANA Cloud Tools へアクセスするステップについて説明しますが、このプロセスは、BTP Cockpit を使わず、btp コマンドラインインターフェースを使用して行うことも可能です。また、グラフィカルなツールを使わずに btp CLI を通して SAP HANA Cloud 管理機能へアクセスすることも可能です。
グローバルアカウントで SAP HANA Cloud Tools が利用できるようになったら、次のステップではこれをサブアカウントレベルで利用できるようにします。そのためには、サブアカウント管理者パーミッションを持つユーザーはまずサブアカウントのエンタイトルメントを設定し、サービスプランをサブスクライブする必要があります。
特定のサブアカウントに SAP HANA Cloud Tools のエンタイトルメントを追加するには次のステップを実行します。
このステップを完了させるには、新しいエンタイトルメントがピックアップされるよう SAP BTP(BTP Cockpit ウィンドウの上部左側)からログアウトし、再ログインする必要があります。
サブスクリプションはこれで完了です。最後のステップは、ユーザーにアクセス権限を付与することです。
このステップを行うにはサブアカウント管理者である必要があります。
SAP BTP アプリケーションとしてマルチ環境対応ツールにアクセスするための権限は、サブアカウントレベルで定義され、ユーザーに割り当てられているロールコレクションで制御されています。これは Cloud Foundry スペースの Space Developer ロールによって制御されている Cloud Foundryツールとは異なります。マルチ環境モデルのメリットの一つは、他の BTP サービスへのパーミッションや SAP HANA Cloud パーミッションを含むカスタムのロールコレクションを定義できることです。もう 1 つのメリットは、カスタム ID プロバイダーを使用して認証されたサブアカウントユーザーに、ロールコレクションを割り当てられることです。そのため、BTP を使用しており、BTP と他のコーポレート ID プロバイダーとの間に信頼を設定しているお客様は、自社のコーポレート ID プロバイダーのグループにユーザーを追加することで SAP HANA Cloud Tools へのアクセスを割り当てることができます。これらの詳細はここでは説明しませんが、デフォルトの BTP ID プロバイダーと事前にインストールされているロールコレクションを使用して説明します。
これで SAP HANA Cloud Tools の権限を取得できたため、SAP BTP Cockpit から SAP HANA Cloud Tools にアクセスできるようになりました。
これで、BTPのSAP HANA Cloud Tools にアクセスすることができます。
SAP HANA Cloud にデータを格納する SAP Business Technology Platform (BTP) アプリケーションは通常 SAP HANA データベースインスタンスにホストされる SAP HANA Cloud スキーマまたは HDI コンテナを使用して行います。多くの BTP 上のアプリケーションはこれまで Cloud Foundry ランタイム環境で開発、ディプロイされてきましたが、アプリケーションの開発やホスティングにおいて Kubernetes ベースの Kyma ランタイムが重要になってきました。
2022 年 10 月までは、SAP HANA Cloud へのアクセスは、Cloud Foundry に依存していましたが、マルチ環境用 HANA Cloud Tools のリリースによって Cloud Foundry には依存せず、SAP HANA Cloud Tools にアクセスして、(Cloud Foundry スペースではなく)サブアカウントレベルでデータベースインスタンスをプロビジョニングして管理することができるようになりました。あるいは、btp コマンドラインインターフェースを使用して、インスタンスを作成、開始、停止することもできます。しかしながら、この新しいマルチ環境へのアプローチでも、まだ HANA HDI オンテナまたは HANA スキーマを使用してデータを格納するアプリケーションの開発をKymaで行うことはできませんでした。
(免責事項:これはかなり専門的なブログで上の段落の意味を理解しているとしています。何も意味しない場合は関係ないブログである可能性があります。)
このトピックに関してビデオを好まれるようであれば、こちらの YouTube の SAP HANA Academy チャンネルの動画でも紹介しています。
2022 年 12 月のリリースにより、SAP HANA Cloud Tools で HANA HDI コンテナとスキーマで動作する Kyma アプリケーションを開発することができるようになりました。
プロセスの概要は以下のとおりです。
このブログでは、ステップ 2、3、4 について説明します。このプロセスはシンプルではありませんが、インスタンスのマッピングを行ってしまえば、SAP HANA Cloud データベースインスタンスを多くの HDI コンテナまたはスキーマから使用することができるようになります。
サブアカウントでは、SAP HANA Cloud サービスと SAP HANA Schemas & HDI Containers サービスの両方をサブスクライブする必要があります。
SAP HANA Cloud のマルチ環境用ツールである tools アプリケーションサービスを必ずサブスクライブしてください。
同様に、SAP HANA Schemas & HDI Containers サービスが Kyma 環境で使用できるか確認してください。ここでは、schema サービスプランのみ使用します。
マルチ環境用 HANA Cloud Tools を使用して SAP HANA Cloud インスタンスをサブアカウントにプロビジョニングしているとします。また、アクセス元の Kyma namespace も必要です。ここではnamespace は同じサブアカウントにありますが、必ずしもその必要はありません。下は tom-namespace という namespace が Kyma ダッシュボードにあることがわかります。
SAP HANA Cloud データベースインスタンスをマップするには、Kyma ランタイム環境の環境インスタンス ID を知る必要があります。Kyma ダッシュボードの Namespaces から kyma-system にアクセスすることで確認できます。
kyma-system のリンクをクリックし、Configuration から Config Maps にアクセスし、sap-btp-operator-config を検索します。
sap-btp-operator-config Config Map を開き、CLUSTER ID 識別子をクリップボードにコピーします。これを SAP HANA Cloud Central インスタンスマッピングダイアログに貼り付けます。
SAP HANA Cloud Central から、Kyma namespace へのインスタンスマッピングを設定できるようになりました。
SAP HANA Cloud Central より、3 つの点をクリックし、Manage Configuration を開きます。
右上にある Edit から、Instance Mapping、Add Mapping をクリックします。Kyma 環境のタイプを選択し、Cluster ID と namaespace を入力します。下の画面のようになります。インスタンスも Cloud Foundry スペースにマップされていることに注意してください。
これでインスタンスのマッピングのステップは終了です。このインスタンスはマップされた namespace のサービスのリストには表示されませんが、SAP HANA Schemas & HDI Containers サービスでの利用は可能です。インスタンスマッピングについては、SAP HANA Cloud のマニュアルのこちらに説明があります。
ここでは「インスタンスマッピング」という表現を使用しました。SAP BTP には「インスタンスの共有」という関連するコンセプトがありますが、SAP HANA Cloud には実装されていません。多くの開発者は、インスタンスの共有よりもアプリケーションからの HANA スキーマと HDI コンテナの作成とバインドを望んでいます。この目的は、インスタンスのマッピングを行うことでより適切に行うことができます。
残りのステップは、Kyma ダッシュボードから行います。HANA schema のサービスインスタンスを作成するには、namespace を開き(ここでは tom-namespace)、BTP Service Instances をクリックして Create Service Instance をクリックします。
ダイアログで、名前(ここでは tom-schema-instance)を入力し、Offering name に「hana」、 Plan name に「schema」を入れます。これらの名前は BTP Cockpit でも、Service Marketplace のSAP HANA Schemas & HDI Containers のタイルをクリックすることで表示されます。
Create をクリックして完了です。これで Schema サービスインスタンスを利用できるようになりました。
余談:使用可能なインスタンスは1つだけなため(この namespace にマップされた 1 つ)、どのスキーマをどの HANA インスタンスに作成するのか尋ねられませんでしたがが、1 つ以上のインスタンスをマップしている場合には、インスタンスを選択するよう求められます。Service instance name をクリックして service instance のプロパティをみると、Instance ID を確認することができます。これは、SAP HANA Cloud Central からマップした HANA データベースインスタンスのinstance ID と同じです。
最後のステップは Service Binding を作成し、Kyma アプリケーションがこのスキーマにバインドできるようにすることです。Kyma ダッシュボードでは、namespace を再度開き、Service Bindings から、Create Service Binding にアクセスします。
Service Instance Name のドロップダウンからの唯一のエントリーは先に作成した tom-schema-instance です。Service binding に対して名前(このブログではtom-schema-binding)をつけ、Create をクリックします。
Service binding は Kyma namespace の Kubernete に格納されています。Kyma ダッシュボードで、Service Binding リストから作成した binding をクリックすると、エンコードされたコンテンツを表示する新しいウィンドウが開きます。右上にある Decode をクリックすると、詳細が表示されます。Snippet は以下のとおりです。
これで、これの binding を使用して Kyma アプリケーションでデータを格納することができるようになりました。しかし、Kyma アプリケーションの開発はこのブログのスコープ外(であり私の専門外)です。Kyma 開発のジャーニーのステップの役にたてば幸いです。
(2023 年 1 月: この資料は、コマンドラインの手順も含め、マニュアルの SAP HANA データベースを別の環境コンテキストにマップするにも掲載されています)
オリジナルのブログはここまでです。