Terraform: SAP HANA スケールアップ デプロイガイド

このデプロイガイドでは、Terraform と構成ファイルを使用してインストールを定義することで、Google Cloud に SAP HANA システムをデプロイする方法について説明します。このガイドは、Compute Engine 仮想マシン(VM)、永続ディスク、Linux オペレーティング システムを構成して、SAP HANA システムの最高のパフォーマンスを実現するのに役立ちます。Terraform 構成ファイルには、Compute Engine と SAP の両方のベスト プラクティスが組み込まれています。

このガイドでは、単一ホストのスケールアップによる SAP HANA システムのデプロイや、スタンバイ ホストを含まないマルチホストのスケールアウトによる SAP HANA システムのデプロイを行います。

SAP HANA の自動ホスト フェイルオーバーを含める必要がある場合は、Terraform: ホストの自動フェイルオーバーを使用した SAP HANA スケールアウト システムのデプロイガイドを使用してください。

Linux 高可用性クラスタに SAP HANA をデプロイする必要がある場合は、次のガイドのいずれかを使用してください。

前提条件

開始する前に、次の前提条件を満たしていることを確認してください。

  • SAP HANA プランニング ガイドを参照した。
  • Google Cloud アカウントとプロジェクトがある。
  • データ所在地、アクセス制御、サポート担当者、規制要件に準拠しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。
  • Virtual Private Cloud ネットワークが、VM へのアクセスを制御するファイアウォール ルールまたはその他の方法で設定されている。
  • SAP HANA インストール メディアにアクセスできる。

  • プロジェクト メタデータで OS Login が有効になっていて、スケールアウト ノードをデプロイしている場合は、デプロイが完了するまで一時的に OS ログインを無効にする必要があります。デプロイのために、次の手順によりインスタンス メタデータで SSH 認証鍵を構成します。OS Login が有効になっている場合、メタデータ ベースの SSH 認証鍵構成は無効になり、このデプロイは失敗します。 デプロイが完了したら、再度 OS Login を有効にできます。

    詳細情報

Google アカウントの設定

Google Cloud を使用するには Google アカウントが必要です。

  1. Google アカウントをお持ちでない場合は、Google アカウントに登録します。
  2. (省略可)データ所在地、アクセス制御、サポート担当者、規制に関する要件を遵守しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。
  3. Google Cloud コンソールにログインし、新しいプロジェクトを作成します。
  4. 請求先アカウントを有効にします。
  5. SSH 認証鍵を使用して Compute Engine VM インスタンスに SSH 接続できるように、SSH 認証鍵を構成します。Google Cloud CLI を使用して、新しい SSH 認証鍵を作成します。
  6. gcloud CLI または Google Cloud コンソールを使用して、プロジェクトのメタデータに SSH 認証鍵を追加します。これにより、このプロジェクト内で作成されたすべての Compute Engine VM インスタンスにアクセスできるようになります。ただし、プロジェクト全体の SSH 認証鍵を明示的に無効にするインスタンスを除きます。

ネットワークの作成

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

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

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

プロジェクトの VPC ネットワークを作成するには、次の手順に従ってください。

  1. カスタムモードのネットワークを作成します。 詳細については、カスタムモード ネットワークの作成をご覧ください。

  2. サブネットワークを作成し、リージョンと IP 範囲を指定します。詳細については、サブネットの追加をご覧ください。

NAT ゲートウェイの設定

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

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

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

ファイアウォール ルールの追加

デフォルトでは、暗黙のファイアウォール ルールにより、Virtual Private Cloud(VPC)ネットワークの外部からの受信接続がブロックされます。受信側の接続を許可するには、VM にファイアウォール ルールを設定します。VM との受信接続が確立されると、トラフィックはその接続を介して双方向に許可されます。

特定のポートへの外部アクセスを許可するファイアウォール ルールや、同じネットワーク上の VM 間のアクセスを制限するファイアウォール ルールも作成できます。VPC ネットワーク タイプとして default が使用されている場合は、default-allow-internal ルールなどの追加のデフォルト ルールも適用されます。追加のデフォルト ルールは、同じネットワークであれば、すべてのポートで VM 間の接続を許可します。

ご使用の環境に適用可能な IT ポリシーによっては、データベース ホストへの接続を分離するか制限しなければならない場合があります。これを行うには、ファイアウォール ルールを作成します。

目的のシナリオに応じて、次の対象にアクセスを許可するファイアウォール ルールを作成できます。

  • すべての SAP プロダクトの TCP/IP にリストされているデフォルトの SAP ポート。
  • パソコンまたは企業のネットワーク環境から Compute Engine VM インスタンスへの接続。使用すべき IP アドレスがわからない場合は、社内のネットワーク管理者に確認してください。
  • SAP HANA ネットワークの VM 間の通信(SAP HANA スケールアウト システムのノード間の通信や、3 層アーキテクチャのデータベース サーバーとアプリケーション サーバー間の通信など)。VM 間の通信を有効にするには、サブネットワーク内から発信されるトラフィックを許可するファイアウォール ルールを作成する必要があります。
  • VM インスタンスへの SSH 接続(ブラウザでの SSH を含む)。
  • Linux のサードパーティ製ツールを使用した VM への接続。ファイアウォール ルールを作成して、ツールのアクセスを許可します。

プロジェクトのファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。

SAP HANA インストール ファイル用の Cloud Storage バケットの作成

Terraform を使用して Compute Engine VM に SAP HANA をインストールする前に、SAP HANA バイナリを含むインストール ファイルを Cloud Storage バケットにアップロードする必要があります。

Terraform は、SAP が提供するファイル形式での SAP HANA インストール ファイルを想定します。SAP HANA のバージョンに応じて、ファイル形式は ZIP、EXE、RAR のいずれかになります。

SAP HANA インストール ファイルをダウンロードするには、次のように Cloud Storage バケットを作成し、そのバケットにファイルをアップロードする必要があります。

  1. 必要な SAP HANA バージョンの基本インストール ファイルをダウンロードします。

    1. SAP Support Portal にアクセスします。
    2. [Software Downloads] をクリックします。
    3. [Installations & Upgrades] タブで、[By Alphabetical Index (AZ)] > [H] > [SAP HANA Platform Edition] > SAP HANA Platform Edition 2.0 をクリックします。
    4. [Installation] をクリックします。
    5. 必要なサービスパックとして、[Linux x86_64 distribution] を選択し、[Download Basket] をクリックします。

    ソフトウェアへのアクセスが許可されているものの、SAP Support Portal アカウントでソフトウェアにアクセスできない場合は、SAP Global Support Customer Interaction Center にお問い合わせください。

  2. SAP HANA データベースを必要なバージョンにアップグレードするために必要なファイルをダウンロードします。これらのファイルは SAR 形式で、ファイル名は IMDB_SERVERIMDB_CLIENTIMDB_AFL で始まります。

    1. SAP Support Portal にアクセスします。

    2. [Software Downloads] をクリックします。

    3. [Support Packages & Patches] タブに移動します。

    4. [By Alphabetical Index (AZ)] > [H] > [SAP HANA Platform Edition] > [SAP HANA Platform Edition 2.0] をクリックします。

    5. 必要なコンポーネントをクリックします。たとえば、SAP HANA Database 2.0、SAP HANA Client 2.0、SAP HANA AFL 2.0 などです。

    6. 必要なファイルを選択し、[Download Basket] をクリックします。

  3. Google Cloud プロジェクトで、Cloud Storage バケットを作成します。手順については、バケットを作成するをご覧ください。

    バケット名は Google Cloud 全体で一意である必要があります。バケットの作成中に、ストレージ クラスに [Standard] を選択します。

  4. バケットの権限を構成します。バケットの所有者には、デフォルトでバケットへの読み書きアクセス権があります。他のプリンシパルへのアクセス権を付与するには、IAM 権限の使用をご覧ください。

  5. ダウンロードした SAP HANA バイナリを Cloud Storage バケットまたはバケット内のフォルダにアップロードします。手順については、ファイル システムからオブジェクトのアップロードをご覧ください。

  6. バケットまたはフォルダには、ファイル形式ごとにインストール ファイルが 1 つだけ含まれていることを確認します。例:

    510056441.ZIP
    IMDB_SERVER20_059_11-80002031.SAR
    IMDB_CLIENT20_005_111-80002082.SAR
    IMDB_AFL20_059_11-80002031.SAR
    
  7. SAP バイナリをアップロードしたバケットとフォルダの名前をメモします。後で SAP HANA をインストールする際に、この名前を使用する必要があります。

SAP HANA をインストールした VM の作成

次の手順では、Terraform を使用して、SAP HANA に必要なすべての永続ディスクを含む 1 つ以上の VM インスタンスに SAP HANA をインストールします。Terraform 構成ファイルでインストールの値を定義します。

次の手順では Cloud Shell を使用していますが、Google Cloud CLI の場合も同様です。

  1. 永続ディスクや CPU などリソースの現在の割り当てが、インストールしようとしている SAP HANA システムに対して十分であることを確認します。割り当てが不足しているとデプロイは失敗します。SAP HANA の割り当て要件については、SAP HANA の料金と割り当てに関する考慮事項をご覧ください。

    [割り当て] に移動

  2. Cloud Shell を開くか、Google Cloud CLI をローカル ワークステーションにインストールしている場合はターミナルを開きます。

    Cloud Shell を開く

  3. Cloud Shell またはターミナルで次のコマンドを実行して、sap_hana.tf 構成ファイルを作業ディレクトリにダウンロードします。

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/terraform/sap_hana.tf
  4. Cloud Shell コードエディタで sap_hana.tf ファイルを開きます(ターミナルを使用している場合は任意のテキスト エディタで開きます)。

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

  5. sap_hana.tf ファイルで、以下の引数値のかっことその内容をご使用のインストール環境の値に置き換えて更新します。

    sap_hana_sidsap_hana_sidadm_passwordsap_hana_system_password の値など、SAP HANA システムに指定する引数値には、SAP によって定義されている規則が適用されるものがあります。詳細については、SAP HANA Server インストールおよび更新ガイドのパラメータ リファレンスをご覧ください。

    構成ファイルでパスワードを指定するには、シークレットを使用するか、書式なしテキストでパスワードを指定する必要があります。詳細については、パスワード管理をご覧ください。

    SAP HANA をインストールせずに VM インスタンスを作成する場合は、sap_hana_ で始まる行をすべて削除してください。

    引数 Data type 説明
    source 文字列

    デプロイ時に使用する Terraform モジュールの場所とバージョンを指定します。

    sap_hana.tf 構成ファイルには、source 引数の 2 つのインスタンスがあります。1 つは有効で、もう 1 つはコメントとして追加されています。デフォルトで有効な source 引数が、モジュール バージョンとして latest を指定します。source 引数の 2 番目のインスタンスは、デフォルトで先頭の # 文字によって無効にされており、モジュール バージョンを識別するタイムスタンプを指定します。

    すべてのデプロイで同じモジュール バージョンを使用する必要がある場合は、バージョン タイムスタンプを指定する source 引数から先頭の # 文字を削除し、latest を指定する source 引数に追加します。

    project_id 文字列 このシステムをデプロイする Google Cloud プロジェクトの ID を指定します。例: my-project-x
    instance_name 文字列 ホスト VM インスタンスの名前を指定します。名前に使用できるのは、小文字、数字、ハイフンです。ワーカーホストとスタンバイ ホストの VM インスタンスの名前は同じになり、w とホスト番号が追加された名前を用います。
    machine_type 文字列 SAP システムの実行に必要な Compute Engine 仮想マシン(VM)のタイプを指定します。カスタム VM タイプが必要な場合は、必要な数に最も近く、かつ必要数以上の vCPU 数を持つ事前定義された VM タイプを指定します。デプロイが完了したら、vCPU 数とメモリ量を変更してください。

    例: n1-highmem-32

    zone 文字列

    SAP システムをデプロイするゾーンを指定します。このゾーンは、サブネットに選択したのと同じリージョンに存在する必要があります。

    たとえば、サブネットが us-central1 リージョンにデプロイされている場合は、us-central1-a などのゾーンを指定できます。

    subnetwork 文字列 前のステップで作成したサブネットワークの名前を指定します。共有 VPC にデプロイする場合は、この値を SHARED_VPC_PROJECT_ID/SUBNETWORK として指定します。例: myproject/network1
    linux_image 文字列 SAP システムをデプロイする Linux オペレーティング システム イメージの名前を指定します。 たとえば、rhel-9-2-sap-hasles-15-sp5-sap です。使用可能なオペレーティング システム イメージのリストについては、Google Cloud コンソールの [イメージ] ページをご覧ください。
    linux_image_project 文字列 引数 linux_image に指定するイメージを含む Google Cloud プロジェクトを指定します。このプロジェクトは独自のプロジェクトか、Google Cloud イメージ プロジェクトです。 Compute Engine イメージの場合は、rhel-sap-cloudsuse-sap-cloud を指定します。 ご利用のオペレーティング システムのイメージ プロジェクトを確認するには、オペレーティング システムの詳細をご覧ください。
    sap_hana_deployment_bucket String デプロイした VM に SAP HANA を自動的にインストールするには、SAP HANA インストール ファイルを含む Cloud Storage バケットのパスを指定します。パスには gs:// を含めないでください。バケット名とフォルダ名のみを含めます。例: my-bucket-name/my-folder

    Cloud Storage バケットは、project_id 引数に指定した Google Cloud プロジェクト内に存在する必要があります。

    sap_hana_sid String デプロイされた VM に SAP HANA を自動的にインストールするには、SAP HANA システム ID を指定します。ID は英数字 3 文字で、最初の文字はアルファベットにする必要があります。文字は大文字のみ使用できます。例: ED1
    sap_hana_sidadm_uid 整数 省略可。SID_LC adm ユーザー ID のデフォルト値をオーバーライドする値を指定します。デフォルト値は 900 です。SAP ランドスケープ内での整合性を保つために、別の値に変更できます。
    sap_hana_instance_number Integer 省略可。SAP HANA システムのインスタンス番号(0~99)を指定します。デフォルトは 0 です。
    sap_hana_sidadm_password 文字列 デプロイした VM に SAP HANA を自動的にインストールするには、デプロイ時に使用するインストール スクリプトで一時的な SIDadm のパスワードを指定します。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。

    パスワードを書式なしテキストとして指定する代わりに、シークレットを使用することをおすすめします。詳細については、パスワード管理をご覧ください。

    sap_hana_sidadm_password_secret String 省略可。Secret Manager を使用して SIDadm パスワードを保存している場合は、このパスワードに対応するシークレットの名前を指定します。

    Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。

    詳細については、パスワード管理をご覧ください。

    sap_hana_system_password String デプロイした VM に SAP HANA を自動的にインストールするには、デプロイ時に使用するインストール スクリプトで一時的なデータベース スーパーユーザーのパスワードを指定します。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。

    パスワードを書式なしテキストとして指定する代わりに、シークレットを使用することをおすすめします。詳細については、パスワード管理をご覧ください。

    sap_hana_system_password_secret String 省略可。Secret Manager を使用してデータベースのスーパーユーザーのパスワードを保存している場合は、このパスワードに対応するシークレットの名前を指定します。

    Secret Manager では、Secret 値(パスワード)は 8 文字以上で、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含めるようにします。

    詳細については、パスワード管理をご覧ください。

    sap_hana_scaleout_nodes Integer スケールアウト システムで必要なワーカーホストの数を指定します。 スケールアウト システムをデプロイするには、少なくとも 1 つのワーカーホストが必要です。

    Terraform は、プライマリ SAP HANA インスタンスに加えてワーカーホストも作成します。たとえば、3 を指定した場合、4 つの SAP HANA インスタンスがスケールアウト システムにデプロイされます。

    sap_hana_shared_nfs 文字列 省略できます。NFS ソリューションを使用してワーカーホストと /hana/shared のボリュームを共有するマルチホスト デプロイの場合は、そのボリュームの NFS マウント ポイントを指定します。次に例を示します、10.151.91.122:/hana_shared_nfs

    詳細については、マルチホスト スケールアウト デプロイ用のファイル共有ソリューションをご覧ください。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    sap_hana_backup_nfs String 省略できます。NFS ソリューションを使用してワーカーホストと /hanabackup のボリュームを共有するマルチホスト デプロイの場合は、そのボリュームの NFS マウント ポイントを指定します。次に例を示します、10.216.41.122:/hana_backup_nfs

    詳細については、マルチホスト スケールアウト デプロイ用のファイル共有ソリューションをご覧ください。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    sap_hana_shared_nfs_resource マップ / オブジェクト 省略できます。マルチホスト スケールアウト SAP HANA システムのホストと/hana/shared/ボリュームを共有する Filestore インスタンスをデプロイには、google_filestore_instanceリソースの定義で設定したファイル共有の名前を指定します。サンプルを表示するには、このガイドのサンプル構成をご覧ください。

    詳細については、マルチホスト スケールアウト デプロイ用のファイル共有ソリューションをご覧ください。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    sap_hana_backup_nfs_resource マップ / オブジェクト 省略できます。マルチホスト スケールアウト SAP HANA システムのホストと/hanabackupボリュームを共有する Filestore インスタンスをデプロイには、google_filestore_instanceリソースの定義で設定したファイル共有の名前を指定します。サンプルを表示するには、このガイドのサンプル構成をご覧ください。

    詳細については、マルチホスト スケールアウト デプロイ用のファイル共有ソリューションをご覧ください。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    sap_hana_backup_size 整数 省略可。/hanabackup ボリュームのサイズを GB 単位で指定します。この引数を指定しない場合、または 0 に設定した場合、インストール スクリプトは、合計メモリの 2 倍の HANA バックアップ ボリュームを持つ Compute Engine インスタンスをプロビジョニングします。

    sap_hana_backup_nfs または sap_hana_backup_nfs_resource の値を指定した場合、sap_hana_backup_size は無視されます。

    sap_hana_sapsys_gid Integer 省略可。sapsys のデフォルトのグループ ID をオーバーライドします。デフォルト値は 79 です。
    network_tags 文字列 省略可。ファイアウォールまたはルーティングの目的で使用され、VM インスタンスに関連付けるネットワーク タグを 1 つ以上カンマ区切りで指定します。

    public_ip = false を指定していて、ネットワーク タグを指定しない場合は、インターネットへの別のアクセス手段を必ず指定してください。

    nic_type String 省略できます。VM インスタンスで使用するネットワーク インターフェースを指定します。値には GVNIC または VIRTIO_NET を指定できます。Google Virtual NIC(gVNIC)を使用するには、linux_image 引数の値として gVNIC をサポートする OS イメージを指定する必要があります。OS イメージの一覧については、オペレーティング システムの詳細をご覧ください。

    この引数の値を指定しなかった場合は、machine_type 引数に指定したマシンタイプに基づいて、ネットワーク インターフェースが自動的に選択されます。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    disk_type 文字列 省略可。デプロイの SAP データとログボリュームにデプロイする Persistent Disk または Hyperdisk ボリュームのデフォルト タイプを指定します。Google Cloud が提供する Terraform 構成によって実行されるデフォルトのディスク デプロイについては、Terraform によるディスク デプロイをご覧ください。

    この引数の有効な値は pd-ssdpd-balancedhyperdisk-extremehyperdisk-balancedpd-extreme です。SAP HANA スケールアップ デプロイでは、/hana/shared ディレクトリに個別のバランス永続ディスクもデプロイされます。

    いくつかの高度な引数を使用して、このデフォルトのディスクタイプと関連するデフォルトのディスクサイズとデフォルトの IOPS をオーバーライドできます。詳細については、作業ディレクトリに移動してから、terraform init コマンドを実行して、/.terraform/modules/sap_hana/variables.tf ファイルを確認してください。これらの引数を本番環境で使用する前に、非本番環境でテストしてください。

    use_single_shared_data_log_disk ブール値 省略できます。デフォルト値は falseであり、これは、SAP ボリューム(/hana/data/hana/log/hana/shared/usr/sap)ごとに、個別の永続ディスクまたは Hyperdisk をデプロイするように Terraform に指示します。これらの SAP ボリュームを同じ永続ディスクまたは Hyperdisk にマウントするには、true を指定します。
    enable_data_striping ブール値 省略可。この引数を使用すると、/hana/data ボリュームを 2 つのディスクにデプロイできます。デフォルト値は false です。これは、/hana/data ボリュームをホストする単一のディスクをデプロイするように Terraform に指示します。

    この引数は sap_hana モジュール バージョン 1.3.674800406 以降で使用できます。

    include_backup_disk ブール値 省略できます。この引数は、SAP HANA スケールアップ デプロイに適用されます。デフォルト値は true です。これは、/hanabackup ディレクトリをホストする別のディスクをデプロイするように Terraform に指示します。

    ディスクタイプは、backup_disk_type 引数によって決まります。このディスクのサイズは、sap_hana_backup_size 引数によって決まります。

    include_backup_disk の値を false に設定すると、/hanabackup ディレクトリ用のディスクはデプロイされません。

    backup_disk_type 文字列 省略可。スケールアップ デプロイでは、/hanabackup ボリュームにデプロイする Persistent Disk または Hyperdisk のタイプを指定します。Google Cloud が提供する Terraform 構成によって実行されるデフォルトのディスク デプロイについては、Terraform によるディスク デプロイをご覧ください。

    この引数の有効な値は pd-ssdpd-balancedpd-standardhyperdisk-extremehyperdisk-balancedpd-extreme です。

    この引数は sap_hana モジュール バージョン 202307061058 以降で使用できます。

    enable_fast_restart ブール値 省略できます。この引数により、デプロイで SAP HANA 高速再起動オプションが有効かどうかが決まります。デフォルト値は true です。Google Cloud では、SAP HANA 高速再起動オプションを有効にすることを強くおすすめします。

    この引数は sap_hana モジュール バージョン 202309280828 以降で使用できます。

    public_ip ブール値 省略可。パブリック IP アドレスを VM インスタンスに追加するかどうかを指定します。デフォルト値は true です。
    service_account 文字列 省略可。ホスト VM とホスト VM で実行されるプログラムで使用されるユーザー管理のサービス アカウントのメールアドレスを指定します。例: svc-acct-name@project-id.iam.gserviceaccount.com

    この引数に値を指定しない場合、または省略した場合、インストール スクリプトでは、Compute Engine のデフォルトのサービス アカウントが使用されます。詳細については、Google Cloud 上での SAP プログラム向け Identity and Access Management をご覧ください。

    sap_deployment_debug ブール値 省略可。Cloud カスタマーケアでデプロイのデバッグを有効にするよう求められた場合にのみ、true を指定します。これにより、デプロイの際に詳細なログが生成されます。デフォルト値は false です。
    reservation_name 文字列 省略可。このデプロイに特定の Compute Engine VM 予約を使用するには、予約の名前を指定します。デフォルトでは、インストール スクリプトは、次の条件に基づいて使用可能な Compute Engine 予約を選択します。

    予約を使用するときに名前を指定するのか、インストール スクリプトで自動的に選択するかに関係なく、予約は次のように設定する必要があります。

    • specificReservationRequired オプションは true に設定されます。または、Google Cloud コンソールで [特定の予約を選択] オプションが選択されています。
    • Compute Engine のマシンタイプによっては、マシンタイプの SAP 認定でカバーされていない CPU プラットフォームに対応しているものもあります。対象となる予約が次のいずれかのマシンタイプの場合、予約には指示された最小の CPU プラットフォームを指定する必要があります。
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • Google Cloud での使用が SAP によって認定されている他のすべてのマシンタイプの最小 CPU プラットフォームは、SAP の最小 CPU 要件に準拠しています。
    vm_static_ip 文字列 省略可。VM インスタンスに有効な静的 IP アドレスを指定します。IP アドレスを指定しない場合は、VM インスタンスに対して IP アドレスが自動的に生成されます。

    この引数は sap_hana モジュール バージョン 202306120959 以降で使用できます。

    worker_static_ips リスト(文字列) 省略可。スケールアウト システムのワーカー インスタンスに対して有効な静的 IP アドレスの配列を指定します。この引数の値を指定しない場合、ワーカー VM インスタンスごとに IP アドレスが自動的に生成されます。例: [ "1.0.0.1", "2.3.3.4" ]

    静的 IP アドレスは、インスタンスの作成順に割り当てられます。たとえば、3 つのワーカー インスタンスをデプロイするものの、引数 worker_static_ips に 2 つの IP アドレスのみを指定する場合、これらの IP アドレスは、Terraform の構成がデプロイされる最初の 2 つの VM インスタンスに割り当てられます。3 つ目のワーカー VM インスタンスでは、IP アドレスが自動的に生成されます。

    この引数は sap_hana モジュール バージョン 202306120959 以降で使用できます。

    can_ip_forward ブール値

    送信元 IP または宛先 IP が一致しないパケットの送受信を許可するかどうかを指定します。 許可すると、VM がルーターのように動作することが可能になります。 デフォルト値は true です。

    デプロイされた VM の仮想 IP を Google の内部ロードバランサのみを使用して 管理する場合は、値を false に設定します。内部ロードバランサは、高可用性テンプレートの一部として 自動的にデプロイされます。

    次の例は、3 つのワーカーホストを持つマスター SAP HANA インスタンスと、ワーカーホストと /hana/shared および /hanabackup ボリュームを共有する Filestore Basic インスタンスを含むスケールアウト SAP HANA システムで n2-highmem-32 仮想マシンをデプロイするように Terraform に指示する完成した構成ファイルです。ホストによって、SLES for SAP 15 SP2 のオペレーティング システムが実行されます。

    #
    resource "google_filestore_instance" "hana_shared_nfs" {
      name = "fs-basic-shared"
      tier = "PREMIUM"
      project = "example-project-123456"
      location = "us-central1-f"
      file_shares {
        name = "hana_shared_nfs"
        capacity_gb = 2600
      }
      networks {
        network = "example-network"
        modes   = ["MODE_IPV4"]
      }
    }
    
    resource "google_filestore_instance" "hana_backup_nfs" {
      name = "fs-basic-backup"
      tier = "PREMIUM"
      project = "example-project-123456"
      location = "us-central1-f"
      file_shares {
        name = "hana_backup_nfs"
        capacity_gb = 2600
      }
      networks {
        network = "example-network"
        modes   = ["MODE_IPV4"]
      }
    }
    
    #...
    module "sap_hana" {
      source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana/sap_hana_module.zip"
      #
      # By default, this source file uses the latest release of the terraform module
      # for SAP on Google Cloud. To fix your deployments to a specific release
      # of the module, comment out the source property above and uncomment the source property below.
      #
      # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana/sap_hana_module.zip"
      # ...
      project_id = "example-project-123456"
      zone = "us-central1-f"
      machine_type = "n2-highmem-32"
      subnetwork = "example-subnet-us-central1"
      linux_image = "sles-15-sp2-sap"
      linux_image_project = "suse-sap-cloud"
    
      instance_name = "hana-scaleout"
      sap_hana_shared_nfs_resource  = resource.google_filestore_instance.hana_shared_nfs
      sap_hana_backup_nfs_resource  = resource.google_filestore_instance.hana_backup_nfs
    
      # sap_hana_shared_nfs = "10.151.91.122:/hana_shared_nfs"
      # sap_hana_backup_nfs = "10.216.41.122:/hana_backup_nfs"
    
      sap_hana_deployment_bucket = "mybucketname"
      sap_hana_sid = "AB2"
      sap_hana_instance_number = 12
      sap_hana_sidadm_password = "TempPa55word"
      sap_hana_system_password = "TempPa55word"
      sap_hana_scaleout_nodes = 3
      sap_hana_sidadm_uid = 11
      vm_static_ip = "10.0.0.1"
      worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
      enable_fast_restart = true
      # ...
    }
  6. 現在の作業ディレクトリを初期化し、Google Cloud 用の Terraform プロバイダのプラグインとモジュール ファイルをダウンロードするには:

    terraform init

    terraform init コマンドで、他の Terraform コマンドの作業ディレクトリを準備します。

    作業ディレクトリ内のプロバイダ プラグインと構成ファイルを強制的に更新するには、--upgrade フラグを指定します。--upgrade フラグが省略されていて、作業ディレクトリに変更を加えていない場合、source URL で latest が指定されている場合でも、Terraform はローカルにキャッシュされたコピーを使用します。

    terraform init --upgrade 
  7. 必要に応じて、Terraform 実行プランを作成します。

    terraform plan

    terraform plan コマンドによって、現在の構成で必要な変更が表示されます。terraform plan コマンドをスキップした場合、terraform apply コマンドは適用前にプランを計算します。

  8. 実行プランを適用するには:

    terraform apply

    アクションを承認するように求められたら、yes を入力します。

    terraform apply コマンドによって、Google Cloud インフラストラクチャが設定され、オペレーティング システムを構成する別のスクリプトが呼び出され、SAP HANA がインストールされます。

    Terraform によって制御が行われる間、Cloud Shell にステータス メッセージが書き込まれます。スクリプトが呼び出されると、ログを確認するで説明されているように、ステータス メッセージが Logging に書き込まれ、Google Cloud コンソールで表示できるようになります。

    完了までの時間は一定ではありませんが、通常 30 分未満でプロセス全体が完了します。

デプロイの確認

デプロイを確認するには、Cloud Logging でデプロイログを調べ、プライマリ ホストとワーカーホストの VM 上のディスクとサービスを調べます。

ログを調べる

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

    Cloud Logging に移動

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

    ログ エクスプローラ

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

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

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

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

    以前のログビューア

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

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

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

      2. Cloud Shell を開きます。

        Cloud Shell に移動

      3. 作業ディレクトリに移動し、デプロイを削除して、失敗したインストールから VM と永続ディスクをクリーンアップします。

        terraform destroy

        アクションを承認するように求められたら、yes を入力します。

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

VM と SAP HANA システムの構成を確認する

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

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

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

    sudo su -
  3. コマンド プロンプトで「df -h」と入力し、予想されるボリュームとサイズを含む、次のような出力が表示されることを確認します。

    次の例は、3 つのワーカーノードがあるサンプル スケールアウト システムのマスターノードからの出力です。/hana/shared/hanabackup は Filestore インスタンスでホストされるため、これらのボリュームはありません。

    example-vm:~ # df -h
    Filesystem                         Size  Used Avail Use% Mounted on
    devtmpfs                           126G  8.0K  126G   1% /dev
    tmpfs                              189G     0  189G   0% /dev/shm
    tmpfs                              126G   18M  126G   1% /run
    tmpfs                              126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                           30G  6.5G   24G  22% /
    /dev/sda2                           20M  2.9M   18M  15% /boot/efi
    10.65.188.162:/hana_shared_nfs     2.5T   41G  2.4T   2% /hana/shared
    /dev/mapper/vg_hana_usrsap-usrsap   32G  265M   32G   1% /usr/sap
    /dev/mapper/vg_hana_data-data      308G   10G  298G   4% /hana/data
    /dev/mapper/vg_hana_log-log        128G  7.8G  121G   7% /hana/log
    10.160.217.66:/hana_backup_nfs     2.5T     0  2.4T   0% /hanabackup
    tmpfs                               26G     0   26G   0% /run/user/472
    tmpfs                               26G     0   26G   0% /run/user/900
    tmpfs                               26G     0   26G   0% /run/user/1000
  4. SAP 管理者ユーザーに切り替えます。

    su - SID_LCadm
    

    SID_LC は、構成ファイルで指定した SID 値に置き換えます。すべて小文字を使用します。

  5. インスタンス上で、hdbnameserverhdbindexserver などの SAP HANA サービスが実行されていることを確認します。

    HDB info
    
  6. RHEL for SAP 9.0 以降を使用する場合は、パッケージ chkconfigcompat-openssl11 が VM インスタンスにインストールされていることを確認してください。

    SAP の詳細については、SAP Note 3108316 - Red Hat Enterprise Linux 9.x: Installation and Configuration をご覧ください。

クリーンアップしてデプロイを再試行する

前のセクションのデプロイ検証ステップのいずれかでインストールが正常に完了しなかった場合は、デプロイを元に戻し、次の手順を行ってデプロイを再試行する必要があります。

  1. エラーが発生した場合は、同じ理由でデプロイが再び失敗することがないようにエラーを解決してください。ログの確認または割り当て関連のエラーの解決について詳しくは、ログを調べるをご覧ください。

  2. Cloud Shell を開くか、Google Cloud CLI をローカル ワークステーションにインストールしている場合はターミナルを開きます。

    Cloud Shell を開く

  3. このデプロイに使用した Terraform 構成ファイルがあるディレクトリに移動します。

  4. 次のコマンドを実行して、デプロイメントに含まれるすべてのリソースを削除します。

    terraform destroy

    アクションの承認を求められたら、「yes」と入力します。

  5. このガイドの前半で説明したように、デプロイを再試行します。

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

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

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

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

  1. Compute Engine インスタンスと 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

Compute Engine Windows VM への SAP HANA Studio のインストール

Google Cloud 外の SAP HANA インスタンス、または Google Cloud のインスタンスから接続できます。そのためには、SAP HANA Studio 内からターゲット VM へのネットワーク アクセスを有効にする必要があります。

Google Cloud の Windows VM に SAP HANA Studio をインストールするには、次の手順を行います。

  1. Cloud Shell を使用して、次のコマンドを実行します。

    Cloud Shell を開く

    export NETWORK_NAME="[YOUR_NETWORK_NAME]"
    export REGION="[YOUR_REGION]"
    export ZONE="[YOUR_ZONE]"
    export SUBNET="[YOUR_SUBNETWORK_NAME]"
    export SOURCE_IP_RANGE="[YOUR_WORKSTATION_IP]"
    gcloud compute instances create saphanastudio --zone=$ZONE \
    --machine-type=n1-standard-2  --subnet=$SUBNET --tags=hanastudio \
    --image-family=windows-2016  --image-project=windows-cloud \
    --boot-disk-size=100 --boot-disk-type=pd-standard \
    --boot-disk-device-name=saphanastudio
    gcloud compute firewall-rules create ${NETWORK_NAME}-allow-rdp \
    --network=$NETWORK_NAME --allow=tcp:3389 --source-ranges=$SOURCE_IP_RANGE \
    --target-tags=hanastudio

    上記のコマンドで、現在の Cloud Shell セッションの変数を設定し、前に作成したサブネットワークに Windows サーバーを作成します。また、リモート デスクトップ プロトコル(RDP)を介したインスタンスに対し、ローカル ワークステーションからのアクセスを許可するファイアウォール ルールを作成します。

  2. SAP HANA Studio をこのサーバーにインストールします。

    1. SAP HANA Studio のインストール ファイルと SAPCAR 抽出ツールを Google Cloud プロジェクトの Cloud Storage バケットにアップロードします。
    2. RDP またはお好みの方法で、新しい Windows VM に接続します。
    3. Windows の Google Cloud CLI Shell または他のコマンドライン インターフェースを管理者権限で開きます。
    4. コマンド インターフェースに gcloud storage cp コマンドを入力して、SAP HANA Studio インストール ファイルと SAPCAR 抽出ツールをストレージ バケットから VM にコピーします。例:

      gcloud storage cp gs://[SOURCE_BUCKET]/IMC_STUDIO2_232_0-80000323.SAR C:\[TARGET_DIRECTORY] &
      gcloud storage cp gs://[SOURCE_BUCKET]/SAPCAR_1014-80000938.EXE C:\[TARGET_DIRECTORY]
      
    5. ディレクトリをターゲット ディレクトリに変更します。

      cd C:\[TARGET_DIRECTORY]
      
    6. SAPCAR プログラムを実行して、SAP HANA Studio インストール ファイルを抽出します。

      SAPCAR_1014-80000938.EXE -xvf IMC_STUDIO2_232_0-80000323.SAR
      
    7. 抽出した hdbinst プログラムを実行して SAP HANA Studio をインストールします。

SAP HANA のモニタリングを設定する

必要に応じて、Google Cloud の SAP 用 エージェントを使用して SAP HANA インスタンスをモニタリングできます。バージョン 2.0 以降では、SAP HANA モニタリング指標を収集して Cloud Monitoring に送信するようにエージェントを構成できます。 Cloud Monitoring を使用すると、これらの指標を可視化するダッシュボードを作成し、指標のしきい値などに基づくアラートを設定できます。

Google Cloud の SAP 用エージェントを使用している SAP HANA モニタリング指標の収集の詳細については、SAP HANA モニタリング指標の収集をご覧ください。

SAP HANA へ接続する

この手順では SAP HANA に外部 IP を使用しないため、SAP HANA インスタンスに接続できるのは、SSH を使用して踏み台インスタンスを経由するか、SAP HANA Studio を使用して Windows サーバーを経由する場合だけになるのでご注意ください。

  • 踏み台インスタンスを介して SAP HANA に接続するには、踏み台インスタンスに接続してから、任意の SSH クライアントを使用して SAP HANA インスタンスに接続します。

  • SAP HANA Studio を経由して SAP HANA データベースに接続するには、リモート デスクトップ クライアントを使用して、Windows Server インスタンスに接続します。接続後、手動で SAP HANA Studio をインストールし、SAP HANA データベースにアクセスします。

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

SAP HANA インスタンスを使用する前に、次のデプロイ後の手順を実行することをおすすめします。詳しくは、SAP HANA のインストールおよび更新ガイドをご覧ください。

  1. SAP HANA システム管理者とデータベースのスーパーユーザーの仮のパスワードを変更します。次に例を示します。

    sudo passwd SIDadm

    システム データベースのシステム ユーザー パスワードのリセットをご覧ください。

  2. SAP HANA の永続ライセンスをインストールします。インストールしていない場合、一時ライセンスの有効期限が切れると SAP HANA はデータベースのロックダウンを発生させます。

    SAP HANA ライセンスの管理に関する SAP の詳細については、SAP HANA データベースのライセンスキーをご覧ください。

  3. SAP HANA ソフトウェアを、最新のパッチで更新します。

  4. SAP HANA システムが VirtIO ネットワーク インターフェースにデプロイされている場合は、TCP パラメータ /proc/sys/net/ipv4/tcp_limit_output_bytes の値を 1048576 に設定することをおすすめします。この変更により、ネットワーク レイテンシに影響を与えることなく、VirtIO ネットワーク インターフェースの全体的なネットワーク スループットを改善できます。

  5. アプリケーション機能ライブラリ(AFL)またはスマートデータ アクセス(SDA)などの、追加コンポーネントがあればインストールします。

  6. 新しい SAP HANA データベースを、構成してバックアップをとります。詳細については、SAP HANA オペレーション ガイドをご覧ください。

SAP HANA ワークロードを評価する

Google Cloud 上で実行される SAP HANA ワークロードの継続的な検証チェックを自動化するには、Workload Manager を使用します。

Workload Manager を使用すると、SAP HANA ワークロードを SAP、Google Cloud、OS ベンダーのベスト プラクティスに対して自動的にスキャンして評価できます。これにより、ワークロードの品質、パフォーマンス、信頼性が向上します。

Google Cloud で実行されている SAP HANA ワークロードの評価で Workload Manager がサポートするベスト プラクティスについては、SAP 向けの Workload Manager のベスト プラクティスをご覧ください。Workload Manager を使用して評価を作成および実行する方法については、評価を作成して実行するをご覧ください。

次のステップ

  • SAP HANA ディレクトリ用の永続ディスクではなく Google Cloud 用の NetApp Cloud Volumes Service を使用する必要がある場合は、SAP HANA プランニング ガイドの NetApp Cloud Volumes Service のデプロイ情報をご覧ください。
  • VM の管理とモニタリングの詳細については、SAP HANA 運用ガイドをご覧ください。