SAP Cloud Platform の Cloud Foundry と GCP サービスの統合

この手順では、Open Service Broker for Google Cloud Platform(GCP Service Broker)を使用して、Google Cloud Platform(GCP)サービスを SAP Cloud Platform の Cloud Foundry 環境に統合する方法について説明します。

GCP Service Broker は、SAP Cloud Platform の Cloud Foundry 環境で実行されるアプリケーションへの GCP サービスの提供を簡素化します。GCP リソースを作成し、それに対応する権限を管理することによって、GCP Service Broker は、SAP Cloud Platform アプリケーション環境内から GCP サービスを簡単に利用できるようにします。

次の図は、サンプルの GCP サービスを使用した設定の概要です。

SAP Cloud Platform 上の Cloud Foundry から GCP サービスにアクセスする

コア ソリューション コンポーネント

SAP Cloud Platform で Cloud Foundry 向けに GCP Service Broker を設定するには、次のコンポーネントが必要です。

サービス 使用例
Open Service Broker for Google Cloud Platform GCP サービスを SAP Cloud Platform Cloud Foundry 環境に統合
Cloud SQL for MySQL GCP Service Broker のバックエンド ストレージ用データベース
SAP Cloud Platform アカウント 選択した GCP リージョンで SAP Cloud Platform Cloud Foundry 環境を提供
GCP プロジェクト GCP サービスを提供
Cloud Foundry CLI Cloud Foundry を構成するためのコマンドライン インターフェース

料金

GCP Service Broker と組み合わせて使用することが推奨されている Cloud SQL は、GCP の課金対象のコンポーネントです。

それぞれの API を通じて GCP サービスを使用することによっても、料金が発生する場合があります。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。

事前準備

SAP Cloud Platform 上で Cloud Foundry 環境を設定する前に、ローカル開発環境を設定し、GCP 上でプロジェクトを作成する必要があります。

開発環境の設定

  1. SAP Portal のドキュメントに従って、Cloud Foundry コマンドライン インターフェース(CLI)を開発用のワークステーションにインストールします。

GCP プロジェクトの設定

課金が有効になっている GCP プロジェクトがない場合は、これを作成する必要があります。

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

GCP 環境の設定

特定の GCP API を有効にする必要があります。また、GCP サービス アカウントと GCP Service Broker 用のデータベースを用意する必要があります。

必要な GCP API を有効にする

[API Manager] > [ライブラリ] で以下の API を有効にします。

  1. Resource Manager API を有効にします。
  2. Cloud Identity and Access Management API を有効にします。
  3. Cloud SQL Admin API を有効にします。
  4. 必要なその他のサポート対象の GCP サービスの API を有効にします。

root サービス アカウントを作成する

  1. GCP Console で [サービス アカウント] ページを開きます。

    [サービス アカウント] ページを開く

  2. GCP プロジェクトを選択します。

  3. [サービス アカウントを作成] をクリックします。

  4. [サービス アカウント名] 項目に名前を入力します。

  5. [作成] をクリックします。

  6. [役割を選択] リストで、[プロジェクト] > [オーナー] の順にクリックします。これにより、GCP Service Broker が GCP サービスと連携するために必要な権限が提供されます。

  7. [続行] をクリックします。

  8. [キーの作成(オプション)] セクションで [鍵を作成] をクリックします。キーのタイプとして [JSON] を指定します。

  9. [作成] をクリックします。JSON 鍵ファイルが自動的にワークステーションにダウンロードされます。

  10. [完了] をクリックします。

  11. JSON 鍵ファイルを安全な場所に移動します。

バッキング データベースの設定

GCP Service Broker には、プロビジョニングされたリソースの状態を保存するための MySQL データベースが必要です。Cloud SQL for MySQL の第 2 世代インスタンスをおすすめします。このインスタンスは、自動バックアップ、高可用性、自動メンテナンスの機能を備えており、フルマネージドの MySQL Community Edition データベースを提供します。他にも、MySQL プロトコルと互換性のある任意のデータベースを使用できます。

以降の手順では、GCP 上の第 2 世代 Cloud SQL インスタンスを使用してデータベースを作成しますが、MySQL プロトコルと互換性のあるすべてのデータベースにこの手順を適用できます。

Cloud SQL for MySQL インスタンスを作成する

データベースを作成する前に、GCP 上で Cloud SQL for MySQL インスタンスを作成する必要があります。

  1. GCP Console で [Cloud SQL インスタンス] ページに移動します。

    [Cloud SQL インスタンス] ページを開く

  2. [インスタンスを作成] をクリックします。

    1. [MySQL] を選択して [次へ] をクリックします。
    2. [第 2 世代を選択] をクリックします。
    3. [インスタンス ID] を定義します。
    4. [root パスワード] を定義します。
    5. [リージョン] フィールドで、Cloud Foundry 環境が配置されるリージョンを選択します。
    6. [作成] をクリックします。

データベースを作成する

  1. Cloud SQL インスタンスが起動したら、Cloud Shell を開きます。

    Cloud Shell を開く

  2. Cloud SQL インスタンスに接続します。

    gcloud sql connect your-cloud-sql-instance --user=root
    

    ここで、your-cloud-sql-instance は GCP 上で作成した Cloud SQL インスタンスの名前です。

  3. servicebroker という名前のデータベースを作成します。

    CREATE DATABASE servicebroker;
    
  4. GCP Service Broker のユーザー名とパスワードを定義します。

    CREATE USER 'SB_DB_UserName'@'%' IDENTIFIED BY 'SB_DB_Password';
    

    ここで

    • SB_DB_UserName は GCP Service Broker を表すユーザー名です。これがデータベースのユーザーになります。
    • SB_DB_Password はデータベースで GCP Service Broker を識別するためのパスワードです。
  5. GCP Service Broker のアクセス権限を設定します。

    GRANT ALL PRIVILEGES ON servicebroker.* TO 'SB_DB_UserName'@'%' WITH GRANT OPTION;
    
  6. SSL を設定し、SSL 証明書を取得します。

    1. GCP Console で [Cloud SQL インスタンス] ページを開きます。

      [Cloud SQL インスタンス] ページを開く

    2. Cloud SQL インスタンスの名前をクリックします。

    3. [インスタンスの詳細] ページで [接続] タブをクリックします。

    4. [SSL] セクションの [SSL 接続] で、[SSL 接続のみ許可] をクリックします。更新には数秒かかる場合があります。

    5. [SSL] セクションの [SSL クライアント証明書の構成] で、[クライアント証明書を作成] をクリックします。

    6. 名前を入力して [作成] をクリックします。

    7. 3 つの証明書ファイルをダウンロードし、安全な場所に保存します。

  7. [インスタンスの詳細] ページの [接続] タブの [接続] セクションで、次の操作を行います。

    1. [パブリック IP] ボックスがオンになっていることを確認します。
    2. [承認済みネットワーク] で [ネットワークを追加] をクリックします。
    3. [ネットワーク] フィールドに「0.0.0.0/0」と入力します。
    4. [完了] をクリックします。
  8. [保存] をクリックして承認の変更を保存します。

GCP インフラストラクチャで Cloud Foundry 用の SAP Cloud Platform 試用アカウントを入手する

  1. SAP Cloud Platform 試用アカウントに登録します。SAP Cloud Platform 試用アカウントを取得するには、アクティブな SAP アカウントが必要です。
  2. SAP Cloud Platform Cockpit にログインします。
  3. SAP Cloud Platform Cockpit で、画面上部の [Home] を選択します。
  4. 画面左側のナビゲーション パネルで [Regions] をクリックします。
  5. [Cloud Foundry Environment] で GCP インフラストラクチャを使用するリージョンを選択します([US-Central (IA)] など)。これで、SAP Cloud Platform Cloud Foundry 環境内に組織とスペースが作成されます。

GCP Service Broker for Cloud Foundry をインストールして構成する

GCP Service Broker for Cloud Foundry をデプロイする

開発用ワークステーションのターミナルで次の操作を行います。

  1. GitHub から最新バージョンの GCP Service Broker for Cloud Foundry をインストールします。

    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'
    
  2. GCP Service Broker のファイルを抽出します。

    tar zxvf *.tar.gz
    
  3. ディレクトリを切り替えます。

    cd gcp-service-broker*
    
  4. SAP Cloud Platform Cloud Foundry 環境にログインします。

    cf login
    
  5. API エンドポイントを入力します。

    https://api.techkey.hana.ondemand.com
    

    ここで、techkey は SAP が定義したテクニカルキーで、API エンドポイントのリージョンを識別します。たとえば、GCP インフラストラクチャを含む US Central リージョンのテクニカルキーは cf.us30 です。SAP Cloud Platform Cloud Foundry 環境のすべてのリージョンの一覧については、SAP Help Portal をご覧ください。

  6. SAP Cloud Platform アカウントのユーザー名とパスワードを入力します。

  7. GCP Service Broker アプリを Cloud Foundry 環境にデプロイします。

    cf push APP_NAME --no-start
    

    ここで、APP_NAME は GCP Service Broker アプリケーション用に選択する一意の名前です。たとえば、gcp-service-broker-001mycompany-gcp-svc-broker-app と指定します。

    Cloud Foundry で GCP Service Broker アプリをデプロイすると、次の例のような情報が表示されます。

    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 用の GCP Service Broker アプリを構成する

  1. SAP Cloud Platform Cockpit にログインします。
  2. SAP Cloud Platform Cockpit で、[Trial Home] > [Regions] > 使用する GCP リージョン > 使用するグローバル アカウント > 使用するサブアカウント > [Spaces] > 使用するスペースの順に移動します。
  3. 前のセクションでデプロイした GCP Service Broker アプリの名前をクリックします。
  4. 左側のメニューで、[User-provided variables] をクリックします。
  5. [Add variable] ボタンを使用して、次の GCP Service Broker 変数を 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 アドレス。GCP Console で、Cloud SQL インスタンスの [インスタンスの詳細] ページの [このインスタンスに接続] セクションに表示されます。
    
    DB_PASSWORD
    バッキング データベースの設定で構成したデータベースに GCP Service Broker がアクセスするために定義したパスワード。
    
    DB_USERNAME
    データベースの作成時に GCP Service Broker 用に定義したユーザー名。Cloud SQL データベースに関しては、GCP Console で、Cloud SQL インスタンスの [インスタンスの詳細] ページの [ユーザー] タブにある [MySQL ユーザー アカウント] でユーザー名を確認できます。
    
    ROOT_SERVICE_ACCOUNT_JSON
    root サービス アカウントを作成したときにダウンロードした JSON 鍵ファイルの内容。
    
    SECURITY_USER_NAME
    サービス ブローカー用に定義した、ブローカーのリクエストを承認するときに使用するユーザー名。後でブローカー サービスを作成するときに、cf create-service-broker コマンドでこのユーザー名を指定します。
    
    SECURITY_USER_PASSWORD
    サービス ブローカー用に定義した、ブローカーのリクエストを承認するときに使用するパスワード。後でブローカー サービスを作成するときに、cf create-service-broker コマンドでこのパスワードを指定します。
    オプションの環境変数 GCP Service Broker のカスタマイズに使用できるオプションの変数のリストについては、インストールのカスタマイズをご覧ください。

Cloud Foundry 用の GCP Service Broker アプリを起動する

  1. 左側のメニューで [Overview] をクリックします。
  2. ブローカー アプリケーションを起動するには、[Start] をクリックします。アプリケーションが稼働状態になったら、次の図に示すように、[Overview] ページに緑色の [Started] と [Running] のインジケータが表示されます。

    緑色の「Started」インジケータは、GCP Service Broker が起動されていることを示します

    緑色の「RUNNING」インジケータは、GCP Service Broker が実行中であることを示します

  3. GCP Service Broker アプリが起動しない、または [Error] や [Crashed] が表示される場合は、開発用ワークステーションからアプリケーション ログを確認し、それに応じて変数や構成を調整します。

    cf logs APP_NAME --recent
    

GCP Service Broker for Cloud Foundry を登録する

開発用ワークステーションで次の操作を行います。

  1. SAP Cloud Platform Cloud Foundry 環境に接続します。

    cf login
    
  2. デプロイしたアプリケーションの一覧を表示します。

    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
    
  3. ブローカー サービスを登録します。

    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 用の GCP Service Broker アプリを構成するで、ブローカーのリクエストを認証するために定義したユーザー名です。
    • SECURITY_USER_PASSWORD は、Cloud Foundry 用の GCP Service Broker アプリを構成するで、ブローカーのリクエストを認証するために定義したパスワードです。
    • BROKER_APPLICATION_ROUTE は、前の手順で示された、サービス ブローカー アプリケーションの URL です。次に例を示します。

      broker-test-app.cfapps.us30.hana.ondemand.com
      
  4. ブローカー サービスの登録を確認します。

    cf service-brokers
    

    出力は次の例のようになります。

    name                  url
    broker-service-name   https://broker-service-name.cfapps.us30.hana.ondemand.com
    
  5. SAP Cloud Platform Service Marketplace で GCP サービスが利用可能になったことを確認します。

    cf marketplace
    

    次の例では、マーケットプレイスでの GCP サービスのリストに 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.
    

    使用可能な GCP サービスのリストについては、Open Service Broker for Google Cloud Platform をご覧ください。

次のステップ

GCP サービス インスタンスを作成し、SAP Cloud Platform アプリケーションにバインドします。

GCP サービスの作成とバインドの詳細については、以下をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...