SAP Object Storeは、SAP BTP上のside-by-sideアプリケーション開発用に提供されるストレージサービスです。BTP Cockpit管理画面で数回クリックするだけで、サービスインスタンスを作成してアプリケーションにバインドできるので、非常に簡単で便利です。
まずは、SAP BTPについて簡単に解説します。
SAP Object Storeのプラットフォーム、SAP BTPの概要
BTP(Business Technology Platform)は、SCP(SAP Cloud Platform)の新しい名前です。下記の 4つのコアテクノロジーがあります。
- データベースとデータの管理:SAP HANA、SAP HANA Cloud
- 分析:SAP Analytics Cloud(SAC)、SAP Data Warehouse Cloud
- アプリケーションと開発:SAP Integration Suite、SAP Extension Suite
- インテリジェントテクノロジー:SAP Intelligent RPA, SAP Conversational AI
SAP BTPは、SCPの単なるリブランドではありません。 SAP社が実現したいのは
“SAPソフトウェアをサードパーティのツールと統合し、ツールからプロセスに焦点を移します。 「独自のプログラミング言語を持参してください」(ABAP、Java、Pythonなど)。 必要なインフラストラクチャ(OnPrem、Hyperscaler、Cloud Foundry)を使用する– SAP BTPは、言語に依存せず、ツールに依存せず、マルチクラウドベースのビジネスプロセスの共通ベースになります。最終的な目標は「データを 価値に変換すること」だ。” (Müller Jürgen 2021).”
参照元 : SAP Blog
BTPの魅力的な機能は3つあります。それは「統合」、「オープン性」、「ビジネス中心」であることです。
今回ご紹介する、Object Storeは、この4つのコアテクノロジーのうちの「データベースとデータの管理」領域に属します。
SAP Object Storeとはどんなサービス?
Object Storeは、CRUD操作(作成、読み取り/ダウンロード、更新、削除)を通じてオブジェクトを保存および管理できるSAP BTP上のストレージサービスです。 舞台裏では、他のクラウドプロバイダーを使用しているため、Azure Blob Storage、S3(Amazon Simple Storage Services)、またはGoogle CloudPlatformのいずれかを選択できます。
このサービスは、Cloud Foundry(CF)環境とKyma環境の両方から利用できます。
SAP Object Storeのメリットは?
1.利便性
ObjectStoreサービスは、標準のCloud Foundryサービスブローカーのライフサイクルオペレーションを提供します。
つまり、ObjectStoreは、ストレージリソースのプロビジョニング、アクセスクレデンシャルの取得、ストレージリソースのプロビジョニング解除、および構成の更新を処理します。
サービスインスタンスの作成/削除、アプリケーションへのバインド/バインド解除は、cf CLI(Cloud Foundry 用の CLI)またはSAP BTP Cockpitのいずれかを介して実行できます。
2.安全性
Object Storeは、テクニカルユーザーを作成し、それらのユーザーに制限された一連のアクセス許可を付与することで、バケット/コンテナーへのアクセスを制御します。 サービスインスタンスバインディングを介して行われたクレデンシャルの共有は、クレデンシャルを環境変数に埋め込むため、.envファイルを使用する必要がなくなります。 クレデンシャルが漏洩した場合に削除できるサービスキーインスタンスを作成することも良いでしょう。
** サービスブローカーの詳細:
実践例の紹介
このセクションでは、サービスインスタンスを作成し、CF環境でObject Store AWS S3にアップロードする方法について解説します。
前提条件:SAP BTPビジネスアカウント(TrialアカウントはObject Storeを使用できません)
まずは、S3サービスインスタンスを作成します
Object Storeをクリックし、必要な手順を実行してObject Storeサービスインスタンスを作成してください。
S3 Object Storeのクレデンシャルは下図のように作成されます。
なお、作業者はIAMユーザーという扱いになり、バケットの所有者ではないことに注意してください。
そのため、実行できる操作の数は制限されています。
サポートされている/サポートされていない操作については、SAPヘルプを参照してください。
インスタンスから -> [バインディングの作成]をクリックして、Object Storeをアプリケーションにバインドします。
バインド後、クレデンシャルの情報はアプリケーションの環境変数に保存されます。
AWS SDK またはSAP Open Connectorを使用してS3にアップロードする方法について解説します。
SAP Object Storeの実践例1: AWS SDKを使用してS3にアップロードする
AWS SDK( AWS SDK Guide )を使用することで、サーバーからアップロードできます。
その他、署名付きURL(Presigned URL)を使用してブラウザからアップロードする方法もあります(AWS Presigned URL Guide)が、ブラウザからアップロードするには、バケットのCORS ポリシーを設定する必要があります。
しかし、先述の通り、この作業者はIAMユーザーという扱いになるため、この操作を実行する権限が無いです。そのため、 REST APIを使用する場合は、次にご紹介するSAP OpenConnectorの使用をおすすめします。
SAP Object Storeの実践例2: SAP Open Connector を使用してS3にアップロードする
前提条件:アクティブ化されたIntegration Suite。
OpenConnectorはIntegrationSuiteの一部であるため、Object Storeと同様にSAP BTP CockpitのService Marketplaceからアクティブ化する必要があります。
Integration Suiteをセットアップした後、Integration Suite のホーム -> Extend Non-SAP Connectivityにアクセスします。
Connectorsから, Amazon S3を検索 -> Authenticate
S3コネクタインスタンスを作成します。このクレデンシャルはObject Storeサービスのキーのインスタンスを作成し、使用することも出来ます。
このOpen Connectorは、ファイルとフォルダの両方のCRUD操作を処理する豊富なRESTAPIを提供します。API Docsを使用すると、APIを試すこともできます(S3 Open Connectorインスタンス作成済みであることが前提です)。
AWS SDKを使用してS3認証を直接処理する代わりに、数回クリックするだけで済むため、Open Connectorを設定する方がおすすめです。
まとめ
本記事では、実践例を通してObject Storeの使用方法をご紹介させていただきました。
SAP BTP Cockpit、またはcf CLIを使用すると、S3 Object Storeインスタンスのセットアップが非常に簡単になります。
さらに、AWS SDKを使用してS3認証を直接処理する代わりに、数回クリックするだけでS3 APIを使用するようにできる、Open Connectorを設定するとさらに簡単にセットアップを行うことができます。SAPアドオン
パソナテックではSAP Fioriの概要、技術要素を解説している「SAP FioriとBTPが理解できる基本ガイドブック」をご用意しました。本資料は、SAP FioriとBTPを学びたい方に必見の資料です。ぜひダウンロードいただき、ご覧ください。