ABAP Platform, Developer EditionとAWS OpenSUSE+Dockerで、個人開発環境を構築した記録
- ABAP Platform, Developer EditionをAWSのEC2で構築することができ、個人用のOn-premise ABAP環境が得られた。
- OSとしてSUSE Linuxを採用することで、環境設定や構築の手間はかなり省略することが可能であることが確認できた。
事前準備が必要なもの
SAP.com、Docker、AWSのアカウントと、Putty、7-Zipのインストールが必要です。取得方法やインストール方法について、本記事では触れません。
事前準備が必要なもの | 必要な場面 |
---|---|
SAP.comのアカウント | AS ABAPとHDBのライセンスファイルを入手するのに必要 |
Docker Hubのアカウント | インストールファイルをAWSのEC2にhub.docker.comからPullしてくるのに必要 |
AWSのアカウント | EC2にSUSE Linuxのサーバーを作成するのに必要 |
PuTTyのインストール | EC2の操作、ライセンスファイルのファイル転送用 |
7-Zip等 | ライセンスファイル、readmeファイルの解凍用 |
事前準備が必要ないもの
- ローカルPCのディスク空きの確保
- ローカルPCにはテキストファイル&PDFをダウンロードするだけです。ディスクサイズを気にする必要はほとんどの場合ないはずです。
仕様一覧
AWS EC2
残念ながら、無料の範疇にはありません。アタッチしたボリュームサイズは多すぎたかもしれません。
仕様 | 詳細 |
---|---|
AMI名 | SUSE Linux Enterprise Server for SAP Applications 15 SP2 |
OS | SUSE Linux Enterprise Server 15 SP2 |
インスタンスタイプ | t2.xlarge |
アタッチしたボリュームサイズ | 200GB |
vCPUの数 | 4 |
リージョン | ap-northeast-1 |
Docker
Dockerは無料のPlanで問題ありません。
仕様 | 詳細 |
---|---|
Plan | Free Plan |
必要なハードウェアのスペック
Linuxの場合です。AWS EC2のインスタンスタイプを選ぶ基準となります。
- 4 CPUs
- 16GB RAM
- 150GB Disk
手順概要
大まかな手順の概要は以下の通りです。
-
ReadmeとLicenseのファイルをローカルPCにダウンロードする。
https://developers.sap.com/trials-downloads.html?search=ABAP+Platform
必要なもの:SAPのアカウント -
ReadMeに記載のHardware Requirementに記載のスペックで、AWSのEC2のインスタンスを起動(作成)する。OSはSUSE Linuxを用いる。必要なCPU数のインスタンスタイプを選び、ストレージをアタッチする。
必要なもの:AWSのアカウント -
EC2のインスタンスにSSHログインし、Dockerをインストールの上、pullする。
必要なもの:Dockerのアカウント
4.Dockerのコンテナにライセンスファイルを格納する。
5.hostsファイルに記載を追加する。
1. ReadMeとLicenseのファイルをローカルPCにダウンロードする
1-1. SAP Developers
SAP DevelopersのTrials and Downloadsにて検索文字列ABAP Platform
で検索するか、以下のURLにアクセスすると、 ABAP Platform 1909 Developer Edition on SAP HANA 2.0 が見つけられます。readmeファイルと、ライセンスファイルをローカルPCに保存します。インストールファイルのダウンロードをこのWebページで行うわけではありません。ローカルPCのディスクサイズは気にしなくても大丈夫です。
https://developers.sap.com/trials-downloads.html?search=ABAP+Platform
1-2. ダウンロードしたファイルを展開する
readmeliecense.zip
というファイルがダウンロードできるので、zipを展開します。その中に、Licenses.rar
とReadme.rar
というファイルがあるので、やはりこれも展開します。
なお、ダウンロードしたZIPファイルのファイル名が license ではなく、 liecense となっているので、PSCPの際にはご注意ください。
1-3. readmeの記載事項を読む
readme.pdfには、ハードウェア要件から、起動したDockerコンテナの停止の方法まで記載されていますが、ローカルPCにインストールするかのような書き方になっていますので、EC2用に読み替えます。以下、readme.pdfの各節ごとにコメントを入れておきますが、Dockerのインストールの箇所をのぞけば、基本的にreadme.pdfの内容に従って進めることができます。
Docker account
Dockerアカウントは必要なので、読み替え不要です。
Download Docker
SUSE Linuxの場合、Dockerのダウンロードは必要ありませんが、インストール作業は必要です。後ほど出てきます。
Make sure Docker Engine is running
Login to Docker
Pull the image ABAP Platform 1909 DevEdition to your local PC
Check that the pull was successful
Create a container and start the ABAP system
上記は、今回使用するAWS EC2の場合でも必要です。
2. ReadMeに記載のHardware Requirementに記載のスペックで、AWSのEC2のインスタンスを起動(作成)する。
すごく飛ばして、SSHでログインできたものとします。
ストレージをアタッチするとか、Elastic IPを設定するとか、セキュリティグループの設定をするとか、一通りの作業があります。
3. EC2のインスタンスにSSHログインし、Dockerをインストールの上、pullする。
3-1. Dockerパッケージのインストール
:~> sudo zypper install docker
3-2. Docker Daemonをブート時に起動するように設定
:~> sudo systemctl enable docker
3-3. Docker Daemonの開始
:~> sudo systemctl start docker
3-4. Dockerインストールの確認
:~> sudo docker run hello-world
(略)
Hello from Docker!
This message shows that your installation appears to be working correctly.
(略)
3-5. ログインユーザにdocker daemonにアクセスするための権限を付与
ログインしている ec2-user
でdockerにアクセスしたいので、 ec2-user
をdockerグループに所属させるように usermod
します。また、再ログインを行います。
:~> sudo /usr/sbin/usermod -a -G docker ec2-user
3-6. Dockerにログイン
ここで、Dockerのアカウントが必要になります。
:~> docker login --username=yourhubusername -- mail=youremail@company.com
3-7. docker pull (ABAP Platform 1909 Developer EditionをEC2のサーバにダウンロード)
:~> docker pull store/saplabs/abaptrial:1909
この作業は結構時間がかかります。
3-8. ホスト名を変更する
ホスト名が、vhcala4hci
ということが前提になっているようなので、ホスト名の設定ファイルを編集します。
:~> sudo vi /etc/hostname
viエディタで、ホスト名をvhcala4hci
に書き換えます。
vhcala4hci
~
~
"/etc/hostname" 1L, 11C 1,10 All
リブートが必要なので、一度インスタンスを停止・再開をします。
3-9. ライセンスファイルをホームディレクトリに格納する
ローカルPCのライセンスファイルとして、A4H.txt
と、HDB.txt
をカレントディレクトリに配置して、PuTTYをインストールするとついてくるPSCPを使ってSSHプロトコルでライセンスファイルをEC2のサーバー側にファイルをコピーします。
> pscp -4 -P 22 -i ./my-key-pair.ppk -r readmeliecense/Licenses ec2-user@xxxxxx.ap-northeast-1.compute.amazonaws.com:.
3-10. Docker run
Readmeに記載されているrunコマンドは以下なのですが、ライセンスの確認や、システム設定のチェック回避をするために、もう一つ下のコマンドを使いました。
Readmeに記載のrunコマンド
docker run --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 store/saplabs/abaptrial:1909
実際に使っているrunコマンド
:~> docker run -v A4H.txt:/opt/sap/ASABAP_license -v HDB.txt:/opt/sap/HDB_license --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 store/saplabs/abaptrial:1909 -skip-limits-check -agree-to-sap-license
差分1
ライセンスファイルをEC2のサーバーのホームディレクトリに格納しておき、そのファイル名をそれぞれA4H.txt、HDB.txtとした場合、下記のオプションで指定します。runした後にdockerに入れることもできます。
-v A4H.txt:/opt/sap/ASABAP_license -v HDB.txt:/opt/sap/HDB_license
差分2
このオプションを入れることで、システムパラメータ設定チェックを回避することができます。
-skip-limits-check
差分3
このオプションを入れることで、インスタンス停止&開始した後にする、docker startコマンドの際に、Acceptとの入力待ちで、一時止まらなくなります。
-agree-to-sap-license
補足
一度runをしたら、トラブルがない限り再度runをする必要はないのですが、今回セットアップ時には何度もrunをし直す必要が生じました。その際には、以下のコマンドでクリアする必要がありました。
:~> docker rm a4h
4. GUIでABAP Platformに接続する。
4-1. hostsファイルのファイルを編集
Windows10のローカルPC側で、下記のフォルダに格納されているファイルを編集し、AWS EC2へ、サーバー名でアクセスできるように以下を追記します。
C:\Windows\System32\drivers\etc
99.99.99.99 vhcala4hci vhcala4hci.dummy.nodomain
99.99.99.99 は、EC2のElastic IPを指定することになります。
4-2. GUIの設定を追加する。
GUIの接続パラメータとして以下の設定をします。
項目 | 設定内容 |
---|---|
システムID | A4H |
インスタンス番号 | 00 |
アプリケーションサーバー | xxx.ap-northeast-1.compute.amazonaws.com (パブリックDNS) |
これで、GUIで接続することができます。
5. 停止&再開の手順
インスタンス停止前に、docker stopをします。
:~> docker stop --time 7200 a4h
再開する際には、docker startをします。
:~> docker start -ai a4h