Linux 向け SAP MaxDB デプロイガイド

このデプロイガイドでは、Linux オペレーティング システムに SAP MaxDB をインストールする準備ができている Compute Engine 仮想マシン(VM)をデプロイして接続する方法について説明します。

このガイドの手順では、Cloud Deployment Manager を使用して、VM、Linux オペレーティングシステム、SAP MaxDB に必要なディスク ボリュームをデプロイおよび構成します。

デプロイの計画について詳しくは、SAP MaxDB 計画ガイドをご覧ください。

前提条件

データ所在地、アクセス制御、サポート担当者、規制要件に準拠しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。

課金が有効になっている Google Cloud プロジェクトがまだない場合は、SAP MaxDB インストール用に VM をデプロイする前に、プロジェクトを作成する必要があります。

プロジェクトを作成するには:

  1. 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.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

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

  4. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  5. Google Cloud プロジェクトで課金が有効になっていることを確認します

gcloud コマンド環境の構成

この手順では、Google Cloud リソースをデプロイまたは構成するための gcloud コマンドを、Cloud Shell を使用して入力します。Cloud Shell には、ブラウザの Google Cloud コンソールからアクセスします。

Cloud Shell は、Cloud Shell を起動するたびに Google Cloud がプロビジョニングする VM 上で動作します。初めて Cloud Shell を使用するときには、Google Cloud は永続的な $HOME ディレクトリも作成します。このディレクトリは、Cloud Shell を開くたびに復元されます。

プロビジョニングされた VM には、最新の Google Cloud CLI が含まれています。したがって、Cloud Shell で使用する gcloud コマンドは、gcloud CLI のローカルにインストールされたインスタンスで使用するコマンドと同じです。

gcloud CLI がインストールされている場合は、以下の手順の中で使用されている gcloud コマンドをローカルマシンから発行できます。ただし、ローカルにインストールされた gcloud CLI を使用する場合は、常に最新バージョンの gcloud CLI を使用していることを確認する必要があります。

Cloud Shell または gcloud CLI のいずれを使用する場合でも、gcloud コマンド環境のプロパティを設定または変更して、それらのプロパティを 1 つの構成として保存できます。構成は、gcloud コマンドの動作に影響を与える Key-Value ペアのコレクションです。

Cloud Shell の構成で実行できる基本的な操作は次のとおりです。

  • 構成を初期化する。

    gcloud init
  • 現在の gcloud 構成の設定を確認する。

    gcloud config list
  • 必要な Google Cloud プロジェクトに切り替える。PROJECT_ID は、実際の Google Cloud プロジェクト ID に置き換えます。

    gcloud config set project PROJECT_ID
  • デフォルト リージョンを設定する。REGION は、Google Cloud リージョンに置き換えます。

    gcloud config set compute/region REGION
  • デフォルト ゾーンを設定する。ZONE は、Google Cloud ゾーンに置き換えます。

    gcloud config set compute/zone ZONE
  • 新しい構成を作成する。NAME は、構成の名前に置き換えます。

    gcloud config configurations create NAME

構成に対する操作について詳しくは、gcloud CLI 構成の管理をご覧ください。

ネットワークの作成

セキュリティ上の理由から、新しいネットワークを作成します。アクセスできるユーザーを制御するには、ファイアウォール ルールを追加するか、別のアクセス制御方法を使用します。

プロジェクトにデフォルトの VPC ネットワークがある場合、デフォルトは使用せず、明示的に作成したファイアウォール ルールが唯一の有効なルールとなるように、独自の VPC ネットワークを作成してください。

デプロイ中、VM インスタンスは通常、Google Cloud の SAP 用エージェントをダウンロードするためにインターネットにアクセスする必要があります。Google Cloud から入手できる SAP 認定の Linux イメージのいずれかを使用している場合も、ライセンスを登録して OS ベンダーのリポジトリにアクセスするために、VM インスタンスからインターネットにアクセスする必要があります。このアクセスをサポートするために、NAT ゲートウェイを配置し、VM ネットワーク タグを使用して構成します。ターゲット VM に外部 IP がない場合でもこの構成が可能です。

ネットワークを設定するには:

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。
  3. ネットワークの名前を入力します。

    命名規則に従って名前を付けてください。VPC ネットワークは、Compute Engine の命名規則を使用します。

  4. [サブネット作成モード] で [カスタム] をクリックします。
  5. [新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。
    1. サブネットの名前を入力します。
    2. [リージョン] で、サブネットを作成する Compute Engine のリージョンを選択します。
    3. [IP スタックタイプ] で [IPv4(シングルスタック)] を選択し、CIDR 形式で IP アドレス範囲を入力します。(10.1.0.0/24 など)

      これはサブネットのプライマリ IPv4 範囲です。複数のサブネットワークを追加する場合は、ネットワーク内の各サブネットワークに重複しない CIDR IP 範囲を割り当ててください。各サブネットワークとその内部 IP 範囲は、単一のリージョンにマッピングされることに注意してください。

    4. [完了] をクリックします。
  6. さらにサブネットを追加するには、[サブネットを追加] をクリックして前の手順を繰り返します。ネットワークを作成した後で、ネットワークにさらにサブネットを追加できます。
  7. [作成] をクリックします。

gcloud

  1. Cloud Shell に移動します。

    Cloud Shell に移動

  2. カスタム サブネットワーク モードで新しいネットワークを作成するには、次のコマンドを実行します。
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    NETWORK_NAME は、新しいネットワークの名前に置き換えます。命名規則に従って名前を付けてください。VPC ネットワークは、Compute Engine の命名規則を使用します。

    デフォルトの自動モードでは、各 Compute Engine リージョンにサブネットが自動的に作成されます。この自動モードを使用しないようにするには、--subnet-mode custom を指定します。詳しくは、サブネット作成モードをご覧ください。

  3. サブネットワークを作成し、リージョンと IP 範囲を指定します。
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

    次のように置き換えます。

    • SUBNETWORK_NAME: 新しいサブネットワークの名前
    • NETWORK_NAME: 前の手順で作成したサービスの名前
    • REGION: サブネットワークを配置するリージョン
    • RANGE: CIDR 形式で指定された IP アドレス範囲(例: 10.1.0.0/24)。

      複数のサブネットワークを追加する場合は、ネットワーク内の各サブネットワークに重複しない CIDR IP 範囲を割り当ててください。各サブネットワークとその内部 IP 範囲は、単一のリージョンにマッピングされることに注意してください。

  4. 必要に応じて前の手順を繰り返し、サブネットワークを追加します。

NAT ゲートウェイの設定

パブリック IP アドレスなしで 1 台以上の VM を作成する必要がある場合は、ネットワーク アドレス変換(NAT)を使用して、VM がインターネットにアクセスできるようにする必要があります。Cloud NAT は Google Cloud の分散ソフトウェア定義マネージド サービスであり、VM からインターネットへのパケットの送信と、それに対応するパケットの受信を可能にします。また、別個の VM を NAT ゲートウェイとして設定することもできます。

プロジェクトに Cloud NAT インスタンスを作成する方法については、Cloud NAT の使用をご覧ください。

プロジェクトに Cloud NAT を構成すると、VM インスタンスはパブリック IP アドレスなしでインターネットに安全にアクセスできるようになります。

Deployment Manager を使用した SAP MaxDB 用 Linux VM のデプロイ

以下の手順では、Deployment Manager を使用して、Linux および、SAP MaxDB に必要なすべての永続ディスクを含む VM インスタンスをデプロイします。

Deployment Manager について

この手順では、Deployment Manager 構成ファイル テンプレートでインストール環境のリソース オプションを定義します。

Deployment Manager では、SAP システム用に作成されたすべてのリソースを「デプロイメント」という単一のエンティティとして扱います。Google Cloud コンソールの [デプロイ] ページで、プロジェクトのすべてのデプロイメントを表示して作業できます。

Deployment Manager を使用するときは、以下の動作に注意してください。

  • デプロイメントを削除すると、そのデプロイメントに関連付けられているすべてのリソース(VM、永続ディスク、VM にインストールされている SAP システムなど)が削除されます。
  • デフォルトでは、Deployment Manager は ACQUIRE リソース作成ポリシーを使用します。プロジェクト内の別の VM ですでに使用されている VM 名を指定した場合、新しい VM は作成されず、既存の VM が新しいデプロイメントに追加されます。元の VM が前回の Deployment Manager の実行で作成されたものである場合、VM は 2 つのデプロイメントに関連付けられます。

    その後、新しいデプロイメントを削除すると、取得した VM は最初に作成したデプロイメントから削除されます。このような事態を避けるには、Deployment Manager リソース ポリシーを CREATE に設定するか、新しいデプロイメントで一意のリソース名を使用してください。

    Deployment Manager でリソースを作成する際に使用できるポリシーとその指定方法については、Deployment Manager のドキュメントをご覧ください。

デプロイの手順

  1. Cloud Shell を開きます。

    Cloud Shell に移動

  2. Cloud Shell で次のコマンドを入力して、template.yaml 構成ファイルのテンプレートを作業ディレクトリにダウンロードします。

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_maxdb/template.yaml
  3. 必要に応じて template.yaml のファイル名を変更し、このファイルで定義する構成がわかるようにします。

  4. Cloud Shell コードエディタで template.yaml ファイルを開きます。

    Cloud Shell コードエディタを開くには、Cloud Shell ターミナル ウィンドウの右上にある鉛筆アイコンをクリックします。

  5. template.yaml ファイルで、以下のプロパティ値の括弧とその内容をご使用のインストール環境の値に置き換えて更新します。

    プロパティ データ型 説明
    type 文字列

    デプロイ中に使用する Deployment Manager テンプレートの場所、タイプ、バージョンを指定します。

    YAML ファイルには 2 つの type 仕様が含まれており、そのうちの 1 つがコメントアウトされています。デフォルトで有効な type 仕様では、テンプレート バージョンを latest として指定します。コメントアウトされている type 仕様では、タイムスタンプを使用して特定のテンプレート バージョンを指定します。

    すべてのデプロイで同じテンプレート バージョンを使用する必要がある場合は、タイムスタンプを含む type 仕様を使用します。

    instanceName 文字列 SAP MaxDB がインストールされる VM インスタンスの名前。名前は 13 文字以下で、小文字、数字、またはハイフンで指定する必要があります。
    instanceType 文字列 SAP MaxDB がインストールされる Compute Engine 仮想マシンのタイプ。複数の vCPU を持つマシンタイプを指定します。たとえば、「n1-standard-4」です。同じ VM で SAP MaxDB を SAP NetWeaver とともに実行する場合は、両方のシステムをサポートするのに十分な CPU とメモリが割り当てられたマシンタイプを選択します。SAP NetWeaver プランニング ガイドをご覧ください。
    zone 文字列 SAP MaxDB をデプロイしているゾーン。サブネットワーク用に選択したのと同じリージョンにある必要があります。
    subnetwork 文字列 前のステップで作成したサブネットワークの名前。共有 VPC にデプロイする場合は、この値を [SHAREDVPC_PROJECT]/[SUBNETWORK] の形式で指定します。例: myproject/network1
    linuxImage 文字列 SAP MaxDB で使用している Linux オペレーティング システム イメージまたはイメージ ファミリーの名前。イメージ ファミリーを指定するには、ファミリー名に接頭辞 family/ を追加しますたとえば、family/rhel-7family/sles-12-sp3-sap です。特定のイメージを指定するには、イメージ名のみを指定します。利用可能なイメージ ファミリーの一覧については、Cloud コンソールの [イメージ] ページをご覧ください。
    linuxImageProject 文字列 使用するイメージを含む Google Cloud プロジェクト。このプロジェクトは独自のプロジェクトか、rhel-sap-cloudsuse-sap-cloud のような Google Cloud イメージ プロジェクトです。Google Cloud イメージ プロジェクトの一覧については、Compute Engine ドキュメントのイメージのページをご覧ください。
    maxdbSID 文字列 データベースのインスタンス ID。
    maxdbRootSize 整数 データベース インスタンスのルート ディレクトリである /sapdb のサイズ(GB 単位)。maxdbRootSize の最小値とデフォルト値はどちらも 8 GB です。
    maxdbDataSize 整数 データベースのデータファイルを格納する /sapdb/[DBSID]/sapdata のサイズ。maxdbDataSize の最小値とデフォルト値はどちらも 30 GB です。
    maxdbLogSize 整数 データベース トランザクション ログが格納される /sapdb/[DBSID]saplog のサイズ。maxdbLogSize の最小値とデフォルト値はどちらも 8 GB です。
    maxdbBackupSize 整数 /maxdbbackup ボリュームのサイズ。このプロパティは省略可能です。0 に設定するか省略した場合、ディスクは作成されません。
    maxdbDataSSD ブール値 データドライブが SSD 永続ディスクを使用する(「Yes」)か、HDD 永続ディスクを使用する(「No」)かを指定します。デフォルトは「Yes」です。
    maxdbLogSSD ブール値 ログドライブが SSD 永続ディスクを使用する(「Yes」)か、HDD 永続ディスクを使用する(「No」)かを指定します。デフォルトは「Yes」です。ログドライブには SSD をおすすめします。
    usrsapSize 整数 SAP MaxDB をインストールして、同じ VM インスタンス上で SAP NetWeaver とともに実行させる場合にのみ必要です。
    sapmntSize 整数 SAP MaxDB をインストールして、同じ VM インスタンス上で SAP NetWeaver とともに実行させる場合にのみ必要です。
    swapSize 整数 SAP MaxDB をインストールして、同じ VM インスタンス上で SAP NetWeaver とともに実行させる場合にのみ必要です。

    次の構成ファイルは、SAP MaxDB データベース サーバーと SAP NetWeaver の両方を実行するように構成された VM を作成します。構成ファイルは、SLES 12 SP3 オペレーティング システムを実行している n1-standard-16 VM をデプロイするように Deployment Manager に指示します。VM には、NetWeaver とともに SAP MaxDB を実行するために必要なすべてのディレクトリが含まれています。

    resources:
    - name: sap_maxdb
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_maxdb/sap_maxdb.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/202103310846/dm-templates/sap_maxdb/sap_maxdb.py
      #
      properties:
        instanceName: xmp-maxdb-lin
        instanceType: n1-standard-16
        zone: us-central1-f
        subnetwork: example-sub-network
        linuxImage: family/sles-12-sp3-sap
        linuxImageProject: suse-sap-cloud
        maxdbSID: MD1
        maxdbRootSize: 10
        maxdbDataSize: 50
        maxdbLogSize: 30
        maxdbBackupSize: 100
        maxdbDataSSD: Yes
        maxdbLogSSD: Yes
        usrsapSize: 15
        sapmntSize: 15
        swapSize: 24
  6. VM インスタンスを作成します。

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

    上記のコマンドによって Deployment Manager が起動され、template.yaml ファイルの仕様に従って VM がデプロイされます。処理には数分かかる場合があります。デプロイの進行状況を確認するには、次のセクションの手順を実施してください。

デプロイの確認

デプロイを確認するには、Cloud Logging でデプロイログを確認し、VM の設定を確認します。

ログを調べる

  1. Google Cloud コンソールで Cloud Logging を開き、インストールの進行状況をモニタリングして、エラーを確認します。

    Cloud Logging に移動

  2. ログをフィルタします。

    ログ エクスプローラ

    1. [ログ エクスプローラ] ページで、[クエリ] ペインに移動します。

    2. [リソース] プルダウン メニューから [グローバル] を選択し、[追加] をクリックします。

      [グローバル] オプションが表示されない場合は、クエリエディタに次のクエリを入力します。

      resource.type="global"
      "Deployment"
      
    3. [クエリを実行] をクリックします。

    以前のログビューア

    • [以前のログビューア] ページの基本的なセレクタ メニューから、ロギング リソースとして [グローバル] を選択します。
  3. フィルタされたログを分析します。

    • "--- Finished" が表示されている場合、デプロイメントは完了しています。次の手順に進んでください。
    • 割り当てエラーが発生した場合:

      1. [IAM と管理] の [割り当て] ページで、SAP MaxDB プランニング ガイドに記載されている SAP MaxDB の要件を満たしていない割り当てを増やします。

      2. Deployment Manager の [デプロイ] ページでデプロイメントを削除し、失敗したインストールから VM と永続ディスクをクリーンアップします。

      3. デプロイを再実行します。

VM の構成を確認する

  1. SAP MaxDB システムがデプロイされたら、SSH を使用して VM に接続します。Compute Engine の [VM インスタンス] のページで、VM インスタンスの SSH ボタンをクリックするか、必要な SSH メソッドを使用します。

    Compute Engine VM インスタンス ページの SSH ボタン

  2. root ユーザーに変更します。

    sudo su -
  3. コマンド プロンプトで df -h を実行します。//sapdb/[DBSID]/sapdata ディレクトリなど、次のような出力が表示されていることを確認します。

    スクリプトによって作成されたデータ ボリューム。

  4. SAP NetWeaver と同じ VM に SAP MaxDB をインストールする場合は、次のコマンドを入力してスワップ ディレクトリが作成されたことを確認します。

    cat /proc/meminfo | grep Swap

    次の例のような結果が表示されます。

    スワップ ディレクトリが終了したときのターミナルの出力例

確認ステップの途中でインストールに失敗したことが示された場合、次の手順を行います。

  1. エラーを修正します。
  2. [デプロイ] ページでデプロイメントを削除し、失敗したインストールから VM と永続ディスクをクリーンアップします。
  3. デプロイを再実行します。

データベースのインストール

オペレーティング システムが構成されたら、SAP MaxDB データベースをインストールできます。MaxDB は通常、統合されている SAP プロダクトとともにインストールされます。

VM に SAP MaxDB をインストールするには:

  1. Linux ベースの VM への SSH 接続を確立します。
  2. SAP インストール ガイドに従って、SAP Software Provisioning Manager(SWPM)、SAP プロダクト インストール メディア、MaxDB インストール メディアをダウンロードします。
  3. SAP プロダクトの SAP インストール ガイドに従って、SAP プロダクトと SAP MaxDB データベースをインストールします。追加のガイダンスについては、SAP MaxDB documentation をご覧ください。

追加のインストール情報については、SAP Note 1020175 - FAQ: SAP MaxDB installation, upgrade or applying a patch をご覧ください。

Google Cloud の SAP 用エージェントのインストールを検証する

VM をデプロイして SAP システムをインストールしたら、Google Cloud の SAP 用エージェントが正常に機能していることを確認します。

Google Cloud の SAP 用エージェントが実行されていることを確認する

エージェントの動作確認の手順は次のとおりです。

  1. ホスト VM インスタンスと SSH 接続を確立します。

  2. 次のコマンドを実行します。

    systemctl status google-cloud-sap-agent

    エージェントが正常に機能している場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

エージェントが実行されていない場合は、エージェントを再起動します。

SAP Host Agent が指標を受信していることを確認する

Google Cloud の SAP 用エージェントによってインフラストラクチャの指標が収集され、SAP Host Agent に正しく送信されていることを確認するには、次の操作を行います。

  1. SAP システムで、トランザクションとして「ST06」を入力します。
  2. 概要ウィンドウで可用性と以下のフィールドの内容を確認し、SAP と Google モニタリング インフラストラクチャのエンドツーエンドの設定が正しいか調べます。

    • クラウド プロバイダ: Google Cloud Platform
    • Enhanced Monitoring Access: TRUE
    • Enhanced Monitoring Details: ACTIVE

デプロイ後のタスクの実行

SAP MaxDB インスタンスを使用する前に、次のデプロイ後の手順を実行することをおすすめします。

  1. 最新のパッチがある場合は、それを使用して SAP MaxDB ソフトウェアを更新します。
  2. 追加のコンポーネントをインストールします。
  3. 新しい SAP MaxDB データベースを構成してバックアップします。

詳細については、SAP MaxDB Database Administration をご覧ください。

トラブルシューティング

このセクションでは、一般的な問題を修正する方法について説明します。

VM への接続に関するトラブルシューティング

SSH 経由で VM に接続する際に問題がある場合は、使用中の Google Cloud ネットワーク上でポート 22 を開くためのファイアウォール ルールが作成されていることを確認してください。

その他の考えられる問題については、ブラウザから SSH 経由で接続する際の既知の問題をご覧ください。