Google Cloud에서 Deployment Manager를 사용하여 SAP 배포 자동화

Google Cloud 리소스의 생성 및 관리를 자동화하는 서비스인 Cloud Deployment Manager를 사용하여 Google Cloud 인프라 배포를 자동화할 수 있습니다.

SAP HANA와 같은 일부 SAP 솔루션 및 지원 데이터베이스를 위해 Google Cloud는 SAP 지원 요구사항 및 권장사항을 충족하는 Google Cloud 인프라를 배포하기 위해 사용할 수 있는 미리 정의된 Cloud Deployment Manager 구성 템플릿을 제공합니다.

지원되는 SAP 솔루션

Google Cloud는 다음 SAP 솔루션을 위한 Cloud Deployment Manager 구성을 제공합니다.

  • SAP NetWeaver
  • SAP HANA
  • SAP ASE
  • SAP MaxDB
  • IBM Db2
    • Linux의 경우. 다음 위치에서 템플릿을 다운로드할 수 있습니다.
      https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2/template.yaml
      Linux용 Db2 템플릿을 사용하는 단계는 문서화되지 않지만 ASE 및 MaxDB Linux 템플릿의 단계와 매우 유사합니다.
    • Linux의 HA 클러스터에 있는 Linux의 경우
    • Windows의 경우 다음 위치에서 템플릿을 다운로드할 수 있습니다.
      https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_db2-win/template.yaml
      Windows용 Db2 템플릿을 사용하는 단계는 문서화되지 않지만 ASE 및 MaxDB Windows 템플릿의 단계와 매우 유사합니다.

템플릿 배포 항목

Google Cloud가 SAP 배포를 위해 제공하는 모든 Deployment Manager 템플릿은 다음 요소를 구성하거나 배포합니다.

  • 하나 이상의 Compute Engine 가상 머신(VM)
  • 사용자가 지정한 OS 이미지
  • 하나 이상의 영구 디스크
  • (선택사항) VM에서 사용하도록 지정하는 Identity and Access Management(IAM) 서비스 계정
  • SAP 배포에 필요한 Google Cloud API
  • (선택사항) 각 VM 인스턴스를 위한 네트워크 태그
  • (선택사항) 각 VM 인스턴스에 대한 공개 IP 주소
  • SAP용 Google Cloud 에이전트의 최신 버전

SAP HANA의 경우 Deployment Manager 템플릿이 다음 항목을 추가로 배포합니다.

  • /hana/shared/hanabackup에 대한 스토리지 볼륨
  • (선택사항) SAP HANA 시스템 자체
  • 호스트 자동 장애조치가 포함된 SAP HANA 수평 확장 시스템의 경우, 마스터 호스트, 최대 15개의 작업자 호스트, 최대 3개의 대기 호스트
  • SAP HANA 수직 확장 시스템의 경우 Linux 고가용성 클러스터

SAP NetWeaver의 경우 Deployment Manager 템플릿이 다음 항목을 추가로 배포합니다.

  • /sapmnt, /usr/sap, 스왑 볼륨을 위한 스토리지 볼륨

각 SAP 배포를 위한 Deployment Manager 파일

SAP용으로 미리 정의된 각 Deployment Manager 구성에는 다음 파일 집합이 포함됩니다.

  • YAML 구성 파일 template.yaml
  • Python 템플릿 파일 deployment-type.py(예: sap_hana.py, sap_hana_scaleout.py,, sap_nw.py)
  • Python 스키마 파일 deployment-type.py.schema(예: sap_hana.py.schema, sap_hana_scaleout.py.schema,, sap_nw.py.schema)
  • 하나 이상의 셸 스크립트 startup.sh 또는 startup.ps1

template.yaml 구성 파일에서 Google Cloud 리소스 속성을 지정합니다.

template.yaml 구성 파일 작성

SAP 배포용으로 제공되는 template.yaml 구성 파일은 Deployment Manager에서 정의된 표준을 따릅니다.

SAP용으로 제공되는 구성 파일에는 기본 리소스 정의와 덜 일반적으로 사용되는 고급 속성이 포함된 주석 섹션이 있습니다. 다음 예시는 SAP HANA용 template.yaml 파일에서 가져온 일부입니다.

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
    instanceName: [VM_NAME]
    instanceType: [MACHINE_TYPE]
    zone: [ZONE]
    subnetwork: [SUBNETWORK]
    linuxImage: family/[IMAGE_FAMILY]
    linuxImageProject: [IMAGE_PROJECT]
    sap_hana_deployment_bucket: [MEDIA_BUCKET]
    sap_hana_sid: [SID]
    sap_hana_instance_number: [INSTANCE_NUMBER]
    sap_hana_sidadm_password: [PASSWORD]
    sap_hana_system_password: [PASSWORD]
    sap_hana_scaleout_nodes: [NUMBER_OF_WORKER_NODES]
    #
    # --- Advanced Options ---
    # The following advanced options are not usually needed. To use an advanced option, remove
    # the comment indicator, #, before the parameter name and specify an appropriate value.
    #
    # networkTag: [TAG]
    #    Adds network tags to your instance. This is useful if you do routing or define
    #    firewall rules by tags. By default, no tags are added to your VM. Multiple tags
    #    can be assigned by separating them with commas
    #
     ...

고급 속성을 사용하려면 주석 문자인 #을 삭제하고 속성 값을 지정하세요.

구성 파일에 대한 자세한 내용은 Deployment Manager 기초를 참조하세요.

템플릿 버전 관리

YAML 구성 파일의 type 속성에 버전 타임스탬프를 지정하여 SAP 배포에서 사용할 Deployment Manager 템플릿의 버전을 제어할 수 있습니다.

기본적으로template.yaml 구성 파일을 다운로드할 때 type 속성은 latest를 버전으로 지정하므로 배포는 항상 사용 가능한 최신 버전의 Deployment Manager 템플릿을 사용합니다.

type 속성을 따르는 주석에는 template.yaml 파일을 다운로드할 때 사용 가능한 최신 버전의 타임스탬프를 포함하는 대체 type 속성 사양이 있습니다. 예를 들면 다음과 같습니다.

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
  #
  # By default, this configuration file uses the latest release of the deployment
  # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
  # of the scripts, comment out the type property above and uncomment the type property below.
  #
  # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  #
  properties:
  ...

모든 배포에서 동일한 템플릿 버전을 사용하려면 latest가 포함된 type 속성 사양을 타임스탬프가 포함된 type 속성 사양으로 바꿉니다. 예를 들면 다음과 같습니다.

resources:
- name: sap_hana
  type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/sap_hana.py
  properties:
  ...

타임스탬프가 지정되면 모든 배포는 지정된 타임스탬프에 해당하는 Deployment Manager 템플릿 버전을 사용합니다.

배포 페이지에서 배포 이름을 클릭하고 배포 속성 아래의 확장 구성 뷰를 클릭하여 Google Cloud Console에서 SAP 배포에 사용된 템플릿 버전 Deployment Manager를 확인할 수 있습니다. 다음 예시와 같이 버전의 타임스탬프가 metadata 섹션에서 startup-script 뒤에 나타납니다.

metadata:
  items:
  - key: startup-script
    value: curl -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates/sap_hana/startup.sh
      | bash -s https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/202103111102/dm-templates

하나의 구성 파일로 여러 리소스 배포

파일에 리소스 정의를 더 추가하여 단일 구성 파일로 여러 리소스를 배포할 수 있습니다.

SAP 배포의 경우 미리 정의된 리소스의 -name, type, properties: 섹션을 복사해서 아래에 붙여넣어 새 리소스 정의를 만듭니다.

각 리소스 정의에서 다음 항목에 대해 고유 값을 지정합니다.

  • 이름
  • instanceName

배포 실행

다음 명령어를 실행하여 배포를 시작합니다.

gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml

Google Cloud 리소스를 실제로 배포하기 전에 배포 결과를 미리보려면 명령어에 --preview 플래그를 추가합니다.

배포를 시작하면 Deployment Manager가 deployment-type.py.schema 파일에 포함된 정의를 기준으로 template.yaml 파일의 사양을 검사합니다. 검사가 성공하면 Deployment Manager가 template.yamldeployment-type.py 파일에 있는 리소스 정의를 사용하여 Google Cloud 리소스를 만듭니다.

Deployment Manager 처리가 완료되면 Cloud Shell에서 Deployment Manager가 만들어서 제어를 셸 스크립트로 전달하는 각 리소스에 대해 COMPLETED를 표시합니다.

셸 스크립트는 배포된 리소스를 추가로 구성하고 진행 상태를 Cloud Logging에 로깅합니다. 셸 스크립트의 처리가 완료될 때까지 SAP 배포가 완료되지 않습니다.

또한 Deployment Manager는 Google Cloud Console의 배포 페이지에 항목을 만듭니다. 여기에서 사용자는 자신의 배포에 대한 추가 세부정보를 찾을 수 있습니다.

템플릿 고급 맞춤설정

고급 사용자의 경우에는 YAML 구성 파일에서 VM 정의 또는 다른 사소한 변경사항을 추가하는 것 외에도, Google Cloud에서 제공되는 Deployment Manager 템플릿을 다른 방식으로 맞춤설정할 수 있습니다. 하지만 여기에는 그에 따른 위험이 존재합니다.

템플릿을 수정할 경우, 최신 상태 유지 및 Deployment Manager에서의 템플릿 처리 가능 여부를 포함하여 수정된 템플릿과 관련된 여러 항목들을 확인해야 합니다. 또한 템플릿 배포를 수정한 Google Cloud 인프라 및 SAP 시스템이 SAP 요구사항을 포함하여 SAP 및 Google Cloud 지원 요구사항을 충족하는지 확인해야 합니다.

또한 Deployment Manager 템플릿을 수정하면 Google Cloud의 해당 배포 지원이 어려워집니다. 클라우드 고객 관리의 SAP 전문가들은 수정되지 않은 템플릿 및 자신들이 배포하는 구성에 익숙하지만, 사용자의 고유 맞춤설정에 익숙하지 않습니다. 맞춤설정된 템플릿이 사용되는 배포 또는 구성에 대해 Google Cloud의 지원이 필요한 경우, 맞춤설정을 설명할 수 있도록 준비하고 지원 케이스가 해결될 때까지 더 긴 시간을 기다릴 수 있어야 합니다.

SAP용으로 Google Cloud에서 제공된 Deployment Manager 템플릿을 수정하려면 먼저 변경사항에 대한 조언을 제공하고, 변경사항이 시스템 성능에 미치는 영향을 평가하고, 이후 발생 가능한 문제들을 해결할 수 있도록 적합한 교육을 받은 기술팀이 있는지 확인하세요. 이러한 팀이 없으면 구현 파트너 또는 Google Cloud 전문 서비스의 전문가 도움을 받을 수 있습니다.

변경하려면 다음 항목에 대한 이해가 필요합니다.

  • SAP 문서에 정의된 SAP 지원 요구사항 및 SAP 제품에 적용되는 SAP Note
  • Deployment Manager와 배포, 구성, 템플릿 작업 방법. Deployment Manager 문서를 참조하세요.
  • 변경 유형에 따른 Python 또는 셸 스크립팅 언어

고급 맞춤설정 유형

고급 맞춤설정으로 간주되는 수정은 다음과 같습니다.

  • 배포 후 스크립트의 커스텀 처리 또는 작업. 배포에 고급 맞춤설정을 포함하기 위해 권장되는 방법입니다.
  • 지원되는 Red Hat Enterprise Linux for SAP 또는 SUSE Linux Enterprise Server for SAP 버전보다 오래된 운영체제 유형 사용
  • 템플릿의 일부로 제공된 백엔드 스크립트 수정:
    • 셸 스크립트(bash 또는 powershell)
    • Python 동적 구성 및 스키마 파일
  • 고가용성 배포:
    • Pacemaker 구성 설정의 맞춤설정. 특정 함수가 누락된 것으로 확인된 경우 문서 페이지에 대한 의견을 제공해주세요.
    • 대기 노드가 포함된 HANA 수평 확장 배포를 위한 기본 템플릿 변경사항.

변경 유형에 관계없이 변경사항의 결과로 발생하는 SAP 시스템이 SAP 제품 문서 및 해당 시스템에 적용 가능한 SAP Note에 정의된 지원 범위 내에 있는지 확인합니다.

맞춤설정 가능한 템플릿 파일

Google Cloud는 결과 SAP 시스템이 SAP 지원 요구사항을 충족하는 한, 사용자가 다른 Deployment Manager 파일도 수정할 수 있더라도 맞춤설정을 .yaml 구성 파일로 제한하도록 권장합니다.

수정할 파일은 수행하려는 변경 유형에 따라 달라집니다.

해당 환경에 적용되는 속성 값에 대한 검사 확인을 추가하려면 deployment-type.py.schema 파일에 속성 정의를 추가하면 됩니다.

deployment-type.py 파일에서 다음 항목을 변경할 수 있습니다.

  • IP 범위 또는 디스크 크기와 같이 구성 파일의 값에 대한 계산을 추가합니다. 특히 SAP HANA의 경우 디스크 크기를 변경하면 SAP 지원 요구사항을 충족하지 않는 구성이 발생할 수 있습니다.
  • VM 인스턴스 메타데이터를 추가합니다.
  • 디스크 이름을 조정합니다.

템플릿 파일 다운로드

파일을 다운로드하려면 다음 명령어를 사용하고 빨간색 기울임꼴 텍스트를 필요한 템플릿 값으로 바꾸면 됩니다.

wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/file-name.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/template-directory/template.yaml

예를 들어 SAP HANA 수평 확장 배포를 위한 템플릿 파일을 다운로드하려면 다음 명령어를 사용합니다.

wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
wget https://storage.cloud.google.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py.schema
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/startup.sh
wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml

수정된 템플릿 파일 사용

템플릿 파일 수정이 완료되었으면 이를 Cloud Storage 버킷 또는 웹 서버에 업로드하고 template.yaml 및 기타 파일에서 URL을 파일 위치로 업데이트합니다.

배포 후 스크립트

SAP NetWeaver 애플리케이션 설치 트리거, 에이전트 모니터링 등과 같이 배포 후 스크립트를 사용하여 추가 작업을 수행할 수 있습니다.

배포 후 스크립트는 SAP 지원 요구사항에 따라 Google Cloud 인프라가 구성된 다음에는 제어되기 때문에 배포 맞춤설정에 권장되는 방법입니다.

배포 후 스크립트의 상태 메시지를 표시하려면 메시지를 로그에 작성하도록 스크립트를 코딩해야 합니다. 자세한 내용은 Cloud Logging 문서를 참조하세요.

배포 후 스크립트 상태는 Deployment Manager가 Cloud Shell 또는 로컬 Google Cloud CLI 셸 세션에 작성하는 메시지에 포함되지 않습니다.

SAP용 Deployment Manager 템플릿 지원 받기

SAP용 Deployment Manager 템플릿 문제를 해결하는 데 도움이 필요하면 필요한 진단 정보를 수집하고 클라우드 고객 관리에 문의하세요. 필요한 진단 정보 목록은 SAP용 Deployment Manager 템플릿 진단 정보를 참조하세요.