はじめに
SAPのCloud Appliance Library(以降「CAL」と表記)は、素早くSAPの実行環境(アプライアンス)を構築できる非常に便利なサービスです。本記事では、CALで提供されている環境を使用し、SAPにおけるバージョンアップの方法を説明します。対応すべき内容が多いため、複数回に分けて記事にしていきます。
なお、本記事では、SAPの基本的な用語(トランザクションコード等)の説明は省略しています。そのため、ある程度SAPに慣れている方向けの内容となっていますので、ご了承ください。
また、記事内のNoteやプログラムダウンロード、SAP ONE Support Launchpadへのリンクは事前にSAP社との契約が必要になります。
プラットフォーム
本記事ではクラウドプラットフォームにAmazon Web Services(以降「AWS」と表記)を使用しています。そのためCALに加え、AWSが利用可能になっていることが前提になります。 AWS以外のプラットフォームを利用する場合は、該当する箇所を適宜そのサービスに置き換えてください。
システム構成とアップグレード概要
本記事でのアプライアンスの構成は以下の通りです。

アップグレードのターゲットは「SAP S/4 HANA 1909 FPS02」のアプライアンスで、このアプライアンスで動作しているSAPサーバに対し「SAP S/4 HANA 2021 FPS02」へのアップグレードを行います。アップグレードには「SAP Solution Manager」が必要となるので、そのアプライアンスも構成します。
作業全体像&今回の範囲
以下がバージョンアップ作業の全体像と、各項目の作業概要です。
Upgrade Guide for SAP S/4HANA 2021より抜粋。

Prepare Phase
- t1,2: Planning & System Requirements
- システム要件を確認します。
- 「SAP Readiness Check for SAP S/4 HANA upgrades」を実行して、考慮すべき問題と実行すべきアクティビティを特定します。
 
- t3: Maintenance Planner
- Maintenance Plannerを使用し、Software Update Manager(移行「SUM」と表記)がアップグレードに使用するファイルを生成します。
- SAP S/4 HANA とSolution ManagerとのRFC接続を作成します。
 
- t4: SI-Checks
- SI-Checkを実行します。
 
- t5: Custom Code Migration
- Custom Code Migration Toolを実行します。
 
Realize Phase
- t6: Software Update Manager (SUM)
- SUMを実行し、ソフトウェアアップグレードを行います。
 
- t7: Application-specific follow-on activities
- アプリケーション固有の手動アクティビティが必要であれば、実施します。
 ※この作業はSI-CheckおよびCustom Code Migration Toolによって特定されます。
 
- アプリケーション固有の手動アクティビティが必要であれば、実施します。
なお、今回の記事の範囲はバージョンアップ作業を行うための環境準備(t1作業の前)となります。
次回以降、バージョンアップ作業の解説に移っていきます。
環境の準備
- CALアプライアンスの作成
 AWSでIAMユーザを作成し、CALでアプライアンスを作成します。SAPジャパン公式ブログに具体的な手順が記載されていますので、こちらを参照し、作成します。
 作成時に選択すべき内容は下記です。下記に記載されていない項目は、自身で管理しやすい名称等で設定します。
 
 SAP S/4 HANA 1909 アプライアンス項目 内容 コメント 選択するソリューション SAP S/4HANA 1909 FPS02, Fully-Activated Appliance アップグレード元のバージョンは1909のため、こちらを指定します。 Account Details – Cloud Provider Amazon Web Services AWSを使用するため、こちらを指定します。 Instance Details – Region ap-northeast-1 ap-northeast-1リージョンでアプライアンスが提供されていない場合は選択できません。その場合は、なるべく距離の近いリージョンを選択します。 Solution Password * ここで設定したパスワードを利用してRDPでの接続やSAPへのログインに使用するため、忘れずに設定内容を控えます。 SAP Solution Manager アプライアンス 項目 内容 コメント 選択するソリューション Focused Build SP09 for SAP Solution Manager 7.2 最新のSPが適用されたバージョンが公開されると、旧SPのバージョンは表示されなくなるため、作業時点で表示されているものを選択します。 Account Details – Cloud Provider Amazon Web Services AWSを使用するため、こちらを指定します。 Instance Details – Region ap-northeast-1 ap-northeast-1リージョンでアプライアンスが提供されていない場合は選択できません。その場合は、なるべく距離の近いリージョンを選択します。 Solution Password * ここで設定したパスワードを利用してRDPでの接続やSAPへのログインに使用するため、忘れずに設定内容を控えます。 通常はブログの内容で作成可能ですが、アプライアンスの種類によってはAWSのEC2実行インスタンス数の上限を超えるケースがあります。その際は制限緩和リクエストが必要になります。方法についてはAWSのヘルプに具体的な手順が記載されています。 
 なお、アプライアンスの作成直後は、サーバ起動時にIPアドレスが毎回変更される設定になっています。
 IPアドレスが変更されると、都度、SAPへの接続申請が必要となってしまうため、アプライアンスの設定画面で「Public Static IP Address」にチェックを入れてIPアドレスを固定しておきます。
  
- SAProuterセットアップ
 Solution Managerを使用するうえで、SAPとのセキュア通信をセットアップする必要があり、通信方式を「SAProuterによるSNC」、もしくは「Internet VPN(IPSec)」のどちらかから選択する必要があります。今回はAWS VPNを使用しておらず、VPN環境はありませんので「SAProuterによるSNC」を選択します。SAProuterはSolution Managerアプライアンスのサーバにセットアップし、ここからSAPサポートに接続するよう設定していきます。- 接続申請
 通信にあたり、あらかじめ接続申請を行い、クライアント側からの接続元IPアドレスをSAP側で許可してもらう必要があります。- Solution Managerアプライアンスの情報画面を開き、接続に必要となるサーバのExternal IP Addressを控えます。
  
- SAP へ接続申請します。申請の送付方法としては下記がありますが、今回はインシデントの登録を選択します。
 ・インシデントの登録
 ・メール
 ・紙媒体での郵送
- Support Portalから、インシデントを登録します。
 表題: わかりやすい内容であれば問題ありません。
 説明:SAP Note28976を参考に必要事項を記載します。
 IP addressは前項で控えた情報を記載し、Host Nameは初期状態で「sid-s4h-hdb」になっています。
 カテゴリ: 製品コンポーネントで「XX-SER-NET-NEW」を指定します。
  
 必要事項の記載例:
 Company: Sample Co., Ltd. 
 Customer no.: 123456
 Incident no. (1): 123456789012345678901234
 Contact person network: 123-4567 1-1-1, Sample, Shinjuku-ku, Tokyo JP
 Phone: +81-0123456789
 Cell phone: +81-0123456789
 Fax: +81-0123456780
 E-mail: user1@sample.co.jpInformation about the requested Internet connection (2): 
 
 (@) SAProuter / SNC via Internet
 ( ) Internet VPN (IPSec)
 IP address of VPN gateway: _________________________________
 Type of VPN Gateway (name/model): __________________________
 
 Information about the machine with SAProuter (3):
 
 IP address of the SAProuter computer (*): 1.2.3.4
 Host name of the SAProuter computer (*): sid-s4h-hdb
 [Host name is restricted to 16 characters]
 (*) This information is mandatory!
 
- 申請後、翌日~数日以内にインシデントの返信で接続先情報やセットアップ方法が案内されます。
 
- Solution Managerアプライアンスの情報画面を開き、接続に必要となるサーバのExternal IP Addressを控えます。
- 通信許可設定
 SAPアプライアンス作成直後はクラウドサービス側で通信ポートが制限されているため、SAProuterの通信を許可する必要があります。通信ポートの制限自体はAWS側ものですが、CALからサーバ起動停止時に設定を上書きする挙動となるため、CAL側で設定を行います。- Solution Managerアプライアンスの情報画面を開き、「Edit」を押して編集可能にしたら、「Access Points」で「Solution Manager」のTCP/3299ポートを追加します。
 変更後、画面下部の「Save」をクリックします。
  
 
- Solution Managerアプライアンスの情報画面を開き、「Edit」を押して編集可能にしたら、「Access Points」で「Solution Manager」のTCP/3299ポートを追加します。
- Linuxパーソナルファイアウォール設定
 アプライアンスのサーバのパーソナルファイアウォールは自動起動が無効になっています。有効になっている場合、そのままでは通信ができないため、念のため確認します。- Solution ManagerサーバへSSH接続します。
 接続時ユーザ: root
 接続パスワード: Solution Managerアプライアンス作成の際、Private Key作成時に指定したパスワード
 キーファイル: Solution Managerアプライアンス作成の際、ダウンロードしたキーファイル
- firewalldの状態を確認します。「Loaded」が「disabled」になっており、「Active」が「inactive (dead)」になっているはずです。
 # systemctl status firewalld
  
 
- Solution ManagerサーバへSSH接続します。
- Linuxユーザ設定
 SAProuterを実行するユーザ(srtadm)をサーバのOS上に作成します。ほかのSAP関連ユーザが所属するグループ(sapsys,sapinst)にも追加します。- ユーザを作成します。
 # useradd srtadm -g -sapsys -G sapsys,sapinst -c “SAProuter Administrator” -p {Solution Password}
- ユーザが作成されていることを確認します。
 # cat /etc/passwd | grep srtadm
 # cat /etc/group | grep srtadm
  
 
- ユーザを作成します。
- Linux環境変数設定
 SAProuer実行の前提となる環境変数を設定します。- 「/etc/pforile」をviエディタで開きます。
 # vi /etc/profile
- 「i」キーで入力モードに変更して、末尾に下記の記述を追加します。
 export LIBPATH=/usr/sap/saprouter
 export SECUDIR=/usr/sap/saprouter
 export SNC_LIB=/usr/sap/saprouter/libsapcrypto.so
- コマンドモードに戻り、保存してviエディタを終了します。
 「Esc」キーを押し、コマンドモードに変更します。
 :wと入力し、保存します。
 :qと入力し、viエディタを終了します。
  
 
- 「/etc/pforile」をviエディタで開きます。
- ファイルのダウンロード
 必要なファイル(SAProuter/認証ファイル/認証ファイル)をダウンロードします。
 本記事に記述のものより上位のパッチレベルのものが公開されている場合は、最新のものを選択してください。- ブラウザでSAPソフトウェアダウンロードにアクセスします。
- 「サポートパッケージおよびパッチ」→「アルファベット順の索引 (A-Z)」→「S」→「SAPROUTER」→「SAPROUTER 7.53」と辿り、
 OSで「Linux ON X86_64 64BIT」を選択して「saprouter_1031-80003478.sar」をダウンロードします。
- 「サポートパッケージおよびパッチ」→「アルファベット順の索引 (A-Z)」→「S」→「SAPCRYPTOLIB」→「SAPCRYPTOLIB 8」と辿り、
 OSで「Linux ON X86_64 64BIT」を選択して最新の「SAPCRYPTOLIBP_8546-20011697.SAR」をダウンロードします。
- 「サポートパッケージおよびパッチ」→「アルファベット順の索引 (A-Z)」→「S」→「SAPCAR」→「SAPCAR 7.22」と辿り、
 OSで「Linux ON X86_64 64BIT」を選択して「SAPCAR_1115-70006178.EXE」をダウンロードします。
 ダウンロード後、OSで「Windows ON X64 64BIT」を選択して「SAPCAR_1115-70006231.EXE」をダウンロードします。
- ブラウザでSAP ONE Support Launchpad – SAPRouter Certificateにアクセスします。
- SAPRouter名の一覧から、接続申請で記載したHost Nameを選択し、「PSE作成」をクリックします。
- 「PSEのパスワード」を設定し、その下の「PSE生成」をクリックします。
 PSEパスワードは、後程必要になるため内容を控えておきます。
- 「PSEダウンロード」が表示されるので、証明書ファイル(sid-a4h-hdb.zip)をダウンロードします。
  
 
- ファイルの解凍
 ダウンロードしたファイルを解凍します。- コマンドプロンプトを起動し、下記コマンドを実行します。
 > {ダウンロード先}\SAPCAR_1115-70006178.EXE -xvf {ダウンロード先}\saprouter_1031-80003478.sar
- 続けて下記コマンドを実行します。
 > {ダウンロード先}\SAPCAR_1115-70006178.EXE -xvf {ダウンロード先}\SAPCRYPTOLIBP_8546-20011697.SAR
  
- 解凍されたファイルは、ユーザのプロファイルフォルダ直下に格納されていますので、必要に応じて退避しておきます。
- ダウンロードした証明書ファイルはzip形式で圧縮されているので、解凍しておきます。
 
- コマンドプロンプトを起動し、下記コマンドを実行します。
- ファイルの配置
 ファイルをサーバ上の所定のディレクトリに配置します。- Solution Managerサーバ上でディレクトリを作成します。
 # mkdir /usr/sap/saprouter
- saprouterディレクトリの所有者を変更します。
 # chown srtadm:sapsys /usr/sap/saprouter
- 前項で解凍したファイルをすべて/usr/sap/saprouterディレクトリに転送します。
 ※画像はteratermでのSCPファイル転送の例です。
  
- プログラム(saprouter,niping,sapgenpse)に実行権限を付与します。
 # chmod u+x /usr/sap/saprouter/saprouter
 # chmod u+x /usr/sap/saprouter/niping
 # chmod u+x /usr/sap/saprouter/sapgenpse
- 転送したファイルの所有者を変更します。
 # chown srtadm:sapsys /usr/sap/saprouter/*
- Solution Managerサーバ上で、「sid-a4h-hdb.pse」ファイルを「local.pse」にリネームします。
 # mv /usr/sap/saprouter/sid-a4h-hdb.pse /usr/sap/saprouter/local.pse
- ファイルにとアクセス権が設定されていることを確認します。
 ls -l /usr/sap/saprouter
  
 
- Solution Managerサーバ上でディレクトリを作成します。
- 証明書ファイル作成
 証明書ファイルを作成します。- sapgenpseプログラムを実行し、資格証明ファイル(cred_v2)を作成します。
 # /usr/sap/saprouter/sapgenpse seclogin -p local.pse -x {pseファイル生成時のパスワード} -O srtadm
  
- 「cred_v2」ファイルのアクセス権を所有者読み取りのみに変更します。
 # chmod 400 /usr/sap/saprouter/cred_v2
- 「cred_v2」ファイルの所有者を「srtadm」に変更します。
 # chown srtadm:sapsys /usr/sap/saprouter/cred_v2
- 「srtadm」ユーザに切り替え、証明書ファイルが資格証明ファイルにインポートされたことを確認します。
 # su – srtadm
 # /usr/sap/saprouter/sapgenpse get_my_name -v -n Issuer
 実行結果を確認し、「Issuser」が「CN=SAProuter CA, OU=SAProuter, O=SAP Trust Community II, C=DE」となっていれば問題ありません。
  
 
- sapgenpseプログラムを実行し、資格証明ファイル(cred_v2)を作成します。
- アクセス許可テーブル作成
 saprouter実行時に必要となるアクセス許可テーブルファイル(saprouttab)を作成します。
 srtadmユーザで作成します。- saprouttabファイルをviエディタで作成します。
 > vi /usr/sap/saprouter/saprouttab
- 接続申請の案内にアクセス許可テーブルのサンプルがあるため、「i」キーで入力モードに変更して内容を転記します。
- コマンドモードに戻り、保存してviエディタを終了します。
 「Esc」キーを押し、コマンドモードに変更します。
 :wと入力し、保存します。
 :qと入力し、viエディタを終了します。
  
 
- saprouttabファイルをviエディタで作成します。
- 接続テスト
 テスト用プログラムを使用し、SAPRouterを介したSAP側との通信確認を行います。- saprouterを起動します。
 > /usr/sap/saprouter/saprouter -r -K -R /usr/sap/saprouter/saprouttab
  
- saprouterプログラムが起動するため、新たなターミナルでSolution Managerに接続します。
- テストプログラムを起動し、接続確認します。
 # /usr/sap/saprouter/niping -c -H /H/{Solution Managerサーバの内部IPアドレス}/H/{接続申請で案内された接続先IPアドレス}/H/localhost
 実行結果に「connect to serve o.k.」と表示されていれば問題ありません。
  
- saprouterプログラムを停止します。
 > /usr/sap/saprouter/saprouter -s
 停止操作をしたコンソール
  
 saprouterを実行していたコンソール
  
 
 
- saprouterを起動します。
- SAProuter自動開始の設定
 サーバ起動時にSAProuterが自動で開始されるよう、設定します。- 起動用のスクリプト「/usr/sap/saprouter/sr_start.sh」をviエディタで作成します。
 > vi /usr/sap/saprouter/sr_start.sh
- 「i」キーで入力モードに変更して下記を転記します。
 
 #!/bin/sh 
 
 LIBPATH=/usr/sap/saprouter; export LIBPATH
 SECUDIR=/usr/sap/saprouter; export SECUDIR
 SNC_LIB=/usr/sap/saprouter/libsapcrypto.so; export SNC_LIB
 
 /usr/sap/saprouter/saprouter -r -K -S 3299 -G saprouter.log -R/usr/sap/saprouter/saprouttab
 
- 「Esc」キーを押し、コマンドモードに変更します。
 :wと入力し、保存します。
 :qと入力し、viエディタを終了します。
- 作成したスクリプトに実行権限を付与します。
 > chmod u+x /usr/sap/saprouter/sr_start.sh
- rootユーザに切り替えます。
 > exit
- systemdへ登録するserviceファイルをviエディタで作成します。
 # vi /etc/systemd/system/saprouter.service
- 「i」キーで入力モードに変更して下記を転記します。
 
 [Unit] 
 Description=SAPRouter Service
 After=network.target
 
 [Service]
 Type=simple
 WorkingDirectory=/usr/sap/saprouter
 
 User=srtadm
 Group=sapsys
 
 Environment=”SECUDIR=/usr/sap/saprouter” “SNC_LIB=/usr/sap/saprouter/libsapcrypto.so” “LIBPATH=/usr/sap/saprouter”
 ExecStart=/usr/sap/saprouter/sr_start.sh
 ExecStop=/usr/sap/saprouter/saprouter -s
 ExecReload=/usr/sap/saprouter/saprouter -n
 
 Restart=on-failure
 
 [Install]
 WantedBy=multi-user.target
 
- 「Esc」キーを押し、コマンドモードに変更します。
 :wと入力し、保存します。
 :qと入力し、viエディタを終了します。
- saprouterの自動起動を有効化します。
 # systemctl enable saprouter
- saprouterサービスを起動します。
 # systemctl start saprouter
- 有効化されていることを確認します。
 > systemctl status saprouter
 「Loaded」が「enabled」になっており、「Active」が「active(running)」になっていれば問題ありません。
  
- CALの管理画面から、Solution Managerアプライアンスを再起動した後に、再度接続テストを行います。
 # /usr/sap/saprouter/niping -c -H /H/{Solution Managerサーバの内部IPアドレス}/H/{接続申請で案内された接続先IPアドレス}/H/localhost
 実行結果に「connect to serve o.k.」と表示されていれば問題ありません。
 
- 起動用のスクリプト「/usr/sap/saprouter/sr_start.sh」をviエディタで作成します。
 
- 接続申請
これで、環境の初期構成ができました。
おわりに
今回の記事はここまでです。次回以降、各アプライアンスの設定や、アップグレードの工程に入っていきます。
関連リンク
SAP S/4 HANA
 >アップグレードに関するドキュメントは「Conversion & Upgrade Assets」にまとめられています。
Upgrade Guide for SAP S/4HANA 2021
SAP Solution Manager ナレッジトランスファー
SAP ONE Support Launchpad – SAPRouter Certificate
執筆者プロフィール

- tdi ITコンサルティング部
- 
システムリプレースや運用、ヘルプデスクなど、多様な業務を経験してきた
 インフラエンジニアです。
 いまはSAP BASIS領域のスキルアップに向けて精進する日々、新たな気付きを楽しみに、毎日を大切にしてます。
この執筆者の最新記事
 ERP2023年4月12日SAP移送依頼のリリースとインポート ERP2023年4月12日SAP移送依頼のリリースとインポート
 ERP2023年1月16日Cloud Appliance Library上のSAPバージョンアップ(第一回) ERP2023年1月16日Cloud Appliance Library上のSAPバージョンアップ(第一回)
 
			
 
                             
                            