SAP Business Technology Platform(SAP BTP)의 Google Cloud 서비스를 Cloud Foundry와 통합

다음 안내는 Google Cloud용 공개 서비스 브로커(Google Cloud 서비스 브로커)를 사용하여 SAP 비즈니스 기술 플랫폼(SAP BTP)의 Cloud Foundry 환경에 Google Cloud 서비스를 통합하는 방법을 보여줍니다.

Google Cloud 서비스 브로커는 SAP BTP의 Cloud Foundry 환경에서 실행되는 애플리케이션에 대해 Google Cloud 서비스 제공을 간소화합니다. Google Cloud 서비스 브로커는 Google Cloud 리소스를 만들고 해당 권한을 관리하여 SAP BTP 애플리케이션 환경에서 Google Cloud 서비스를 쉽게 사용할 수 있게 해줍니다.

다음 다이어그램은 몇 가지 예시 Google Cloud 서비스의 설정 단계를 대략적으로 보여줍니다.

SAP BTP의 Cloud Foundry에서 Google Cloud 서비스에 액세스

핵심 솔루션 구성요소

다음 구성요소는 Cloud Foundry용 SAP BTP에서 Google Cloud 서비스 브로커를 설정하는 데 필요합니다.

서비스 사용 사례
Google Cloud용 공개 서비스 브로커 SAP BTP Cloud Foundry 환경에 Google Cloud 서비스 통합
MySQL용 Cloud SQL 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 구성요소입니다.

해당 API를 통해 사용한 Google Cloud 서비스도 청구 가능합니다.

가격 계산기를 사용하여 예상 사용량을 토대로 예상 비용을 산출합니다.

기본 요건

SAP BTP에서 Cloud Foundry 환경을 설정하려면 먼저 로컬 개발 환경을 설정하고 Google Cloud에서 프로젝트를 만들어야 합니다.

개발 환경 설정

  1. SAP 포털 문서에 따라 개발 워크스테이션에 Cloud Foundry 명령줄 인터페이스(CLI)를 설치합니다.

Google Cloud 프로젝트 설정

결제가 사용 설정된 Google Cloud 프로젝트가 없다면 프로젝트를 만들어야 합니다.

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  5. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

Google Cloud 환경 설정

사용 설정된 특정 Google Cloud API, Google Cloud 서비스 계정, Google Cloud 서비스 브로커용 데이터베이스가 필요합니다.

필수 Google Cloud API 사용 설정

API 관리자 > 라이브러리에 다음 API를 사용 설정합니다.

  1. Cloud Resource Manager API를 사용 설정합니다.
  2. Identity and Access Management API를 사용 설정합니다.
  3. Cloud SQL Admin API를 사용 설정합니다.
  4. 다른 지원되는 Google Cloud 서비스에 대한 API를 필요에 따라 사용 설정합니다.

루트 서비스 계정 만들기

  1. Google Cloud Console에서 서비스 계정 페이지로 이동합니다.

    서비스 계정 페이지로 이동

  2. Google Cloud 프로젝트를 선택합니다.

  3. 서비스 계정 만들기를 클릭합니다.

  4. 서비스 계정 이름 필드에 이름을 입력합니다.

  5. 만들고 계속하기를 클릭합니다.

  6. 역할 선택 목록에서 프로젝트 > 소유자를 클릭합니다. 이것은 Google Cloud 서비스 브로커가 Google Cloud 서비스로 작업하는 데 필요한 권한을 제공합니다.

  7. 계속을 클릭합니다.

  8. 필요에 따라 다른 사용자에게 서비스 계정에 대한 액세스 권한을 부여합니다.

  9. 완료를 클릭합니다.

  10. Google Cloud console의 서비스 계정 페이지에서 방금 만든 서비스 계정의 이메일 주소를 클릭합니다.

  11. 서비스 계정 이름에서 탭을 클릭합니다.

  12. 키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 선택합니다.

  13. JSON 키 유형이 지정되었는지 확인합니다.

  14. 만들기를 클릭합니다. JSON 키 파일이 워크스테이션에 자동으로 다운로드됩니다.

  15. JSON 키 파일을 안전한 위치로 옮깁니다.

백업 데이터베이스 설정

Google Cloud 서비스 브로커는 프로비저닝된 리소스의 상태를 저장할 MySQL 데이터베이스가 필요합니다. 자동 백업, 고가용성, 자동 유지보수가 가능한 완전 관리형 MySQL Community Edition 데이터베이스를 제공하는 MySQL용 Cloud SQL의 2세대 인스턴스를 사용하는 것이 좋습니다. 그러나 MySQL 프로토콜과 호환되는 모든 데이터베이스를 사용할 수 있습니다.

다음 단계에서는 Google Cloud에서 2세대 Cloud SQL 인스턴스를 사용하여 데이터베이스를 만들지만 MySQL 프로토콜과 호환되는 모든 데이터베이스에 적용할 수 있습니다.

MySQL용 Cloud SQL 인스턴스 만들기

데이터베이스를 만들려면 먼저 Google Cloud에서 MySQL용 Cloud SQL 인스턴스를 만들어야 합니다.

  1. Google Cloud Console에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스 페이지 열기

  2. 인스턴스 만들기를 클릭합니다.

    1. MySQL을 선택하고 다음을 클릭합니다.
    2. 2세대 선택을 클릭합니다.
    3. 인스턴스 ID를 정의합니다.
    4. 루트 비밀번호를 정의합니다.
    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는 Google Cloud에서 만든 Cloud SQL 인스턴스의 이름입니다.

  3. servicebroker라는 데이터베이스를 만듭니다.

    CREATE DATABASE servicebroker;
    
  4. Google Cloud 서비스 브로커의 사용자 이름과 비밀번호를 지정합니다.

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

    각 항목의 의미는 다음과 같습니다.

    • SB_DB_UserName는 Google Cloud 서비스 브로커를 데이터베이스의 사용자로 나타내는 사용자 이름입니다.
    • SB_DB_Password는 데이터베이스에 대해 Google Cloud 서비스 브로커를 식별하는 비밀번호입니다.
  5. Google Cloud 서비스 브로커의 액세스 권한을 설정합니다.

    GRANT ALL PRIVILEGES ON servicebroker.* TO 'SB_DB_UserName'@'%' WITH GRANT OPTION;
    
  6. SSL을 설정하고 SSL 인증서를 가져옵니다.

    1. Google Cloud 콘솔에서 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. 저장을 클릭하여 승인 변경사항을 저장합니다.

Google Cloud 인프라에서 Cloud Foundry용 SAP BTP 무료 체험판 계정 받기

  1. SAP BTP 무료 체험판 계정에 등록합니다. SAP BTP 무료 체험판 계정을 가져오려면 활성 SAP 계정이 필요합니다.
  2. SAP BTP Cockpit에 로그인합니다.
  3. SAP BTP Cockpit에서 화면 상단의 Home(홈)을 선택합니다.
  4. 화면 왼쪽의 탐색창에서 Regions(리전)를 클릭합니다.
  5. Cloud Foundry Environment(Cloud Foundry 환경)에서 Google Cloud 인프라를 사용하는 리전(예: US-Central(IA))을 선택합니다. 이렇게 하면 SAP BTP Cloud Foundry 환경 내에 조직과 공간이 만들어집니다.

Cloud Foundry용 Google Cloud 서비스 브로커 설치 및 구성

Cloud Foundry용 Google Cloud 서비스 브로커 배포

개발 워크스테이션의 터미널에서 다음을 수행합니다.

  1. 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'
    
  2. Google Cloud 서비스 브로커 파일을 추출합니다.

    tar zxvf *.tar.gz
    
  3. 디렉터리를 전환합니다.

    cd gcp-service-broker*
    
  4. SAP BTP Cloud Foundry 환경에 로그인합니다.

    cf login
    
  5. API 엔드포인트를 입력합니다.

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

    여기서 techkey는 API 엔드포인트의 리전을 식별하는 SAP 정의 기술 키입니다. 예를 들어 Google Cloud 인프라가 포함된 미국 중부 리전의 기술 키는 cf.us30입니다. SAP BTP Cloud Foundry 환경의 전체 리전 목록은 SAP 도움말 포털을 참조하세요.

  6. SAP BTP 계정의 사용자 이름과 비밀번호를 입력합니다.

  7. 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 서비스 브로커 앱 구성

  1. SAP BTP Cockpit에 로그인합니다.
  2. SAP BTP Cockpit에서 Trial Home(무료 체험판 홈) > Regions(리전) > Your Google Cloud region > Your global account > Your subaccount > Spaces(공간) > Your space로 이동합니다.
  3. 이전 섹션에서 배포한 Google Cloud 서비스 브로커 앱의 이름을 클릭합니다.
  4. 왼쪽 메뉴에서 사용자 제공 변수를 클릭합니다.
  5. 변수 추가 버튼을 사용하여 다음 Google Cloud 서비스 브로커 변수를 키-값 쌍으로 정의합니다.

    
    CA_CERT
    백업 데이터베이스 설정에서 SSL을 설정할 때 다운로드한 서버 인증서 파일 server-ca.pem의 콘텐츠입니다.
    
    CLIENT_CERT
    백업 데이터베이스 설정에서 SSL을 설정할 때 다운로드한 클라이언트 인증서 파일 client-cert.pem의 콘텐츠입니다.
    
    CLIENT_KEY
    백업 데이터베이스 설정에서 SSL을 설정할 때 다운로드한 클라이언트 키 파일 client-key.pem의 콘텐츠입니다.
    
    DB_HOST
    Google Cloud 콘솔의 Cloud SQL 인스턴스에 대해 인스턴스 세부정보 페이지의 이 인스턴스에 연결 섹션에 표시되는 Cloud SQL 인스턴스의 공개 IP 주소입니다.
    
    DB_PASSWORD
    백업 데이터베이스 설정에서 구성한 데이터베이스에 액세스하기 위해 Google Cloud 서비스 브로커에 정의한 비밀번호입니다.
    
    DB_USERNAME
    데이터베이스를 만들 때 Google Cloud 서비스 브로커에 정의한 사용자 이름입니다. Cloud SQL 데이터베이스의 경우 Google Cloud Console에서 Cloud SQL 인스턴스에 대한 인스턴스 세부정보 페이지의 사용자 탭에 있는 MySQL 사용자 계정에서 사용자 이름을 볼 수 있습니다.
    
    ROOT_SERVICE_ACCOUNT_JSON
    루트 서비스 계정을 생성할 때 다운로드한 JSON 키 파일의 콘텐츠입니다.
    
    SECURITY_USER_NAME
    브로커 요청을 인증할 때 사용하기 위해 서비스 브로커에 정의한 사용자 이름입니다. 나중에 브로커 서비스를 만들 때 cf create-service-broker 명령어에서 이 사용자 이름과 동일한 사용자 이름을 지정합니다.
    
    SECURITY_USER_PASSWORD
    브로커 요청을 인증할 때 사용하기 위해 서비스 브로커에 정의한 비밀번호입니다. 나중에 브로커 서비스를 만들 때 cf create-service-broker 명령어에서 이 비밀번호와 동일한 비밀번호를 지정합니다.
    선택적 환경 변수 Google Cloud 서비스 브로커를 맞춤설정하는 데 사용할 수 있는 선택적 변수 목록은 설치 맞춤설정을 참조하세요.

Cloud Foundry용 Google Cloud 서비스 브로커 앱 시작

  1. 왼쪽 메뉴에서 Overview(개요)를 클릭합니다.
  2. 브로커 애플리케이션을 시작하려면 Start(시작)를 클릭합니다. 애플리케이션이 실행 중이면 다음 이미지와 같이 녹색 Started(시작됨)Running(실행 중) 표시기가 Overview(개요) 페이지에 나타납니다.

    Google Cloud 서비스 브로커가 시작되었음을 나타내는 녹색 Started(시작됨) 표시기

    Google Cloud 서비스 브로커가 실행 중임을 나타내는 녹색 RUNNING(실행 중) 표시기

  3. Google Cloud 서비스 브로커 앱이 시작되지 않거나 오류 또는 충돌이 표시되는 경우, 개발 워크스테이션에서 애플리케이션 로그를 확인하고 이에 따라 변수 또는 구성을 조정합니다.

    cf logs APP_NAME --recent
    

Cloud Foundry용 Google Cloud 서비스 브로커 등록

개발 워크스테이션에서 다음을 수행합니다.

  1. SAP BTP 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_NAMECloud Foundry용 Google Cloud 서비스 브로커 앱 구성에서 브로커 요청을 인증하기 위해 정의된 사용자 이름입니다.
    • SECURITY_USER_PASSWORDCloud Foundry용 Google Cloud 서비스 브로커 앱 구성에서 브로커 요청을 인증하기 위해 정의된 비밀번호입니다.
    • 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 BTP 서비스 마켓플레이스에서 현재 Google Cloud 서비스를 사용할 수 있는지 확인합니다.

    cf marketplace
    

    다음 예시는 가독성을 위해 페이지에 맞게 편집되었으며 마켓플레이스의 Google Cloud 서비스 목록에서 두 개의 서비스를 보여줍니다.

    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 서비스 목록은 Google Cloud용 Open 서비스 브로커를 참조하세요.

다음 단계

Google Cloud 서비스 인스턴스를 만들고 SAP BTP 애플리케이션에 바인딩하기

Google Cloud 서비스 생성 및 결합에 대한 자세한 내용은 다음을 참조하기