7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SAP ABAP Platform 1909, Developer Edition(dockerhub)をopenSUSE Leap 15.3(EC2)で起動してみる

Last updated at Posted at 2021-10-17

本記事ではSAP ABAP Platform 1909, Developer EditionSAPdockerhubに公開しているイメージを使い構築します。

ABAP Platform, Developer Edition

こちらのイメージを利用すれば、SAP? エンタープライズのすごいやつ? みたいにSAPにまったく触れてきていなかった人でもABAP開発環境を構築できます。
(ABAPはSAPで利用される開発言語)

ここで構築した環境を利用することでABAPのコードを実行してみたり、ABAP開発のあれこれを体験できます。

今まではABAPのトライアル環境といえば、Trials and Downloads - SAP Developer Centerからファイルをダウンロードして、ドキュメントを読みながらインストール作業と構築をしていく流れでしたが。

Dokerイメージで公開された事により、手順がだいぶ簡素になったように思います。

それにしても、あのSAPがDeveloperEditionをDockerで公開してくるというのは、なんとも時代の流れを感じます。

SAP Cloud Appliance Library (CAL)にも登録されている

2021年6月14日にSAP Cloud Appliance Library (CAL)にもSAP ABAP Platform 1909, Developer Editionが追加されています。

ですので今回紹介するDockerによる構築ではなくCALを利用してAWS、Azure、Google Cloudにデプロイする事も簡単にできるかと思います。

SAP Cloud Appliance Library (CAL)はSAPの様々な製品が登録されており、その登録されている製品を所有するパブリッククラウドアカウント(AWS、Azure、Google Cloud Platform)に対して手軽にデプロイできるサービスです。

## 各種Webサイト

事前準備

今回行う手順では下記が必要となるため事前に準備して下さい。

  • SAP P-User もしくは S-User の準備
  • DockerHubアカウント

SAP P-User もしくは S-User

上記サイトからSAPシステムに接続するクライントであるSAP GUIのダウンロード 及び トライアル環境のreadmeとライセンスを取得するためには、P-User もしくは S-Userと呼ばれるユーザIDが必要となります。

P-UserはSAP Communityから発行できるためこちらから発行して下さい。

SAP Communityにアクセスして、下記の赤枠の所から登録ができます。

image.png

所属している組織でS-Userを持っている人はそちらを使って下さい。 

DockerHubアカウント

DockerHubアカウントについてはdockerhubから登録できるためコチラから登録して下さい。

SAP GUI for Windows と Readme and Licensesのダウンロード

上記ページからABAP Platfrom 1909 Developer Edition on SAP HANA 2.0を探してSAP GUI for WindowsReadme and Licensesをダウンロードして下さい。

image.png

この2つのファイルが取得できればOKです。

image.png

※2021年10月現在、Readme and Licensesに含まれるライセンスは本手順では使えませんでした。
ですので、ライセンスキーについてはSAP License Keys for Preview, Evaluation and Developer Versionsから取得できるライセンスを利用しています。

Readme and Licensesを参照してみる。

ダウンロードしたReadme and Licensesにはreadme.pdfLicensesが含まれています。
まずはreadme.pdfを参照してみます。

結論を話すとreadme.pdfにある情報だけだと断片的で構築は完了しません。

pdf中にリンクの記載がありますが、Setup Instructionsが手順の詳細となりコチラを参照して構築していく形になります。(あとSAPコミュニティのブログに参考になるブログがいくつもある)

ハードウェア要件について

readmeを読むとハードウェア要件については Setup Instructionsを参照と書いてあるのでコチラを確認します。

現状は下記のようです。

  • Linux
    • 4 CPUs
    • 16GB RAM
    • 150GB Disk
  • Windows
    • 4 CPUs for Docker Desktop
    • 16GB for Docker Desktop
    • 170GB disk for Docker Desktop
  • macOS
    • 4 CPUs for Docker Desktop
    • 16GB for Docker Desktop
    • 170GB disk for Docker Desktop

今回はAWS EC2でインスタンスを用意して利用していきます。

Linuxディストリビューションについては特に記載はありませんが、SAPだったらSuSERed Hatかな? となんとなく思う所です。

コミュニティブログを読んでいると、下記のようなコメントを中の人がしていてopenSUSEで試してるっぽいので今回はopenSUSEを選択してみます。

We only tested it with 15.0.

I believe, at the time 7.52 SP04 was new, the latest version of openSUSE was 15.1 - with >which we DID have a problem - problem was solved when we reverted to 15.0 .

Therefore I recommend 15.0.

該当コメントへのリンク

今回構築する環境について

ローカルPCにSAP GUIのインストール

SAPシステムに接続するGUIクライアントとであるSAP GUI for Windowsのインストールについて記載すると記事が長くなるので別記事に分けます。

SAP GUI for Windowsをインストール。SAP Logonに接続エントリを追加してSAPシステムにログインしてみる

EC2インスタンスの準備

今回は下記、MarketPlaceにあるopenSUSE Leap 15.3のAMIを利用してEC2インスタンスを準備しました。

openSUSE Leap 15.3

PrivateIPアドレス 10.10.10.182
InstanceType t3.xlarge( vcpu 4;Memeory 16GiB)
EBS 150GiB(gp3)

※今回構築しているEC2インスタンスについては、Privateサブネットに配置し(NATでインターネットには出れる)にVPN経由でsshに接続しています。

SAP-ABAP

Setup InstructionsSAP GUI項目にABAPシステムの情報が記載されています。

SID A4H
Please, add a custom specified system with the Application Server or localhost if you exposed the port 3200 (i.e. -p 3200:3200) or vhcala4hci if you updated your hosts file. Finally use Instance 00 and SID A4H.
The user name is DEVELOPER with the password Ldtf5432.

SAP-HANA

Setup InstructionsSAP HANA Studio項目にHANADBの情報が記載されています。

今回はHANADBに直接接続しませんが、記載しておきます。

SAP HANA Studio
Please, use or localhost if you exposed the port 30213 (i.e. -p 30213:30213) or vhcala4hci if you updated your hosts file. Finally use Instance 02 and MDC (the port 30213).
For the database SYSTEMDB, use the user SYSTEM with the password Ldtf5432.
For the database HDB, use the user SAPA4H with the password Ldtf5432.

パッケージアップデートからdocker pullまで

今回利用したAMI openSUSE Leap 15.3 については最初からdockerがインストール済みの状態となります。(Docker version 20.10.6-ce, build 8728dd246c3a)

sshで構築したEC2インスタンスにアクセスして、パッケージアップデートからdocker pullまでを実施します。

openSUSEにsshでログインしてコマンド実行(ec2-user)
# とりあえずパッケージアップデート
sudo zypper update
# 自動起動設定
sudo systemctl enable docker
# dockerグループにec2-userを追加
sudo gpasswd -a ec2-user docker
# 設定反映させるため再起動
sudo reboot

# コマンド実行後ユーザ名とパスワード名を聞かれるのでdockerhubで取得したアカウントを入力
docker login
# ABAP Platform 1909 DevEdition を pull(かなり時間がかかります)
docker pull store/saplabs/abaptrial:1909

docker pullはかなり時間がかかりますが、気長に待ちましょう。

docker run コマンド調整

Setup InstructionsRun項目を読むとdocker runコマンドを実行するにあたっての諸注意が記載されています。

  • Linuxカーネルの制限チェックとオプション
  • -pオプション;ポートの調整
  • -agree-to-sap-licenseオプション

一つずつ解決していきます。

‎Linuxカーネルの制限チェック

Setup Instructions にはカネールパラメータについては下記のように記載されており、docker runに--sysctlをつけて対応するモノとhost自体のsysctlに設定する値の二種類があります。

カーネルの制限について
kernel.shmmax (allowed for docker run --sysctl) > 21474836480
kernel.shmmni (allowed for docker run --sysctl) > 32768
kernel.shmall (allowed for docker run --sysctl) > 5242880
kernel.msgmni (allowed for docker run --sysctl) > 1024
kernel.sem (allowed for docker run --sysctl) > 1250 256000 100 8192
Number of Opened File descriptors (RLIMIT_NOFILE, ulimit -n, docker run --ulimit nofile=1048576:1048576) > 1048576
vm.max_map_count (must be set on the host via sysctl on GNU/Linux) > 2147483647
fs.file-max (must be set on the host via sysctl on GNU/Linux) > 20000000
fs.aio-max-nr (must be set on the host via sysctl on GNU/Linux) > 18446744073709551615

must be set on the host via sysctl on GNU/Linuxと記載されている下記パラメータは/etc/sysctl.confに設定を行います。

/etc/sysctl.conf
vm.max_map_count=2147483647
fs.file-max=20000000
fs.aio-max-nr=18446744073709551615

残りのパラメータはdocker runにパラメータを渡すことにより調整します。

docker-runに追加するパラメータ
--sysctl kernel.shmmax=21474836480 --sysctl kernel.shmmni=32768 --sysctl kernel.shmall=5242880 --sysctl kernel.msgmni=1024 --sysctl kernel.sem="1250 256000 100 8192" --ulimit nofile=1048576:1048576
永続的に反映するために/etc/sysctl.confを編集
# vim で /etc/sysctl.confを編集して末尾に下記を追加
#vm.max_map_count=2147483647
#fs.file-max=20000000
#fs.aio-max-nr=18446744073709551615

sudo vim /etc/sysctl.conf

# 更新した/etc/sysctl.conf から読み込み
sudo sysctl -p

-agree-to-sap-licenseについて

docker run実行時にYou have to accept SAP Developer Center Software Developer License Agreement before you can conitue.とLicense Agreementに同意するかプロンプトでAcceptの入力を求められます。

-agree-to-sap-licenseをつけるとこの確認をバイパスする事ができます。

ポートの調整

docker runで公開するポートを調整します。

Setup Instructions にはポート30215について記述がありませんが、どうやら追加しないとHDBに接続できないらしいので追加しておきます。
本手順ではHANA Studioを利用してHANADBに直接アクセスしないのであまり関係ありませんが一応設定しておきます。

参考ブログ:SAP ABAP Platform 1909, Developer Edition, can't connect to HDB DB in Eclipse

SAP-Ports調整
#3200: SAPGUI Instance 00
#3300: RFC Instance 00
#8443: SAP Cloud Connector
#30213: SAP HANA MDC Database
#30215: SAP HANA HDB
#50000: AS ABAP HTTP
#50001: AS ABAP HTTPS

# docker runに追加するパラメータ
-p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 30215:30215 -p 50000:50000 -p 50001:50001

docker runコマンドを実行

最終的には下記のようなコマンドになりました。

docker-runコマンド
docker run \
--stop-timeout 3600 \
--sysctl kernel.shmmax=21474836480 \
--sysctl kernel.shmmni=32768 \
--sysctl kernel.shmall=5242880 \
--sysctl kernel.msgmni=1024 \
--sysctl kernel.sem="1250 256000 100 8192" \
--ulimit nofile=1048576:1048576 \
-p 3200:3200 \
-p 3300:3300 \
-p 8443:8443 \
-p 30213:30213 \
-p 30215:30215 \
-p 50000:50000 \
-p 50001:50001 \
-i --name a4h -h vhcala4hci store/saplabs/abaptrial:1909 \
-agree-to-sap-license

コマンドを実行すると最終的に画像のようなメッセージがでてくるため、こちらが表示されたら起動完了です。

image.png

SAP GUIで接続してみる

ローカル端末にインストールしたSAP GUIを起動して接続エントリを追加します。
本記事では利用した接続情報の紹介だけで、エントリの追加方法については別記事に分けます。

SAP GUI for Windowsをインストール。SAP Logonに接続エントリを追加してSAPシステムにログインしてみる

image.png

SAPシステムにログインしてみる

手順にあるよう、DEVELOPERユーザとそのパスワードでクライアント001にログインしてみます。

image.png

2021年10月にAWS上の構築した本環境ではLogon not possible(error in license check) と表示されログインできませんでした。
Logon not possible(error in license check) と表示されているのでライセンスがおかしい。

コミュニティブログのコメントで中の人がDEVELOPERと同様のパスワードでSAP*という特権ユーザでアクセスできると記載があったので試してみます。

SAP*はライセンス関係なくログインできる。なお一般的には通常ログインできないように調整されていたりします

image.png

SAP*CLI001にログインできました。

SLICENSEでライセンスの確認

左上の入力ボックス(コマンドフィールド)にslicenseと入力し実行します。

image.png

SAPシステムにインストールされているライセンス情報が表示されますが、どうやら本手順にてAWS上に構築した環境についてはハードウェアキーがインストールされているライセンスキーのハードウェアキーから変更になっていて、ライセンスが有効になっていないように見えます。

image.png

minisapでライセンスの取得

SAPのトライアル環境で利用するライセンスキーについては、下記サイトから取得できるためこちらからダウンロードを実施します。

SAP License Keys for Preview, Evaluation and Developer Versions

DescriptionA4H - SAP NetWeaver AS ABAP 7.4 and above (Linux / SAP HANA)を選択。
Hardware keyにはslicense画面で確認した、Active Hardware Keyを入力

必要情報を入力してことを確認してGenerateを選択

image.png

A4H_Multiple.txtというライセンスがダウンロードできました。

minisapで取得したライセンスファイルをdocker cpでコピー

現在、SAPシステムについてはdocker runで起動したままになっているかと思うので、sshで画面からCTRL-cで一旦停止します。

先程ローカルにダウンロードした、A4H_Multiple.txtをEC2上にコピーし、ホームディレクトリに配置します(scp等で)

image.png

docker-cpでライセンスファイルをコピー
docker cp ~/A4H_Multiple.txt a4h:/opt/sap/ASABAP_license

docker startで起動

docker-startで起動
docker start -ai a4h

#起動メッセージがでるまでしばらく待ちます

起動したらSAP GUIで接続し、DEVELOPERでログインします。

image.png

ログインできました。

修正後のslicenseを確認してみる

修正後のslicenseの画面を確認してみます。

image.png

ハードウェアキーとインストールされているライセンスのハードウェアキーが一致しており、ステータスもグリーンになっている事が確認できます。

また有効期限が2022.1.17となっているため3ヶ月後にはライセンスが切れます。

ライセンスが切れる間際にはまた、SAP License Keys for Preview, Evaluation and Developer Versionsからライセンスをダウンロードしてインストールして下さい。

docker runで表示されていたメッセージについて

docker runコマンドの実行時に表示されているメッセージについて流しましたが、あとから確認してみると実は色々と情報が含まれていました。

HDBのライセンスについては問題ない表示があったり
image.png

ABAPのライセンスについてはインストールされてないけど、/opt/sap/ABAP_licenseに格納されてるライセンスで差替は成功したと出ている。
image.png

が、もともとも/opt/sap/ABAP_licenseに格納されているライセンスを確認するとすでに期限が切れているしハードウェキーが異なっている。(下記のコマンドで、コンテナ内の/opt/sap/ASABAP_licenseを確認するとライセンスキーが違う事が確できます。)

/opt/sap/ASABAP_licenseを表示
docker exec -it a4h less /opt/sap/ASABAP_license

また下記ファイルにupdateしたログが残っており現行のハードウェキーが取得できました。

docker exec -it a4h /usr/local/bin/asabap_license_update

本手順ではSAP*でログインしてハードウェキーを確認していましたが、docker runの実行結果を注意深くみていればライセンスがおかしい事に気がつけたかもしれません。

今回構築したEC2の料金

24/365でずっと起動させてるケースで月額 $173 ほどかと思います。

参考:AWS Pricing Calculator - ABAP Platform Developer Edition On openSUSE 24/365稼働

土日を停止するだったり、日中のみ稼働する等に限定すれば更に金額お安くなるかと思います。
(平日に8時間稼働のケースだとだいたい月額 $42 ほど)

[参考AWS Pricing Calculator - ABAP Platform Developer Edition On openSUSE 平日8時間稼働]
(https://calculator.aws/#/estimate?id=38e661f245ae0bdf59a08cbdd8ac6a4381a39cba)

総評

構築にあたり、ライセンスの所に少し難はありました。

本手順ではABAP側のライセンスを調整して、HDB側のライセンスは問題なかったので特に処置はしませんでしたが、構築時期によってはHDB側のライセンスが失効してしまう事もあるのかも?
(今回利用したDockerイメージを2021-08-09以降に利用したらそんな事もあるかも)

ただし、これを加味してもわりとさっくりと環境構築は完了しました。
手軽にABAP開発環境が手に入るのはとても素晴らしい事かと思います。

なお、現状、SAP ABAP Platform 1909, Developer EditionについてはDockerイメージ以外ではSAP CALでしか提供していないように思います。

最近、Docker Desktopの有料化が始まりましたが、SAPからDockerイメージ以外での提供方法が今後増えるのかどうかが少し気になる所かと思います。

7
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?