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

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

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

デプロイを計画する方法について詳しくは、SAP MaxDB プランニング ガイドをご覧ください。

前提条件

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

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

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

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

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

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

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

gcloud コマンド環境の構成

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

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

プロビジョニングされた VM には、gcloud コマンドライン インターフェースを備えた最新の Cloud SDK が搭載されています。したがって、Cloud Shell で使用する gcloud コマンドは、ローカルにインストールされた Cloud SDK のインスタンスで使用するコマンドと同じです。

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

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

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

  • gcloud init を使用して構成を初期化する。

  • gcloud config list を使用して現在の gcloud 構成の設定を確認する。

  • gcloud config set project [PROJECT_ID] を使用して、作業している Google Cloud プロジェクトを変更する。[PROJECT_ID] は Google Cloud プロジェクトを表します。

  • gcloud config set compute/region [REGION] を使用して、デフォルトのリージョンを設定する。[REGION] は Google Cloud リージョンを表します。

  • gcloud config set compute/zone [ZONE] を使用して、デフォルトのゾーンを設定する。[ZONE] は Google Cloud ゾーンを表します。

  • gcloud config configurations create [NAME] を使用して、新しい構成を作成する。[NAME] は構成の名前を表します。

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

ネットワークの作成

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

プロジェクトにデフォルトの VPC ネットワークがあっても、使用しないでください。代わりに独自の VPC ネットワークを作成することで、明示的に作成したファイアウォール ルールのみを有効にできます。

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

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

  1. Cloud Shell に移動します。

    Cloud Shell に移動

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

    gcloud compute networks create [YOUR_NETWORK_NAME] --subnet-mode custom

    [YOUR_NETWORK_NAME] は新しいネットワークの名前です。ネットワーク名に使えるのは、小文字、数字、ダッシュ(-)のみです。

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

  3. サブネットワークを作成し、リージョンと IP 範囲を指定します。

    gcloud compute networks subnets create [YOUR_SUBNETWORK_NAME] \
                --network [YOUR_NETWORK_NAME] --region [YOUR_REGION] --range [YOUR_RANGE]

    ここで

    • [YOUR_SUBNETWORK_NAME] は、新しいサブネットワークです。
    • [YOUR_NETWORK_NAME] は、前の手順で作成したネットワークの名前です。
    • [REGION] は、サブネットワークを配置するリージョンです。
    • [YOUR_RANGE] は、CIDR 形式で指定された IP アドレス範囲です(例: 10.1.0.0/24)。複数のサブネットワークを追加する場合は、ネットワーク内の各サブネットワークに重複しない CIDR IP 範囲を割り当ててください。各サブネットワークとその内部 IP 範囲は、単一のリージョンにマッピングされることに注意してください。
  4. 必要に応じて、前の手順を繰り返して、サブネットワークを追加します。

NAT ゲートウェイの設定

パブリック IP アドレスを持たない VM を 1 つ以上作成する場合は、VM がインターネットにアクセスして Google のモニタリング エージェントをダウンロードできるように、NAT ゲートウェイを作成する必要があります。

VM に外部パブリック IP アドレスを割り当てる場合は、この手順をスキップできます。

NAT ゲートウェイを作成するには:

  1. 前の手順で作成したサブネットで NAT ゲートウェイとして機能する VM を作成します。

    gcloud compute instances create [YOUR_VM_NAME] --can-ip-forward \
                --zone [YOUR_ZONE]  --image-family [YOUR_IMAGE_FAMILY] \
                --image-project [YOUR_IMAGE_PROJECT] \
                --machine-type=[YOUR_MACHINE_TYPE] --subnet [YOUR_SUBNETWORK_NAME] \
                --metadata startup-script="sysctl -w net.ipv4.ip_forward=1; iptables \
                -t nat -A POSTROUTING -o eth0 -j MASQUERADE" --tags [YOUR_VM_TAG]

    ここで

    • [YOUR_VM_NAME] は、NAT ゲートウェイに使用する、作成中の VM の名前です。
    • [YOUR_ZONE] は、VM を配置するゾーンです。
    • [YOUR_IMAGE_FAMILY][YOUR_IMAGE_PROJECT] は、NAT ゲートウェイに使用するイメージを指定します。
    • [YOUR_MACHINE_TYPE] は、サポートされている任意のマシンタイプです。高いネットワーク トラフィックが予想される場合は、少なくとも 8 つの仮想 CPU を搭載したマシンタイプを選択してください。
    • [YOUR_SUBNETWORK_NAME] は、VM を配置するサブネットワークの名前です。
    • [YOUR_VM_TAG] は、作成する VM に適用されるタグです。この VM を踏み台インスタンスとして使用する場合、このタグは関連するファイアウォール ルールをこの VM にのみ適用するために使用されます。
  2. トラフィックがデフォルトのインターネット ゲートウェイではなく NAT VM を通過するようにタグ付けされたルートを作成します。

    gcloud compute routes create [YOUR_ROUTE_NAME] \
                --network [YOUR_NETWORK_NAME] --destination-range 0.0.0.0/0 \
                --next-hop-instance [YOUR_VM_NAME] --next-hop-instance-zone \
                [YOUR_ZONE] --tags [YOUR_TAG_NAME] --priority 800

    ここで

    • [YOUR_ROUTE_NAME] は、作成するルートの名前です。
    • [YOUR_NETWORK_NAME] は、作成したネットワークです。
    • [YOUR_VM_NAME] は、NAT ゲートウェイ用に使用している VM です。
    • [YOUR_ZONE] は、VM を配置するゾーンです。
    • [YOUR_TAG_NAME] は、NAT VM を通過するようにトラフィックを誘導するルート上のタグです。
  3. NAT ゲートウェイ VM を踏み台インスタンスとしても使用する場合は、次のコマンドを実行します。このコマンドは、インターネットからこのインスタンスへの受信側 SSH アクセスを許可するファイアウォール ルールを作成します。

    gcloud compute firewall-rules create allow-ssh --network [YOUR_NETWORK_NAME] --allow tcp:22 --source-ranges 0.0.0.0/0 --target-tags "[YOUR_VM_TAG]"

    ここで

    • [YOUR_NETWORK_NAME] は、作成したネットワークです。
    • [YOUR_VM_TAG] は、NAT ゲートウェイ VM を作成したときに指定したタグです。このタグを使用すると、このファイアウォール ルールが NAT ゲートウェイをホストする VM にのみ適用され、ネットワーク内のそれ以外の VM には適用されません。

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

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

Deployment Manager について

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

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

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/sapdeploy/dm-templates/sap_maxdb/template.yaml
        
  3. 必要に応じて template.yaml のファイル名を変更し、このファイルで定義する構成がわかるようにします。

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

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

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

    プロパティ データ型 説明
    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-7 または family/sles-12-sp3-sap と指定します。特定のイメージを指定するには、イメージ名のみを指定します。利用可能なイメージ ファミリーの一覧については、Cloud Console の [イメージ] ページをご覧ください。
    linuxImageProject 文字列 使用するイメージを含む Google Cloud プロジェクト。このプロジェクトは独自のプロジェクトか、rhel-sap-cloudsuse-sap-cloud のような Google Cloud イメージ プロジェクトです。GCP イメージ プロジェクトの一覧については、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 整数 同じ VM インスタンス上で SAP NetWeaver とともに実行するように SAP MaxDB をインストールする場合にのみ必要です。
    sapmntSize 整数 同じ VM インスタンス上で SAP NetWeaver とともに実行するように SAP MaxDB をインストールする場合にのみ必要です。
    swapSize 整数 同じ VM インスタンス上で SAP NetWeaver とともに実行するように SAP MaxDB をインストールする場合にのみ必要です。

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

     imports:
         - path: https://storage.googleapis.com/sapdeploy/dm-templates/sap_maxdb/sap_maxdb.py
    
         resources:
         - name: sap_maxdb
           type: https://storage.googleapis.com/sapdeploy/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 を使用するため、料金が発生することがあります。詳細については、Cloud Logging の料金をご覧ください。

  1. Cloud Logging を開いてエラーをチェックし、インストールの進行状況をモニタリングします。

    Logging に移動

  2. [リソース] タブで、ロギング リソースとして [グローバル] を選択します。VM に INSTANCE DEPLOYMENT COMPLETE と表示されている場合、その VM に対する Deployment Manager の処理は完了しています。

    Logging の表示

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

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

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

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

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

  6. 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 をご覧ください。

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

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

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

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

トラブルシューティング

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

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

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

その他発生する可能性がある問題については、ブラウザから SSH 経由で接続する際の既知の問題をご覧ください。