BTPアーキテクチャ設計:ユースケースと意思決定パターン

- ランタイムの選択(Cloud Foundry vs Kyma vs ABAP環境)は、他プロジェクトの選択ではなく、チームの専門性、イベント駆動型の要件、コスト許容度によって決まります。
- 接続アーキテクチャは明確に分かれています。オンプレミスにはCloud Connector、ハイパースケーラーがホストするバックエンドにはSAP Private Link、インターネットAPIにはDestinationサービスを使用します。
- アカウント構造のパターンは予測可能です。最も一般的なエンタープライズのミスは、初期にセグメント化が不十分で、最初の本番インシデントで分離の欠如が明らかになった後、サブアカウントの整理にコストを支払うことです。
本記事の位置づけ
| ID | カテゴリ | コンポーネント | スコープ |
|---|---|---|---|
| BTP-F01 | 概要 | BTPアーキテクチャ設計 | 概要と主要な判断事項 |
| BTP-F02 | アカウント設計 (1) | サブアカウント設計 | パターンと原則 |
| BTP-F03 | アカウント設計 (2) | エンタイトルメントとクォータ管理 | パターンと原則 |
| BTP-F04 | 認可 (1) | ロールコレクション設計 | パターンと原則 |
| BTP-F05 | 認可 (2) | 命名規則 | パターンと原則 |
| BTP-F06 | 開発と移送 | CI/CDと移送管理 | パターンと原則 |
| BTP-F07 | ユースケース | BTPアーキテクチャ設計 | ユースケースと判断パターン(本記事) |
参考資料
| リソース | URL |
|---|---|
| SAP BTP 接続性 — SAP BTP 接続性とは | help.sap.com → |
| SAP BTP アカウントモデル | help.sap.com → |
| SAP アーキテクチャセンター — マルチテナント SaaS リファレンスアーキテクチャ | architecture.learning.sap.com → |
| SAP アーキテクチャセンター — SAP Private Link によるセキュアな接続性 | architecture.learning.sap.com → |
| SAP アーキテクチャセンター — SAP BTP による DevOps | architecture.learning.sap.com → |
1) アーキテクチャと運用ランドスケープ

BTPアーキテクチャを3つの明確なドメインに分類する意思決定。各ドメインは異なる問いに答え、異なる担当者によって運用されます( SAP BTPアカウントモデル)。
| ドメイン | 機能 | 主な利用者 | |
|---|---|---|---|
| ランタイム環境 | カスタムアプリケーションや拡張機能をホスト・実行する | アプリケーションアーキテクト / 開発者 | |
| 接続性 | BTPのワークロードとバックエンド(オンプレミス、ハイパースケーラー、インターネット)を橋渡しする | 統合アーキテクト / BASIS | |
| アカウント構造 | エンタイトルメント、分離、チーム間のコスト配分を整理する | プラットフォームチーム / CCoE |
これら3つのドメインはデプロイ時に相互作用しますが、それぞれ独立して設計されます。互いに代替となるものではありません。
2) S/4HANA への接続方法

以下の図は、サイドバイサイド拡張シナリオにおける、S/4HANAバックエンドに対するBTPの一般的な配置を示しています。
┌─────────────────────────────────────────────────────────────┐
│ SAP BTP Global Account │
│ │
│ ┌───────────────────┐ ┌───────────────────────────────┐ │
│ │ Dev Subaccount │ │ Prod Subaccount │ │
│ │ ┌─────────────┐ │ │ ┌─────────────────────────┐ │ │
│ │ │ CF Runtime │ │ │ │ CF Runtime / Kyma │ │ │
│ │ │ (CAP App) │ │ │ │ (CAP App, event-driven) │ │ │
│ │ └──────┬──────┘ │ │ └───────────┬─────────────┘ │ │
│ └─────────┼─────────┘ └──────────────┼────────────────┘ │
│ │ Destination service │ Destination svc │
│ │ (OnPremise) │ (OnPremise / │
│ │ │ Private Link) │
└────────────┼──────────────────────────────┼───────────────────┘
│ │
Cloud Connector Cloud Connector
(Dev tunnel) (Prod tunnel)
│ │
─────────────┼──────────────────────────────┼──── On-premises network
▼ ▼
S/4HANA Dev S/4HANA Prod
(ABAP system) (ABAP system)Cloud Connector は顧客のオンプレミスネットワークにインストールされ、BTP サブアカウントへのアウトバウンドトンネルを開始します。インバウンドのファイアウォールポートは不要です( SAP BTP Connectivity)。BTP 内のアプリケーションは、エンドポイント URL と認証情報のランタイム設定ストアとして機能する Destination サービスを介してバックエンド接続を消費します。
重要ポイント: 各BTPサブアカウントは、独自のCloud Connector論理ロケーションにマッピングされます。そのため、開発用と本番用のサブアカウントは分離しておく必要があります。単一のCloud Connectorトンネルをライフサイクルステージ間で安全に共有することはできません。
3) 成熟度マップ

この表を使用して、各機能領域が設計に着手する前にどの程度本番環境に対応しているかを評価してください。ランタイムコストの比較については、 SAP Architecture Center の総保有コストリファレンス を参照してください。
| 領域 | 成熟度 | 備考 | |
|---|---|---|---|
| Cloud Foundry ランタイム | ✅ | GA、最も広範なSAPサービスサポート、世界的に最も多くの本番環境での実績あり | |
| Kyma ランタイム | ⚠️ | GAだが、SAP管理サービスの利用可能数が少ない。チームにKubernetesスキルが必要 | |
| ABAP環境 | ✅ | S/4HANA Cloud拡張で安定。RAPモデルが必須のプログラミングモデル | |
| Cloud Connector + Destinationサービス | ✅ | 成熟しており、ドキュメントも充実。全ランタイムでサポート | |
| SAP Private Linkサービス | ⚠️ | AzureとAWSでGA。執筆時点ではGCPサポート未確認。ABAP環境では利用不可 | |
| SAP Integration Suite(イベントメッシュ / AEM) | ✅ | Event Mesh機能から開始。エンタープライズ規模ではAdvanced Event Meshに移行 | |
| マルチテナントSaaSアカウント構成 | 🔶 | 実現可能だが、プロバイダー/コンシューマーサブアカウント設計とHANA HDIコンテナ戦略に注意が必要 | |
| Infrastructure as Code(BTP向けTerraform) | ⚠️ | 利用可能で、ランドスケープ自動化に推奨。チームへの導入投資が必要 |
4) 要件チェックリスト
以下のチェックリストは、アーキテクチャパターンをプロジェクトにコミットする前に満たすべき最低要件をまとめたものです。ソリューション設計の承認前に、各項目を確認してください。BTPアカウント階層(グローバルアカウント → ディレクトリ → サブアカウント)は、このセクションのすべてのエントリの構造的基盤です( SAP BTPアカウントモデル)。
ランタイム環境の選択

| 要件 | 確認 |
|---|---|
| チームが各ランタイムに対する言語要件(Java、Node.js、Python、Go、ABAP)を評価している | ☐ |
| チーム内でKubernetesの専門知識が確認されている、またはその依存関係を避けるために意図的にCloud Foundryが選択されている | ☐ |
| 対象ランタイムのリージョン別利用可能性が確認されている(KymaはCloud Foundryよりも利用可能なリージョンが少ない) | ☐ |
| エンタープライズアカウントにコミットする前に、トライアルまたはサンドボックスでの検証が完了している | ☐ |
| 少なくとも2つのランタイム候補に対してBTPEAモデルを使用したコスト見積もりが作成されている | ☐ |
| アプリケーションが複数の独立した顧客にサービスを提供する場合、マルチテナントSaaSパターンがレビューされている | ☐ |
| ランタイムは混在可能(例:APIレイヤーにCloud Foundry、イベントハンドラにKyma)— その判断は文書化されている | ☐ |
接続アーキテクチャ

| 要件 | チェック |
|---|---|
| バックエンドシステムタイプの分類:オンプレミス / ハイパースケーラーホスト / インターネットSaaS | ☐ |
| 各オンプレミスバックエンド向けのCloud Connectorインストール環境の特定 | ☐ |
バックエンドごとの宛先プロキシタイプ定義:OnPremise または Internet | ☐ |
| データがインターネットを経由してはならないAzureまたはAWSホストのバックエンド向けにSAP Private Linkの評価 | ☐ |
| 宛先スコープの決定:サブアカウントレベル vs サービスインスタンスレベル(環境分離用) | ☐ |
| 開発/テスト/本番で同一の物理コネクタホストを使用する場合のCloud Connector向け複数サブアカウントマッピングの確認 | ☐ |
| オーケストレーション型マルチシステム統合シナリオ向けのSAP Integration Suite仲介レイヤーのスコープ設定 | ☐ |
アカウント構造設計
| 要件 | 確認 |
|---|---|
| グローバルアカウントのオーナーおよびエンタイトルメント割り当て権限者を特定 | ☐ |
| ディレクトリ階層の深さを決定(フラット / 部門別 / 地域別) | ☐ |
| Dev / Test / Prod サブアカウントの分離を確認 — アプリケーショングループごとにライフサイクルステージごとに1つのサブアカウント | ☐ |
| SAP Cloud Transport Management および SAP Cloud ALM 用の共有サービスサブアカウントを作成済みまたは計画済み | ☐ |
| サブアカウントまたはディレクトリレベルでコスト配分戦略を定義 | ☐ |
| サブアカウント作成前に、利用可能な BTP リージョンに対してデータレジデンシー要件を確認 | ☐ |
| サブアカウントをプロビジョニングする前に命名規則を合意し文書化 | ☐ |
| マルチテナント SaaS を構築する場合、プロバイダーとコンシューマーのサブアカウント構造をマッピング | ☐ |
イベント駆動型アーキテクチャ
| 要件 | 確認 |
|---|---|
| イベントボリュームの見積もり:低(スターター / Event Mesh) vs. 高(Advanced Event Mesh) | ☐ |
| SAPネイティブビジネスイベント(S/4HANA Cloud、SuccessFactors)向けにSAP Cloud Application Event Hubを評価済み | ☐ |
| イベントコンシューマランタイムを選択済み(Kyma推奨、Cloud FoundryはIntegration Suiteによる仲介で対応可能) | ☐ |
| イベントタイプごとにリトライおよびデッドレターキューの戦略を定義済み | ☐ |
| イベントスキーマガバナンスプロセスを特定済み(イベント定義の所有者、バージョン管理方法) | ☐ |
| 対象範囲内の各統合パターンについてISA-M統合スタイル分類を完了済み | ☐ |
5) 意思決定基準

Q1: 問題点や非効率性はどこにありますか?

BTPへの投資を引き起こす具体的なシナリオを特定します。一般的なトリガーとそのランタイムへの影響:
- S/4HANAのサイドバイサイド拡張(コアABAPでは実現できないUI、ワークフロー、レポート):チームのスキルと規模に応じてCloud FoundryまたはKymaを選択。
- クラウドネイティブなABAP開発、または既存のABAPロジックの移行:ABAP環境のみ。
- 大量のイベント駆動型統合(在庫同期、注文イベント、IoT):KymaとSAP Integration Suite Advanced Event Meshを組み合わせて使用。
- 複数の事業部門向けの社内SaaSプラットフォーム(プロダクトとして):Cloud FoundryまたはKyma上のマルチテナントSaaSパターン( SAP Architecture Center — マルチテナントSaaSリファレンスアーキテクチャ)。
もしその課題が具体的なボトルネックとして明確に表現できないのであれば、アーキテクチャの決定に進んではいけません。
Q2: データはどこに保存され、誰が所有するのか?

データの保存場所と所有権は、後から安価にリファクタリングできない方法で、接続アーキテクチャとアカウント構造を決定します。
- オンプレミスのSAPまたは非SAPシステム:Cloud Connectorが必要、宛先ProxyTypeは
OnPremise。 - AzureまたはAWSでホストされるバックエンド:インターネット経由を回避するため、SAP Private Linkサービスが推奨されるパスです( SAP Architecture Center — Secure Connectivity with SAP Private Link)。
- データ保存に関する規制が適用される場合:BTPサブアカウントは特定の準拠リージョンに作成する必要があります。ランタイムを決定する前に、そのリージョンでKymaが利用可能かどうかを確認してください。
- 複数の国または子会社がある場合:部門ベースのグループ化ではなく、リージョンごとのディレクトリアカウント構造を使用します。
Q3: スポンサーは誰で、予算モデルはどのようなものですか?
予算権限と商用モデルは、ランタイムコストの最適化とライセンステーブルの両方を推進します。
| シナリオ | 推奨方向性 |
|---|---|
| 単一チームによる部門プロジェクト、限られた予算 | Cloud Foundry;BTPEA消費モデル;Kubernetesスキルが社内にない限りKymaは使用しない |
| 複数チームによるエンタープライズCCoE主導プログラム | 部門別コスト配分が可能なディレクトリ構造;初日から共有サービスサブアカウントを設定 |
| BTP上で商用SaaS製品を構築するISV | マルチテナントSaaSアーキテクチャ;プロバイダ+コンシューマサブアカウント構造;HANA HDIコンテナスキーマ分離 |
| Kubernetesチームが確定しているプログラム | ランタイムコストが約25~30%高い場合でもKymaは正当化可能;サービスメッシュとイベント基盤により統合の複雑性を低減 |
| 明確なスポンサーや予算モデルが未確定 | 停止。Q1に戻る。 |
ライセンスに関する参考情報

| 機能 | 一般的な商用車両 | 備考 | |
|---|---|---|---|
| Cloud Foundry ランタイム | BTP エンタープライズアグリーメント(BTPEA) — メモリベース | GB時間単位で課金;小~中規模で最もコスト効率が良い | |
| Kyma ランタイム | BTPEA — ノードベースのクラスター | 固定クラスターコスト+ノードスケーリング;同等ワークロードでCFより約25~30%高い | |
| ABAP 環境 | BTPEA または CPEA — ABAP コンピュートユニット | S/4HANA Cloud またはスタンドアロンABAPサブスクリプションが必要 | |
| SAP Integration Suite | BTPEA — メッセージベースまたはAPI呼び出しベース | Event Meshは標準ティアに含まれる;Advanced Event Meshは別SKU | |
| HANA Cloud | BTPEA — キャパシティユニット | AI/ベクター機能によりストレージコストが大幅に増加;AIユースケースを考慮してサイジング | |
| SAP Private Link | BTPEA — 接続ベース | 接続ごとの課金;インターネットを回避する必要がある規制対象ワークロードにコスト効率が良い |
6) よくある障害

SAP Cloud Transport Managementは、関心の分離を維持するために、他の共有サービスとともに専用のサブアカウントで実行する必要があります。これは、以下のいくつかの障害の根底にある原則です( SAP Architecture Center — DevOps with SAP BTP)。
障害 1: すべてのライフサイクルステージに単一のサブアカウントを使用
Teamsは、オーバーヘッド削減のためにDev、Test、Prodで1つのサブアカウントを作成した後、Destination名がサブアカウントごとに一意でなければならないことや、Cloud Connectorトンネルが本番バックエンドを開発側のデプロイメントに公開してしまうことを発見します。この問題を解消するには、サービスインスタンスを再作成し、すべてのアプリケーションを再デプロイする必要があり、多くの場合、ライブプログラム中に行うことになります。
障害 2: Kubernetesの専門知識なしにKymaを選択
Kymaが選ばれる理由は、よりモダンに聞こえるから、または別のチームが使用していたからであり、プロジェクトチームがKubernetes CRDを操作、サービスメッシュを設定、またはHelmチャートを管理できることを確認していないためです。その結果、名目上は稼働しているものの、保守、監視、またはチューニングが行われていないランタイムが生まれ、セキュリティ態勢は悪化し、Cloud Foundryを上回るコストが発生する一方で、アーキテクチャ上の利点はまったく得られません。
障害 3: 単一サブアカウントにマッピングされた Cloud Connector
1 つの Cloud Connector インスタンスは、本番サブアカウントにのみマッピングされます。開発時にオンプレミスのバックエンドを呼び出す必要がある場合、チームは本番用コネクタを共有する(リスクが生じる)か、インターネット経由のプロキシを経由する(レイテンシとセキュリティ上の露出が生じる)かのいずれかになります。正しいパターンは、最初から各ライフサイクルステージのサブアカウントに個別にマッピングされた Cloud Connector を使用することです。
障害 4: ハイパースケーラーがホストするバックエンドに対して Private Link が評価されていない
SAP Private Link は、Azure または AWS でホストされるワークロードで利用可能ですが、チームが Cloud Connector に慣れているため、接続設計フェーズで評価されないことがよくあります。その結果、機密性の高いバックエンドデータ(例:Azure VM でホストされる S/4HANA)が不必要にパブリックインターネットを経由して転送され、本番稼働後のセキュリティレビューでコンプライアンス上のギャップとして表面化します。
障害 5: エンタープライズ規模のイベントボリューム向けに Event Mesh を選択
プロジェクトは、SAP Integration Suite内のEvent Mesh機能を選択し、最終的に異種ブローカー間で1日あたり数百万のイベントを処理するユースケースに対応します。Event Meshは、スターターおよび中程度のワークロードに適していますが、プロジェクト途中でのAdvanced Event Meshへの移行により、イベントスキーマガバナンスが中断され、すべてのコンシューマアプリケーションの再バインドが必要となり、計画外のライセンスコストが発生します。
障害 6: 共有サービスサブアカウントがない
SAP Cloud Transport Management、SAP Cloud ALM、および集中監視は、専用の共有サービスサブアカウントではなく、アプリケーションサブアカウントにデプロイされます。プロジェクトのエンタイトルメントが再編成されたり、アプリケーションサブアカウントが廃止されたりすると、トランスポート管理の設定が失われます。アプリケーションのライフサイクル変更に耐えられるよう、共有サービスは最初から分離しておく必要があります。
障害 7: Q1の課題が明確になる前にアーキテクチャが決定される
ソリューションが技術を中心に設計されています。「KymaとAdvanced Event Meshを使う」といった具合に、具体的なビジネスの課題が選択の原動力になっていません。6か月後、プロジェクトはビジネスがまだ実際には必要としていない統合パターンのためのインフラを構築しており、一方で真のボトルネック(S/4HANAにおける手動承認ワークフロー)は未解決のままです。アーキテクチャ上の決定は、名前の付いた非効率性に遡れるものでなければなりません。
FAQ
Q: 当社のS/4HANAはオンプレミスです。それでもBTP上のCloud Foundryを使用できますか?
はい。BTP上のCloud Foundryは、Cloud ConnectorおよびDestinationサービスを介してオンプレミスのバックエンドに接続します。Cloud Connectorはお客様のオンプレミスネットワークにインストールされ、BTPサブアカウントへのアウトバウンドトンネルを確立します。そのため、お客様側でインバウンドのファイアウォールルールは不要です(
SAP BTP Connectivity)。その後、BTPアプリケーションは、ProxyTypeをOnPremiseに設定したDestinationを使用して、オンプレミス接続を利用します。これは、S/4HANAオンプレミス拡張における最も一般的な接続パターンです。
Q: Kymaの高コストが価値を持つのはどのような場合ですか?
Kymaのコストは、同等のテナント数でCloud Foundryよりも約25~30%高くなります。その主なコスト差は、マネージドKubernetesクラスターに起因します。このプレミアムが正当化されるのは、以下の場合です。(a) チームがすでにKubernetesスキルを有しており、学習曲線によるコストが発生しない場合、(b) ワークロードがイベント駆動型かつサーバーレスであり、Kymaの組み込みイベント基盤とサービスメッシュによってカスタム統合作業が削減される場合、または(c) アプリケーションに高度なネットワークセキュリティ(サービスメッシュ、サービス間のmTLS)が必要であり、Cloud Foundryではネイティブに提供されない場合。
Q: プロジェクトのスケジュールにリスクがある場合、何をスコープから外すべきですか?
まず、イベント駆動型統合レイヤーのスコープを縮小します。短期的にはAdvanced Event Meshを直接RFCまたはAPI呼び出しに置き換え、段階的なアップグレードを計画します。次に、初期導入時にはよりシンプルなアカウント構造(少数のディレクトリ、少数のサブアカウント)に集約しますが、ターゲット構造を文書化し、最初のテナントオンボーディング前に実装できるようにします。Dev/Test/Prodのサブアカウント分離はスコープから外さないでください。これを削除し、後で復元する必要が生じた場合の再作業コストは、ほぼ常に節約される時間を上回ります。
Q: チームの入れ替わりがあってもアーキテクチャの決定を残すには、どのように文書化すべきでしょうか?
アーキテクチャ決定記録(ADR)はプロジェクトリポジトリに保存することを最低条件とします。各ADRには以下を記録する必要があります:決定内容、検討した代替案、根拠(Q1の課題に関連付けること)、および日付。BTP固有の決定については、以下を記載します:選択したランタイムとその理由、バックエンドシステムごとの接続パターン、アカウント構造図、および命名規則ドキュメントの参照先(BTP-F05を参照)。これらのドキュメントはコードと共にバージョン管理されるため、スライドデッキよりも有用です。
Q: 複数の事業部門向けに社内SaaS製品を構築しています。どのランタイムとデータ分離戦略を採用すべきですか?
標準的なパターンでは、プロバイダサブアカウント(アプリケーションをホスト)と、ビジネスユニットごとに1つのコンシューマサブアカウントを使用します( SAP Architecture Center — Multi-Tenant SaaS Reference Architecture)。ランタイムには、Cloud FoundryとKymaのどちらも使用可能であり、CAPフレームワークは両方をサポートしています。データ分離については、SAPはコストと分離のバランスとして、HANA HDIコンテナスキーマ分離(テナントごとに1つのHDIコンテナ)を推奨しています。カラム弁別子は、リスクが非常に低いデータにのみ有効です。テナントごとに専用データベースを使用すると、最大の分離が得られますが、HANA Cloudのコストが大幅に増加します。ABAP環境は、このモデルでのマルチテナントSaaSをサポートしていません。
Q: S/4HANA Cloud のビジネスイベント消費に適したイベントツールは何ですか?
SAP Cloud Application Event Hubは、S/4HANA Cloud、SuccessFactors、その他のSAPクラウドアプリケーションからネイティブビジネスイベントを消費するための適切な出発点です。サポート対象のSAPクラウドアプリケーションに直接接続し、カスタムイベントチャネルの設定を必要とせずに、BTP拡張アプリケーションにイベントを公開します。非SAPシステムにまたがる異種環境や高ボリュームのシナリオでは、SAP Integration Suite Advanced Event Meshがマルチブローカーの基盤と集中管理の可視性を提供します。
概要

実際のBTPアーキテクチャの決定は、ランタイムの選択、接続設計、アカウント構造の3つの領域に集約されます。これらの決定は複合的に影響し合います。誤ったランタイムの選択は単独で留まらず、利用可能な接続オプション、コストモデル、チームの運用負荷にまで影響を及ぼします。
この記事で紹介するパターンは、エンタープライズ規模で実際に機能するものを反映しています。ほとんどの拡張シナリオではCloud Foundry、チームがKubernetesに対応しておりイベント駆動型アーキテクチャが中心となる場合はKyma、ABAP Cloud開発が明確な目的である場合にのみABAP環境を使用します。接続性はバックエンドの物理的な場所に従います。オンプレミスの場合はCloud Connector、ハイパースケーラーでホストされている場合はPrivate Linkの評価( SAP Architecture Center — Secure Connectivity with SAP Private Link)、インターネットの場合はProxyType Internetを使用したDestinationサービスです。アカウント構造は、初日からライフサイクルステージを分離し、共有サービスをアプリケーションサブアカウントから分離する必要があります。
意思決定基準の質問(Q1~Q3)は、形式的なものではなく、ゲートとして扱ってください。Q1(具体的な課題の明確化)を省略したプロジェクトは、BTPアーキテクチャを過剰に設計し、ビジネス価値を十分に提供できないことが常です。