📈

Azure Center for SAP Solutions (ACSS) を使って SAP on Azure の展開

2024/06/10に公開

Azure Center for SAP Solutions (ACSS) は、SAP システムを Azure で展開するためのベストプラクティスを提供するサービスです。
SAP システムをマネージド化するものではないものの、SAP のワークロードを Azure で管理しやすくすることに特化したソリューションです。

  • 新規作成時の OS/ディスクのセットアップ (OS 内の設定には Ansible を使用)
  • SAP ワークロードに特化した管理エクスペリエンスの提供

ご利用いただくに当たり、このソリューション自体の追加費用は掛かりません (SLA についても設けられていません)。
また、現時点で日本国内では東日本リージョンでご利用いただけます。

ご参考; Azure Center for SAP solutions に関する一般的な質問

既存の SAP on Azure ワークロードも登録が行えますが、今回は以下の流れで新規構築していきたいと思います。

  1. ACSS の展開を行うネットワークインフラストラクチャーの構築
  2. ACSS インフラストラクチャーの展開
  3. SAP インストールメディアの準備
  4. SAP インストール

1. ACSS の展開を行うネットワークインフラストラクチャーの構築

マネージドサービスではないので、インフラストラクチャ-を構築していくところは、

仮想マシンを用いたサービスの構築と変わりありません。

まずは、仮想ネットワーク/サブネットを構築します。

リソース (リソース名) リージョン アドレス空間
VNet (labacssvnet) East Asia 10.23.0.0/22
サブネット (app) 10.23.0.0/24
サブネット (db) 10.23.1.0/24

また、後に ACSS の展開で "高可用性 (HA) を備えた分散" を選択しますが、内部 Standard ロードバランサーが用いられます。

内部 Standard ロードバランサーの背後にある仮想マシンはインターネットに対して外部通信が行えないため、NAT ゲートウェイを構築します。
構築時に上記2つのサブネットに紐づけます。

alt text

これでネットワークインフラストラクチャーの構築が完了です。

その他下記ドキュメントでは Azure Firewall を用いた構成例についてはドキュメントに記載がありますので、ご参考ください。

ご参考; ネットワーク構成の例 - インフラストラクチャのデプロイ用にネットワークを準備する

2. ACSS インフラストラクチャーの展開

ネットワークインフラストラクチャーが構築できたら、ACSS の展開を行います。

参考; Azure Center for SAP solutions を使用した S/4HANA インフラストラクチャのデプロイ

Azure ポータルの検索バーに "Azure Center for SAP solutions" と入力し、サービスを選択します。

次いで、"Create a new SAP system" を選択します。

alt text

ここで入力する SID (SAP System ID) は、システムを一意に識別するための ID です。

デプロイの種類として、単一サーバー (ASCS および AP / DB サーバーが一緒) か、分散 (ASCS および AP / DB サーバーが分離),高可用性 (ASCS, AP, DB サーバーがそれぞれ複数台) が選択できます。

alt text

ネットワークインフラストラクチャーの構築で作成した仮想ネットワークとサブネットを選択します。

alt text

全ての仮想マシンより参照されるトランスポートディレクトリとして、ストレージ アカウントを作成します。
これにより各仮想マシンからは Azure Files が NFS マウントされ参照されます。

alt text

alt text

alt text

次に仮想マシンの構成を行います。

仮想マシンサイズに用いられる指標が SAP のワークロードの評価に用いられる SAPS になります。

この値と、HANA データベースに用いるメモリサイズを入力し、推奨値を作成を選択いただくと、自動的に仮想マシンサイズを選択してくれます。

alt text

また、HANA データベースの仮想マシンについて、ディスクおよびディレクトリ構成を設定できます。

alt text

alt text

最後に、デプロイされるリソースのビューが表示されます。

現時点のところ、近接配置グループの構成は実施されていない状況になります。

alt text

これで仮想マシン/ロードバランサーの展開ができました。

なお、仮想マシンで実行された設定 (Ansible の実行ログ) は、ACSS の展開時に作られたストレージ アカウント (リソースグループ mrg-SID-xxxxxx に作成) に格納されています。

alt text

logs-os-configuration-xxxxxx.txt には、パッケージの更新や、
カーネルパラメータ、swap の設定など OS の設定に関するログが格納されています。

=============================================================================== 
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: SLES_SAP-15 - 155.75s
/tmp/82f6e6d3/ansible/roles-os/1.4-packages/tasks/main.yaml:166 ---------------
roles-os/1.1-swap : Swap reboot --------------------------------------- 111.53s
/tmp/82f6e6d3/ansible/roles-os/1.1-swap/tasks/main.yaml:70 --------------------
roles-os/1.9-kernelparameters : 1.9 Kernel parameters - Set relevant kernel parameters -- 27.51s
/tmp/82f6e6d3/ansible/roles-os/1.9-kernelparameters/tasks/main.yaml:72 --------
roles-os/1.16-services : 1.16 - Populate service facts : SLES_SAP-15 ---- 6.46s
/tmp/82f6e6d3/ansible/roles-os/1.16-services/tasks/main.yaml:26 ---------------
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: sles_sap15.4 --- 5.33s
/tmp/82f6e6d3/ansible/roles-os/1.4-packages/tasks/main.yaml:211 ---------------
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: SLES_SAP-15 hana --- 5.21s
/tmp/82f6e6d3/ansible/roles-os/1.4-packages/tasks/main.yaml:258 ---------------
roles-os/1.4-packages : 1.4 Packages - Activate public cloud extension (15) --- 4.32s
/tmp/82f6e6d3/ansible/roles-os/1.4-packages/tasks/main.yaml:87 ----------------
Gathering Facts --------------------------------------------------------- 3.63s
/tmp/82f6e6d3/ansible/playbook_01_os_base_config.yaml:46 ----------------------
roles-os/1.1-swap : 1.1 Swap: - Ensure waagent file is configured with proper parameters --- 3.41s
/tmp/82f6e6d3/ansible/roles-os/1.1-swap/tasks/main.yaml:45 --------------------
roles-os/1.7-chrony : 1.7 chrony: - Collect facts about installed packages --- 2.55s
/tmp/82f6e6d3/ansible/roles-os/1.7-chrony/tasks/main.yml:26 -------------------
roles-os/1.11-accounts : 1.11 Accounts - Create specified admin groups if needed tier: os --- 2.30s
/tmp/82f6e6d3/ansible/roles-os/1.11-accounts/tasks/main.yml:27 ----------------
roles-os/1.16-services : 1.16 - Disable Services : SLES_SAP-15 ---------- 2.01s
/tmp/82f6e6d3/ansible/roles-os/1.16-services/tasks/main.yaml:83 ---------------
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: sles_sap15.4 hana --- 1.82s
/tmp/82f6e6d3/ansible/roles-os/1.4-packages/tasks/main.yaml:304 ---------------
roles-os/1.13-MOTD : 1.13 MOTD: - Update motd banners ------------------- 1.70s
/tmp/82f6e6d3/ansible/roles-os/1.13-MOTD/tasks/main.yaml:43 -------------------
roles-os/1.7-chrony : 1.7 chrony: - Ensure chronyd service is enabled --- 1.43s
/tmp/82f6e6d3/ansible/roles-os/1.7-chrony/tasks/main.yml:187 ------------------
OS configuration playbook: - Ensure jmespath is installed in the playbook python --- 1.36s
/tmp/82f6e6d3/ansible/playbook_01_os_base_config.yaml:14 ----------------------
roles-os/1.3-repository : 1.3 Repository - Check connect to SUSE repos via SUSEConnect --- 1.35s
/tmp/82f6e6d3/ansible/roles-os/1.3-repository/tasks/main.yml:50 ---------------
roles-os/1.13-MOTD : 1.13 MOTD: - Update issue banners ------------------ 1.34s
/tmp/82f6e6d3/ansible/roles-os/1.13-MOTD/tasks/main.yaml:52 -------------------
roles-os/1.13-MOTD : 1.13 MOTD: - Update issue.net banners -------------- 1.32s
/tmp/82f6e6d3/ansible/roles-os/1.13-MOTD/tasks/main.yaml:61 -------------------
Gathering Facts --------------------------------------------------------- 1.27s
/tmp/82f6e6d3/ansible/playbook_01_os_base_config.yaml:7 -----------------------

logs-sap-os-configuration-xxxxxx.txt には、ディスク/ファイルシステムの構成や

先のトランスポートディレクトリの NFS マウントが行われています。

=============================================================================== 
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: SLES_SAP-15 --- 9.89s
/tmp/3995e180/ansible/roles-os/1.4-packages/tasks/main.yaml:166 ---------------
roles-os/1.5-disk-setup : 1.5 Disk setup - Filesystem creation ---------- 9.51s
/tmp/3995e180/ansible/roles-os/1.5-disk-setup/tasks/main.yml:148 --------------
roles-os/1.5-disk-setup : 1.5 Disk setup - Volume Group creation -------- 5.27s
/tmp/3995e180/ansible/roles-os/1.5-disk-setup/tasks/main.yml:89 ---------------
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: SLES_SAP-15 scs --- 5.10s
/tmp/3995e180/ansible/roles-os/1.4-packages/tasks/main.yaml:258 ---------------
roles-os/1.5-disk-setup : 1.5 Disk setup - Logical Volume creation ------ 4.55s
/tmp/3995e180/ansible/roles-os/1.5-disk-setup/tasks/main.yml:118 --------------
roles-os/1.16-services : 1.16 - Populate service facts : SLES_SAP-15 ---- 3.30s
/tmp/3995e180/ansible/roles-os/1.16-services/tasks/main.yaml:26 ---------------
roles-os/1.9-kernelparameters : 1.9 Kernel parameters - Set relevant kernel parameters --- 3.08s
/tmp/3995e180/ansible/roles-os/1.9-kernelparameters/tasks/main.yaml:72 --------
SAP OS configuration playbook: - Retrieve Subscription ID, Resource Group Name and Virtual Machine name --- 1.97s
/tmp/3995e180/ansible/playbook_02_os_sap_specific_config.yaml:100 -------------
Gathering Facts --------------------------------------------------------- 1.82s
/tmp/3995e180/ansible/playbook_02_os_sap_specific_config.yaml:55 --------------
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: sles_sap15.4 scs --- 1.66s
/tmp/3995e180/ansible/roles-os/1.4-packages/tasks/main.yaml:304 ---------------
roles-sap-os/2.6-sap-mounts : AFS Mount: sapmnt/YO1 HA ------------------ 1.65s
/tmp/3995e180/ansible/roles-sap-os/2.6-sap-mounts/tasks/2.6.0-afs-mounts.yaml:306 
roles-os/1.4-packages : 1.4 Packages: - Update OS packages: sles_sap15.4 --- 1.65s
/tmp/3995e180/ansible/roles-os/1.4-packages/tasks/main.yaml:211 ---------------
roles-sap-os/2.6-sap-mounts : AFS Mount: Create SAP Directories (AFS) --- 1.62s
/tmp/3995e180/ansible/roles-sap-os/2.6-sap-mounts/tasks/2.6.0-afs-mounts.yaml:91 
roles-sap-os/2.5-sap-users : 2.5 SAP Users: - Create SAP Groups --------- 1.60s
/tmp/3995e180/ansible/roles-sap-os/2.5-sap-users/tasks/main.yaml:34 -----------
roles-sap-os/2.6-sap-mounts : AFS Mount: Create SAP Directories (scs & ers) --- 1.57s
/tmp/3995e180/ansible/roles-sap-os/2.6-sap-mounts/tasks/2.6.0-afs-mounts.yaml:206 
roles-sap-os/2.6-sap-mounts : AFS Mount: Delete locally created SAP Directories (sapmnt) --- 1.43s
/tmp/3995e180/ansible/roles-sap-os/2.6-sap-mounts/tasks/2.6.0-afs-mounts.yaml:119 
roles-sap-os/2.4-hosts-file : 2.4 Hosts: - Write unique lines back to /etc/hosts --- 1.34s
/tmp/3995e180/ansible/roles-sap-os/2.4-hosts-file/tasks/main.yaml:161 ---------
roles-sap-os/2.3-sap-exports : 2.3 SAP Exports: - NFS Server Config on Suse (install) --- 1.25s
/tmp/3995e180/ansible/roles-sap-os/2.3-sap-exports/tasks/main.yaml:54 ---------
OS configuration playbook: - Ensure jmespath is installed in the playbook python --- 1.23s
/tmp/3995e180/ansible/playbook_02_os_sap_specific_config.yaml:16 --------------
roles-os/1.3-repository : 1.3 Repository - Check connect to SUSE repos via SUSEConnect --- 1.20s
/tmp/3995e180/ansible/roles-os/1.3-repository/tasks/main.yml:50 ---------------

3. SAP インストールメディアの準備

次に SAP インストールメディアの準備を行います。

参考; SAP HANA インストールメディアのダウンロード

上記ドキュメントでは、Ubuntu 仮想マシンを立て、ストレージ アカウントにソフトウェア等のダウンロードを行っていますが、

環境作れればどちらでも大丈夫です。

ドキュメントの通りですが、2点注意があります。

1つ目は、ansible-core でドキュメントに指定されているバージョンでは後続のパッケージのインストールに失敗するため、

以下のようにバージョンの指定はせず、インストールしています。
(標準出力の結果などは割愛)

azureuser@installer:~$ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
azureuser@installer:~$ az login
azureuser@installer:~$ sudo apt install python3-pip
azureuser@installer:~$ sudo pip3 install ansible-core
azureuser@installer:~$ sudo ansible-galaxy collection install ansible.netcommon:==5.0.0 -p /opt/ansible/collections
azureuser@installer:~$ sudo ansible-galaxy collection install ansible.posix:==1.5.1 -p /opt/ansible/collections
azureuser@installer:~$ sudo ansible-galaxy collection install ansible.utils:==2.9.0 -p /opt/ansible/collections
azureuser@installer:~$ sudo ansible-galaxy collection install ansible.windows:==1.13.0 -p /opt/ansible/collections
azureuser@installer:~$ sudo ansible-galaxy collection install community.general:==6.4.0 -p /opt/ansible/collections

azureuser@installer:~$ git clone https://github.com/Azure/SAP-automation-samples.git
azureuser@installer:~$ git clone https://github.com/Azure/sap-automation.git

もう1つは、BOM (部品表) 名がドキュメントの記載より更新されている可能性があるため、

SAP-automation-samples を参照して予め確認する必要があります (下記例では、S4HANA_2021_ISS_v0003ms)。

azureuser@installer:~$ cd sap-automation/
azureuser@installer:~/sap-automation$ export bom_base_name="S4HANA_2021_ISS_v0003ms"
azureuser@installer:~/sap-automation$ export s_user="<S ユーザーアカウント>"
azureuser@installer:~/sap-automation$ export s_password='<S ユーザーパスワード'
azureuser@installer:~/sap-automation$ export storage_account_access_key="<ストレージ アカウントキー>"
azureuser@installer:~/sap-automation$ export sapbits_location_base_path="https://<ストレージ アカウント名>.blob.core.windows.net/sapbits"
azureuser@installer:~/sap-automation$ export BOM_directory="/home/azureuser/SAP-automation-samples/SAP"
azureuser@installer:~/sap-automation$ export orchestration_ansible_user="azureuser"
azureuser@installer:~/sap-automation$ export playbook_path="/home/azureuser/sap-automation/deploy/ansible/playbook_bom_downloader.yaml"
azureuser@installer:~/sap-automation$ sudo ansible-playbook ${playbook_path} -e "bom_base_name=${bom_base_name}" -e "deployer_kv_name=dummy_value" -e "s_user=${s_user}" -e "s_password=${s_password}" -e "sapbits_access_key=${storage_account_access_key}" -e "sapbits_location_base_path=${sapbits_location_base_path}" -e "BOM_directory=${BOM_directory}" -e "orchestration_ansible_user=${orchestration_ansible_user}"(省略)...


PLAY RECAP ****************************************************************************************************************************
localhost                  : ok=674  changed=25   unreachable=0    failed=0    skipped=2238 rescued=0    ignored=4   

azureuser@installer:~$ 

タスクが完了すると、以下のように archives には SAP のダウンロードサイトより取得したアーカイブファイル等が格納され、

boms 配下には、SAP-automation-samples より取得したインストール時のテンプレートファイルが格納されます。

alt text

alt text

alt text

まとめ

Azure Center for SAP Solutions (ACSS) を用いた SAP on Azure の展開について、以下の点をご紹介してみました。

  1. ACSS の展開を行うネットワークインフラストラクチャーの構築
  2. ACSS インフラストラクチャーの展開
  3. SAP インストールメディアの準備

次回、"4. SAP インストール" を確認していきます。

GitHubで編集を提案
Microsoft (有志)

Discussion