以下では、Open Service Broker for Google Cloud(Google Cloud サービス ブローカー)を使用して、Google Cloud サービスを SAP Business Technology Platform(SAP BTP)の Cloud Foundry 環境に統合する方法について説明します。
Google Cloud サービス ブローカーを使用すると、SAP BTP 上の Cloud Foundry 環境で実行されるアプリケーションへの Google Cloud サービスの配信を簡単に行うことができます。Google Cloud サービス ブローカーで Google Cloud リソースを作成し、それに対応する権限を管理することで、SAP BTP アプリケーション環境内から Google Cloud サービスを簡単に利用できるようになります。
次の図は、Google Cloud サービスの例を使用して、設定手順の概要を示しています。
コア ソリューション コンポーネント
SAP BTP で Cloud Foundry 向けに Google Cloud サービス ブローカーを設定するには、次のコンポーネントが必要です。
サービス | ユースケース |
---|---|
Open Service Broker for Google Cloud | SAP BTP Cloud Foundry 環境への Google Cloud サービスの統合 |
Cloud SQL for MySQL | Google Cloud サービス ブローカーのバックエンド ストレージ用のデータベース |
SAP BTP アカウント | 選択した Google Cloud リージョンで SAP BTP Cloud Foundry 環境を提供します |
Google Cloud プロジェクト | Google Cloud サービスの提供 |
Cloud Foundry CLI | Cloud Foundry を構成するためのコマンドライン インターフェース |
費用
Google Cloud サービス ブローカーとの併用が推奨されている Cloud SQL は、Google Cloud の課金対象のコンポーネントです。
Google Cloud サービスをそれぞれの API で使用する場合も、課金対象になります。
料金計算ツールを使用すると、予想使用量に基づいて費用の見積もりを作成できます。
前提条件
SAP BTP 上で Cloud Foundry 環境を設定する前に、ローカル開発環境を設定し、Google Cloud 上でプロジェクトを作成する必要があります。
開発環境を設定する
- SAP Portal のドキュメントに従って、Cloud Foundry コマンドライン インターフェース(CLI)を開発用のワークステーションにインストールします。
Google Cloud プロジェクトの設定
課金が有効になっている Google Cloud プロジェクトがない場合は、作成する必要があります。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Google Cloud 環境の設定
特定の Google Cloud APIs を有効にする必要があります。また、Google Cloud サービス アカウントと Google Cloud サービス ブローカー用のデータベースを用意する必要があります。
必要な Google Cloud APIs を有効にする
[API Manager] > [ライブラリ] で以下の API を有効にします。
- Cloud Resource Manager API を有効にします。
- Identity and Access Management API を有効にします。
- Cloud SQL Admin API を有効にします。
- 必要なその他のサポート対象の Google Cloud サービスの API を有効にします。
root サービス アカウントを作成する
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
Google Cloud プロジェクトを選択します。
[サービス アカウントを作成] をクリックします。
[サービス アカウント名] フィールドに名前を入力します。
[作成して続行] をクリックします。
[ロールを選択] リストで、[プロジェクト] > [オーナー] の順にクリックします。これにより、Google Cloud サービス ブローカーで Google Cloud サービスを使用するために必要な権限が付与されます。
[続行] をクリックします。
必要に応じて、他のユーザーにサービス アカウントへのアクセス権を付与します。
[完了] をクリックします。
Google Cloud コンソールの [サービス アカウント] ページで、作成したサービス アカウントのメールアドレスをクリックします。
サービス アカウント名で [キー] タブをクリックします。
[鍵を追加] プルダウン メニューをクリックして、[新しい鍵を作成] を選択します。
キーのタイプとして [JSON] を指定します。
[作成] をクリックします。JSON 鍵ファイルが自動的にワークステーションにダウンロードされます。
JSON 鍵ファイルを安全な場所に移動します。
バッキング データベースの設定
Google Cloud サービス ブローカーには、プロビジョニングされたリソースの状態を保存するための MySQL データベースが必要です。Cloud SQL for MySQL の第 2 世代インスタンスをおすすめします。このインスタンスは、自動バックアップ、高可用性、自動メンテナンスの機能を備えており、フルマネージドの MySQL Community Edition データベースを提供します。他にも、MySQL プロトコルと互換性のある任意のデータベースを使用できます。
以降の手順では、Google Cloud 上の第 2 世代 Cloud SQL インスタンスを使用してデータベースを作成しますが、MySQL プロトコルと互換性のあるすべてのデータベースにこの手順を適用します。
Cloud SQL for MySQL インスタンスを作成する
データベースを作成する前に、Google Cloud 上で Cloud SQL for MySQL インスタンスを作成する必要があります。
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
[インスタンスを作成] をクリックします。
- [MySQL] を選択して [次へ] をクリックします。
- [第 2 世代を選択] をクリックします。
- [インスタンス ID] を定義します。
- [root パスワード] を定義します。
- [リージョン] フィールドで、Cloud Foundry 環境が配置されるリージョンを選択します。
- [作成] をクリックします。
データベースを作成する
Cloud SQL インスタンスが起動したら、Cloud Shell を開きます。
Cloud SQL インスタンスに接続します。
gcloud sql connect your-cloud-sql-instance --user=root
ここで、
your-cloud-sql-instance
は、Google Cloud で作成した Cloud SQL インスタンスの名前です。servicebroker
という名前のデータベースを作成します。CREATE DATABASE servicebroker;
Google Cloud サービス ブローカーのユーザー名とパスワードを定義します。
CREATE USER 'SB_DB_UserName'@'%' IDENTIFIED BY 'SB_DB_Password';
ここで
SB_DB_UserName
は、データベースのユーザーとして Google Cloud サービス ブローカーを表すユーザー名です。SB_DB_Password
は、データベースで Google Cloud サービス ブローカーを識別するためのパスワードです。
Google Cloud サービス ブローカーのアクセス権限を設定します。
GRANT ALL PRIVILEGES ON servicebroker.* TO 'SB_DB_UserName'@'%' WITH GRANT OPTION;
SSL を設定し、SSL 証明書を取得します。
Google Cloud コンソールで Cloud SQL の [インスタンス] ページを開きます。
Cloud SQL インスタンスの名前をクリックします。
[インスタンスの詳細] ページで [接続] タブをクリックします。
[SSL] セクションの [SSL 接続] で、[SSL 接続のみ許可] をクリックします。更新には数秒かかる場合があります。
[SSL] セクションの [SSL クライアント証明書の構成] で、[クライアント証明書を作成] をクリックします。
名前を入力して [作成] をクリックします。
3 つの証明書ファイルをダウンロードし、安全な場所に保存します。
[インスタンスの詳細] ページの [接続] タブの [接続] セクションで、次の操作を行います。
- [パブリック IP] ボックスがオンになっていることを確認します。
- [承認済みネットワーク] で [ネットワークを追加] をクリックします。
- [ネットワーク] フィールドに
0.0.0.0/0
と入力します。 - [完了] をクリックします。
[保存] をクリックして承認の変更を保存します。
Google Cloud インフラストラクチャ上の Cloud Foundry 用に SAP BTP トライアル アカウントを取得する
- SAP BTP トライアル アカウントに登録します。SAP BTP トライアル アカウントを取得するには、有効な SAP アカウントが必要です。
- SAP BTP Cockpit にログインします。
- SAP BTP Cockpit で、画面上部の [Home] を選択します。
- 画面左側のナビゲーション パネルで [Regions] をクリックします。
- [Cloud Foundry Environment] で Google Cloud インフラストラクチャを使用するリージョンを選択します(US-Central(IA) など)。これにより、SAP BTP Cloud Foundry 環境内に組織とスペースが作成されます。
Cloud Foundry 用 Google Cloud サービス ブローカーをインストールして構成する
Cloud Foundry 用 Google Cloud サービス ブローカーをデプロイする
開発用ワークステーションのターミナルで次の操作を行います。
GitHub から Cloud Foundry 用 Google Cloud サービス ブローカーの最新バージョンをインストールします。
curl -s https://api.github.com/repos/GoogleCloudPlatform/gcp-service-broker/releases/latest \ |grep 'tag_name' \ |cut -d\" -f4 \ |xargs -I {} curl -sOL "https://github.com/GoogleCloudPlatform/gcp-service-broker/archive/"{}'.tar.gz'
Google Cloud サービス ブローカー ファイルを抽出します。
tar zxvf *.tar.gz
ディレクトリを切り替えます。
cd gcp-service-broker*
SAP BTP Cloud Foundry 環境にログインします。
cf login
API エンドポイントを入力します。
https://api.techkey.hana.ondemand.com
ここで、
techkey
は SAP が定義したテクニカルキーで、API エンドポイントのリージョンを識別します。たとえば、Google Cloud インフラストラクチャを含む米国中部リージョンのテクニカルキーはcf.us30
です。SAP BTP Cloud Foundry 環境のリージョンの一覧については、SAP Help Portal をご覧ください。SAP BTP アカウントのユーザー名とパスワードを入力します。
Google Cloud サービス ブローカー アプリを Cloud Foundry 環境にデプロイします。
cf push APP_NAME --no-start
ここで、
APP_NAME
は Google Cloud サービス ブローカー アプリケーション用に選択する一意の名前です。たとえば、gcp-service-broker-001
やmycompany-gcp-svc-broker-app
です。Cloud Foundry が Google Cloud サービス ブローカー アプリをデプロイすると、次のような情報が表示されます。
name: gcp-service-broker-example-app requested state: stopped routes: gcp-service-broker-example-app.cfapps.us30.hana.ondemand.com last uploaded: stack: buildpacks: type: web instances: 0/1 memory usage: 1024M state since cpu memory disk details #0 down 2018-12-19T23:49:13Z 0.0% 0 of 0 0 of 0
Cloud Foundry 用 Google Cloud サービス ブローカー アプリを構成する
- SAP BTP Cockpit にログインします。
- SAP BTP Cockpit で、[Trial Home] > [Regions] > [Your Google Cloud region] > [Your global account] > [Your subaccount] > [Spaces] > [Your space] に移動します。
- 前のセクションでデプロイした Google Cloud サービス ブローカー アプリの名前をクリックします。
- 左側のメニューで、[User-provided variables] をクリックします。
[Add variable] ボタンを使用して、次の Google Cloud サービス ブローカー変数を Key-Value ペアとして定義します。
キー 値 CA_CERT
バッキング データベースの設定で SSL を設定したときにダウンロードしたサーバー証明書ファイル server-ca.pem
の内容。CLIENT_CERT
バッキング データベースの設定で SSL を設定したときにダウンロードしたクライアント証明書ファイル client-cert.pem
の内容。CLIENT_KEY
バッキング データベースの設定で SSL を設定したときにダウンロードしたクライアント鍵ファイル client-key.pem
の内容。DB_HOST
Cloud SQL インスタンスのパブリック IP アドレス。Google Cloud コンソールで、Cloud SQL インスタンスの [インスタンスの詳細] ページの [このインスタンスに接続] セクションに表示されます。 DB_PASSWORD
バッキング データベースの設定で構成したデータベースに Google Cloud サービス ブローカーがアクセスするために定義したパスワード。 DB_USERNAME
データベースの作成時に Google Cloud サービス ブローカーに定義したユーザー名。Cloud SQL データベースの場合、ユーザー名を確認するには、Google Cloud コンソールで Cloud SQL インスタンスを表示し、インスタンスの詳細ページの [ユーザー] タブで [MySQL ユーザー アカウント] を確認します。 ROOT_SERVICE_ACCOUNT_JSON
root サービス アカウントを作成したときにダウンロードした JSON 鍵ファイルの内容。 SECURITY_USER_NAME
サービス ブローカー用に定義した、ブローカーのリクエストを承認するときに使用するユーザー名。後でブローカー サービスを作成するときに、 cf create-service-broker
コマンドでこれと同じユーザー名を指定します。SECURITY_USER_PASSWORD
サービス ブローカー用に定義した、ブローカーのリクエストを承認するときに使用するパスワード。後でブローカー サービスを作成するときに、 cf create-service-broker
コマンドでこれと同じパスワードを指定します。オプションの環境変数 Google Cloud サービス ブローカーのカスタマイズに使用できるオプションの変数については、インストールのカスタマイズをご覧ください。
Cloud Foundry 用 Google Cloud サービス ブローカー アプリを起動する
- 左側のメニューで [Overview] をクリックします。
ブローカー アプリケーションを起動するには、[Start] をクリックします。アプリケーションが稼働状態になると、次の図に示すように、[Overview] ページに緑色の [Started] と [Running] のインジケーターが表示されます。
Google Cloud サービス ブローカー アプリが起動しないか、「Error」や「Crashed」が表示される場合は、開発用ワークステーションからアプリケーション ログを確認し、変数または構成を調整します。
cf logs APP_NAME --recent
Cloud Foundry 用 Google Cloud サービス ブローカーを登録する
開発用ワークステーションで次の操作を行います。
SAP BTP Cloud Foundry 環境に接続します。
cf login
デプロイしたアプリケーションの一覧を表示します。
cf apps
次の例のような出力が表示されます。
name requested state instances memory disk urls broker-test-app started 1/1 1G 1G broker-test-app.cfapps.us30.hana.ondemand.com
ブローカー サービスを登録します。
cf create-service-broker BROKER_SERVICE_NAME SECURITY_USER_NAME SECURITY_USER_PASSWORD https://BROKER_APPLICATION_ROUTE --space-scoped
ここで
BROKER_SERVICE_NAME
はブローカー サービス用に選択する一意の名前です。SECURITY_USER_NAME
は、Cloud Foundry 用 Google Cloud サービス ブローカー アプリを構成するで、ブローカーのリクエストを認証するために定義したユーザー名です。SECURITY_USER_PASSWORD
は、Cloud Foundry 用 Google Cloud サービス ブローカー アプリを構成するで、ブローカーのリクエストを認証するために定義したパスワードです。BROKER_APPLICATION_ROUTE
は、前の手順で示された、サービス ブローカー アプリケーションの URL です。例:broker-test-app.cfapps.us30.hana.ondemand.com
ブローカー サービスの登録を確認します。
cf service-brokers
出力は次の例のようになります。
name url broker-service-name https://broker-service-name.cfapps.us30.hana.ondemand.com
Google Cloud サービスが SAP BTP Service Marketplace で使用可能になったことを確認します。
cf marketplace
次の例では、マーケット プレイスでの Google Cloud サービスのリストに 2 つのサービスが含まれている状況を示しています(読みやすくしページに合うように編集しています)。
service plans description ... google-bigquery default A fast, economical and fully managed data warehouse for large-scale data analytics. google-bigtable three-node-production-hdd A high performance NoSQL database service for large analytical and operational workloads.
使用可能な Google Cloud サービスのリストについては、Open Service Broker for Google Cloud をご覧ください。
次のステップ
Google Cloud サービス インスタンスを作成し、SAP BTP アプリケーションにバインドする。
Google Cloud サービスの作成とバインドの詳細を確認する。以下をご覧ください。
SAP Help Portal の Using Services in the Cloud Foundry Environment。
GitHub にある Google Cloud サービス ブローカー関連のドキュメント。