SAP Business Technology Platform (BTP) のインフラ概要

# はじめに

本記事は[SAP Business Technology Platformの基本的なことのまとめ](https://qiita.com/Yanagawa_Yoshihisa/items/bea677d3b851f6604d0d)の1項目の説明をなります。
全体を把握した方はまずはそちらをご確認下さい。

また、本記事は概要把握や個人とトライアル利用の参考として、まとめたものなので、プロジェクトでの利用の際は、SAP社への問合せの実施や正式情報である[Help Portal](https://help.sap.com/docs/)を活用して下さい。

# インフラ環境

ここでは、「[**SAP Discovery Center**](https://discovery-center.cloud.sap/)」に情報が記載され、BTPのユーザポータルのような存在である「BTP Cockpit」から操作できる範囲のサービスについて記述します。（「[SAP BTPのアプリケーション概要](https://qiita.com/Yanagawa_Yoshihisa/items/3fb629a483fb61014874)」に記載したように、BTPはたくさんのサービスで構成され、インフラの事情はそれぞれのサービスによってことなります。すべてのインフラの記述をすることは、難しいので、旧SCPの流れをくむこの範囲に限定して説明を記載しております。）

まず基本的なことですが、BTPで環境を作る際（専門的にはSubaccountを作成する際）はProvider（AWSやAzure等）を選ぶことになります。この際に、「SAPのサービスなのにAWS？？」と疑問に思う方が少なくありません。

BTPの環境作成は、SAP社が各種Provider（AWSやAzure等）と契約したインフラ環境の上に構築され、マネージードのサービスとしてユーザに対して提供されます。ゆえに、ユーザは「BTP Cockpit」から設定できる箇所のみしか自由に設定することができません。（良い言い方をすると、インフラレイヤーはSAP社が管理してくれている。悪い言い方をすると、ユーザ側はインフラ面に手出しができない。ということになります。このあたりは、BTPのみならず、各種のPaaSサービス、SaaSサービスも同じです。）

### Providerによる差はあるの？

ユーザが体感できる機能面の差として、利用できるサービスおよびその価格が異なります。（具体的なサービスと価格は「[**SAP Discovery Center**](https://discovery-center.cloud.sap/)」で知ることができます。）感覚的にはAWSが一番早くサービスがリリースされるような印象があります。また、一部のサービスは、そのProviderが提供されるものがBTP上でも提供されるため機能面としての差になります。（「[**PostgreSQLのDB**](https://discovery-center.cloud.sap/serviceCatalog/postgresql-hyperscaler-option?region=all)」を作りたい場合に、AWSを選んだ場合は「**Amazon RDS for PostgreSQL**」が提供されますし、Azureでは「**Azure Database for PostgreSQL**」が提供されます。）

### こんなことできますか？（よくある質問）

このトピックに関連して、下記のような質問をされることがよくあるのですが、2022年4月現在、対応ができません。

- 自社で保持する、ProviderのAccountに紐付けてBTPを構築することはできますか？
- プライベートなIaaS環境などにBTPをデプロイできますか？
- 専用線やVPNを引くことはできますか？（現状はできず、インターネット経由のアクセスとなります。）

※ 2022/05/02 11:00 更新
@tnmrknm さんに↓のコメントで補足頂いていますが、自社で保持するProviderのAccountとBTP間での、Private Linkのリリース想定があるようです。このあたりの[記事](https://blogs.sap.com/2021/06/28/sap-private-link-service-beta-is-available/)になると思います。Portalは[こちら](https://help.sap.com/docs/PRIVATE_LINK?locale=en-US)。

## 「Neo environment 」って何？

BTPの情報などを検索すると度々「**Neo**」なる単語に遭遇します。これは「**Neo environment （Neo環境）**」を意味するのですが、この環境について説明したいと思います。

冒頭にて、BTPは各Providerのインフラ上で稼働するという説明をさせて頂きましたが、当初はSAPのデータセンターで稼働しておりました。この環境の事を「**Neo environment**」と言います。この環境の登場後、時を経て、SAP社としてインフラの方針を変更し、各種Provider上のインフラでBTPを稼働させることとなりました。こちらの環境の事を、「**Multi-Cloud Foundation**」と呼びます。

「BTPCockpit」で、「Environment：Multi-Environment」となっているのは、「**Multi-Cloud Foundation**」を意味します。（Neoの場合はその旨がここに記載されております。）

![スクリーンショット 2022-04-29 11.44.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600679/2a6ca52a-668d-2cb4-b240-1b486a643f05.png)


「**Neo environment**」のサービス終了日は設定されていないものの、新規のサービスは「**Multi-Cloud Foundation**」のみで展開され、Trial環境でも、2022年4月現在は、「**Neo environment**」の構築はできなくなっています。（「**Neo environment**」の詳細は[こちら](https://help.sap.com/docs/BTP/ea72206b834e4ace9cd834feed6c0e09/34ac79024d41469a804ba9b9deeb5b1d.html?locale=en-US)）

古い記事などは「Neo environment」について書かれているものも多いので、情報を調べる際は、いつ書かれたものでどの環境についてのものなのかを確認することが重要となります。

# BTPの環境の考え方

こちらもここでは、「BTPCockpit」から操作できる範囲のサービスについて記述します。

BTPの環境を理解する上で大切な概念が「**Global Account**」と「**Subaccount**」になります。

「**Global Account**」は、契約毎に払い出される単位、一般的には会社単位などでの作成になります。（私の知ってる範囲では、法人で1つの場合や、法人でも事業所や部署単位に作成されている場合なども有りますので、詳しい話はSAP社にお問い合わせ下さい）

その下の一般的にはインスタンスに該当する概念が「**Subaccount**」になります。「**Subaccount**」の作成時に「Provider（AWS、Azure等）」や「Region（Frankfurt、Tokyo等）」を指定し、BTPの各種サービスはこの「**Subaccount**」の配下で動作することになります。一般的は「開発機」、「検証機」、「本番機」といった管理もこの「**Subaccount**」単位で実施することが多いです。

細かなアプリケーションの有効化などは「**Subaccount**」で実施するため、「**Global Account**」で設定することはあまりなく、「**Subaccount**」の作成と「Global Account」で管理されている各種サービスのチケットのような概念である「**Entity**」（Integration Suiteを1ライセンスなど）の「**Subaccount**」へのアサインが主な設定作業となります。

![スクリーンショット 2022-04-29 10.46.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/600679/ce3f1e05-f36e-aa49-5c12-38b7fc10b085.png)


## ユーザ管理、権限管理、ログインの方法

BTPのユーザは、 「**Global Account**」と「**Subaccount**」単位で個別にユーザの管理が必要になります。（トライアルでは自動で自身のユーザが作成されるため、あまり意識をする必要はないです。）

ユーザの権限は「Roles」というオブジェクトをユーザに付与することにより実現しますが、間にロールをまとめた単位である、「**Role Collection**」を仲介することで実現します。

IDはメールアドレスをキー情報として登録します。

ログインに際しては、S-IDおよびメールアドレスを利用し、SAP社のサービスである「**SAP ID Service**」を用いたSSOが実現されます。

これらに必要な設定は、デフォルト設定として定義されているため、あまり設定を意識せず利用が可能になります。（[詳細情報](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/cb1bc8f1bd5c482e891063960d7acd78.html?locale=en-US)）

## ネットワーク

BTPはインターネット上に存在するサービスなのでインターネット経由でアクセスをすることになります。

通常のクラウドサービスと同様に、各種の証明書を利用し、インターネット経由の通信のセキュリティを担保することとなります。

インターネット上に存在するために、インターネットに開放されていないオンプレ系のシステム（S/4HANA等）とやり取りをする際は、1から準備すると、いわゆる踏み台サーバの様なものの準備などが必要で、それなりの手間となります。それを解決するための技術が「**Cloud Connector**」となります。

オンプレ系側に「**Cloud Connector**」を導入し、BTP側にその情報を設定することで、オンプレ系のシステムとセキュアなやり取りをすることができます。

ネットワーク系の詳細は[こちら](https://help.sap.com/docs/CP_CONNECTIVITY/cca91383641e40ffbe03bdc78f00f681/e54cc8fbbb571014beb5caaf6aa31280.html?locale=en-US)をご確認下さい。

# まとめ

インフラ系の話は書き出すときりがないのですが、押さえて頂きたいポイントに絞って、記載しました。Trialで試して見るレベルの方は「AWSとかの上で、SAP社さんに管理してもらって、動いているのね」くらいに捉えて頂ければと思います。

最後のテーマは「[SAP BTPの情報の調べ方](https://qiita.com/Yanagawa_Yoshihisa/items/9940b1e0c525682944fb)」です。