본문 바로가기

SAP BC인프라

ABAP Platform for SAP S/4HANA 2022(Docker 버전)

참고게시글 : https://community.sap.com/t5/technology-blogs-by-sap/abap-cloud-developer-trial-2022-available-now/ba-p/13598069

 

ABAP Cloud Developer Trial 2022 Available Now

Update 1: 16th May, 2024: File upload vulnerability - Workaround Symptom An unauthenticated attacker can upload a malicious file to the server which when accessed by a victim can allow the attacker to access, modify or make unavailable user's information a

community.sap.com

 

ABAP Cloud Developer Trial 2022 docker에서 이용가능하다.

 

ABAP Cloud Developer Trial은 ABAP 언어 및 툴셋을 사용해 볼 수 있는 무료 다운로드 가능한 ABAP Platform on SAP HANA 2.0입니다. SAP Fiori launchpad, SAP Cloud Connector, 사전 구성된 백엔드/프론트엔드 연결, 역할 및 샘플 애플리케이션으로 광범위하게 사전 구성되어 있습니다.

 

이 솔루션은 두 그룹의 개발자를 대상으로 합니다:

ABAP 언어 및 개발 도구에 대해 더 알고 싶은 비 ABAP 개발자
새로운 기능에 대해 알고 싶은 ABAP 개발자(일부 예는 아래 참조)

 

모두: 이미지를 당기기 전에 다음을 확인합니다:

도커 컨테이너 기술의 원리를 이해하고 있습니다
개체 도커 이미지 / 도커 컨테이너 및 그 관계를 알고 있습니다
이미지 및 컨테이너 작업에 필요한 기본 명령을 알고 있습니다.

 

ABAP 라이선스적용방
도커 이미지와 함께 제공되는 ABAP 라이센스는 3개월만 지속되므로 다음과 같이 데모 라이센스를 다운로드하여 가져와야 합니다:

사용자 SAP*, 클라이언트 000을 사용하여 ABAP 시스템에 로그온합니다. DEVAP(개발자, 클라이언트 001)의 암호와 동일합니다.
트랜잭션 SLICENSE를 시작합니다. 하드웨어 키를 복사합니다.
minisap에서 라이센스를 가져와 시스템 A4H를 선택합니다. (관련 url : https://go.support.sap.com/minisap/#/minisap)
ABAP 시스템으로 돌아가서 로그오프한 다음 사용자 개발자인 클라이언트 001에 로그온합니다.
설치를 선택합니다.
이전("INITIAL") 라이센스는 자동으로 삭제되어야 합니다. 그렇지 않은 경우 SLICENSE를 다시 시작하십시오. 이전의 잘못된 라이센스를 제거하십시오(sap*는 라이센스를 삭제할 수 없습니다).

 

작업시작!!

 

중요


리눅스
CPU 4개
16GB 램
150GB 디스크


Windows 버전
2022년 버전의 ABAP Cloud Developer Trial은 [Windows Subsystem for Linux 2(WSL 2)](https://learn.microsoft.com/en-us/windows/wsl/) 에서 실행됩니다. 이를 통해 가상 시스템의 오버헤드 없이 수정되지 않은 Windows에서 직접 리눅스 환경을 실행할 수 있습니다. 즉, Docker for Desktop을 설치할 때: "Hyper-V"가 아닌 "WSL"을 선택합니다.

.wslconfig 파일을 생성하여 C:\Users\MyUser 등의 <User> 폴더에 저장합니다. 그런 다음 다음 다음을 입력합니다:

[wsl2]
memory=20GB
localhostForwarding=true

 


중요: 도커는 기본적으로 사용 가능한 메모리의 절반만 할당합니다. 따라서 .wslconfig에 충분한 메모리를 지정해야 합니다. 20GB를 권장합니다. 필자는 64기가 pc 를 사용하고 있습니다.

변경 내용을 활성화하려면 다음 명령을 사용하여 WSL 하위 시스템을 종료해야 합니다:

wsl --shutdown

 


이제 Windows용 Docker Desktop을 다시 시작합니다.

도커 이미지를 당기는 방법
시스템을 시작하려면 도커 컨테이너를 시작할 때 제공되는 SAP 개발자 라이센스에 동의해야 합니다.

도커 설정에 디스크 공간을 충분히 할당했는지 확인하십시오. 이미지는 압축 시 약 23GB, 압축 해제 후 약 53GB의 크기를 갖습니다. 

시스템을 성공적으로 실행하려면 도커 데스크톱에 최소 16GB RAM을 할당해야 합니다.

익명의 사용자는 이미지를 사용할 수 없으므로 도커 허브에 계정이 있어야 합니다. 이미지를 끌어 올리려면 먼저 도커 로그인 또는 도커 데스크톱을 통한 로그인 명령을 실행해야 합니다.

 

How to pull the Docker image

docker abaptrial  2022버전 이미지 pull 명령어 : 

docker pull sapse/abap-cloud-developer-trial:ABAPTRIAL_2022

아래와 같이 abap cloud 개발 이미지가 생성됩니다.

 

How to create a Docker container

시스템에서 호스트 이름을 vhcala4hci로 설정되어져 있다.

다른 모든 호스트 이름으로 인해 시스템이 시작되지 않습니다. 다음 명령을 사용하여 출력을 주의 깊게 확인하십시오:

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 sapse/abap-cloud-developer-trial:ABAPTRIAL_2022 -skip-limits-check

기본적으로 Docker는 종료하는 데 10초밖에 걸리지 않습니다. 따라서 키 스트로크 Ctrl-C를 사용하여 시스템을 정상적으로 중지할 수 있도록 컨테이너를 대화형 모드(-i)로 시작합니다. 그러나 종료 요청 시 Docker가 SAP HANA 데이터베이스(HDB)에 In-Memory 데이터베이스를 디스크에 쓸 수 있는 충분한 시간을 제공하는 stop-timeout 매개 변수도 사용합니다.

향후 명령에서 더 쉽게 참조할 수 있도록 컨테이너 이름을 a4h로 지정합니다.

변경 사항을 시스템에 유지하기 위해 컨테이너를 중지하고 시작할 계획인 경우에는 파라미터 -agree-to-sap-license도 사용하는 것이 좋습니다. 파라미터를 사용하면 라이센스 계약에 수동으로 동의할 필요가 없습니다.

 

ㅁ모든 서비스가 성공적으로 시작된 후에는 시스템에 로그온을 시도하기 전에 CPU 로드가 감소하고 메모리 사용량이 증가하지 않을 때까지 기다리는 것이 좋습니다.

 

컨테이너 설치 후 서버기동

명령 도커 시작을 통해 정지된 컨테이너를 시작할 수 있습니다.

docker start -ai a4h


-i = 대화형 모드로 시작해야 가능한 시작 문제에 대응할 수 있습니다
-a = 텍스트 출력을 보려면 컨테이너에 "attach"해야 합니다

 

서버정지
SAP HANA에서 모든 데이터를 디스크의 파일에 쓰기에 충분한 시간이 있는지 확인해야 합니다.
disk를 올바르게 중지하려면 용기를 시작한 명령 창에서 Ctrl-C를 누르거나 다음 명령을 실행합니다:

docker stop -t 7200 a4h

How to update the licenses

ABAP Platform (AS ABAP)

ABAP 라이선스의 만료일은 SAPGUI의 트랜잭션 SLICENSE에서 확인할 수 있습니다. 만료 전에 업데이트하는 것이 더 쉽기 때문에 미리 알림을 설정할 수 있습니다.

SAPGUI(SLICENCE)를 통해 라이센스 업데이트 도커 이미지와 함께 제공되는 ABAP 라이센스는 3개월만 지속됩니다. 따라서 다음과 같이 데모 라이센스를 다운로드하고 가져와야 합니다:

사용자 SAP*, 클라이언트 000을 사용하여 ABAP 시스템에 로그온합니다. DEVAP(개발자, 클라이언트 001)의 암호와 동일합니다.
트랜잭션 SLICENSE를 시작합니다. 하드웨어 키를 복사합니다.
minisap에서 접속하여 라이센스를 가져와 시스템 A4H를 선택합니다.
ABAP 시스템으로 돌아가서 SLICENSE를 다시 시작한 다음 설치를 선택합니다.


로그오프한 다음 사용자 개발자, 클라이언트 001로 로그온합니다.
SLICENSE를 다시 시작합니다. 이전의 잘못된 라이센스를 제거합니다(sap*는 라이센스를 삭제할 수 없습니다).
도커를 통한 라이센스 업데이트 이미지에는 마운트하거나 컨테이너에 복사한 파일에서 ASABAP 라이센스를 업데이트할 수 있는 스크립트가 포함되어 있습니다. 텍스트 파일을 로컬 파일 시스템에 저장하고 /opt/sap/ASABAP_license 경로의 컨테이너에 푸시하기만 하면 됩니다. 라이센스 파일 생성에 필요한 하드웨어 키는 컨테이너 시작 단계에서 출력됩니다.

도커를 통한 업데이트: 새 컨테이너: 도커 실행 명령을 -v <local path the key file>:/opt/sap/ASABAP_license로 업데이트합니다. 매개 변수는 도커 실행에 속하고 이미지 이름 뒤에 있는 모든 것은 컨테이너 내부의 프로그램으로 전달되므로 도커 이미지 이름(sapse/abap-cloud-developer-trial:) 이전에 -v 매개 변수가 명령줄에 있는지 확인하십시오.

도커를 통한 업데이트: 기존 컨테이너: 도커 cp <local path the key file> a4h:/opt/sap/ASABAP_license 명령으로 키 파일을 컨테이너에 복사합니다. 컨테이너가 중지된 경우, 컨테이너를 다시 시작할 때 파일이 적용됩니다. 컨테이너가 실행 중인 경우 컨테이너를 중지하고 시작하거나 docker exec -it a4h /usr/local/bin/asabap_license_update를 통해 라이센스 업데이트 기능을 트리거할 수 있습니다.

ASABAP 라이센스 업데이트 스크립트에 문제가 발생하면 -no-asabap-license-update 매개 변수를 전달하거나 /opt/sap/.no_ASABAP_license_update 파일을 컨테이너에 생성하여 컨테이너에서 이 기능을 실행하지 못하도록 할 수 있습니다.

HDB

이미지는 유효한 HDB 라이센스와 함께 제공되며, 만료 직전까지 이 라이센스를 다시 적용할 필요는 없습니다. HDB 라이센스의 만료 날짜는 DBA Cockpit > System Information > License (DB04) 에서 확인할 수 있습니다. 만료 전에 업데이트하는 것이 더 쉬우므로 라이센스를 업데이트하라는 알림을 설정할 수 있습니다.

이미지에는 마운트하거나 컨테이너에 복사한 파일에서 HDB 라이센스를 업데이트할 수 있는 스크립트가 포함되어 있습니다. 따라서 HDB 라이센스를 업데이트해야 하는 경우 텍스트 파일을 로컬 파일 시스템에 저장하고 /opt/sap/HDB_license 경로의 컨테이너에 푸시하기만 하면 됩니다.

 

SAPGUI

  1. Add a custom-specified system with the Application Server <the container's IP>or localhost if you exposed the port 3200 (i.e. -p 3200:3200) or vhcala4hci if you updated your hosts file.
  2. 인스턴스 번호 00 and SID A4H.

시스템 초기 계정관리

사용자 이름은 Developer입니다. 클라이언트는 개발용 001 또는 일부 관리자 작업용 000입니다. 암호는 다음과 같습니다:

ABAP 클라우드 개발자 Trial 2022: ABAPtr2022#00
ABAP Platform Trial 1909, SP01: ABAPtr1909 - 몇 주 안에 이 버전도 철회할 예정입니다
ABAP Platform Trial 1909, 초기 발송: Htods70334 - 더 이상 이 버전을 제공하지 않음에 유의하십시오
클라이언트 000, 클라이언트 001: SAP*, DDIC에 대해서도 미리 정의되어 있습니다(동일한 암호).

How to connect

The following list defines ports used by the container:

  • 3200: SAPGUI Instance 00
  • 3300: RFC Instance 00
  • 8443: SAP Cloud Connector
  • 30213: SAP HANA MDC Database
  • 50000: AS ABAP HTTP
  • 50001: AS ABAP HTTPS

Browser작업을 위한 설정

인터넷 브라우저를 통해 포트 HTTP 또는 HTTPS 서비스에 액세스하는 것은 HTTP용 포트 50000 또는 HTTPS용 포트 50001을 사용하고 올바른 호스트를 사용하는 한 특별한 요구 사항이 없습니다.

호스트 값은 컨테이너를 시작한 방법에 따라 달라집니다. 필요한 포트를 모두 노출했다면 localhost를 사용할 수 있습니다. 운영 체제에서 컨테이너의 IP에 직접 도달할 수 있는 방법으로 IP 라우팅을 구성할 수 있다면 <컨테이너의 IP>를 사용할 수 있습니다.

SAPGUI에서 브라우저로 리디렉션되면 URL에 호스트가 vhcala4hci로 설정되어 호스트 파일(Hosts 파일)을 수정하지 않으면 연결할 수 없습니다. 운영 체제에서 호스트 이름 vhcala4hci를 IP 주소로 변환할 수 있도록 새 항목을 추가해야 합니다. 새 항목의 내용은 컨테이너를 시작한 방법에 따라 다릅니다.

수동으로 노출된 포트 또는 --net=host - 라인 127.0.0.1 vhcala4hci 추가

명시적인 포트 노출 없음 - 라인 <컨테이너의 IP> vhcala4hci 추가

 

SAP Cloud Connector설정

 

SAP Cloud Connector를 사용하려면 다음 명령을 통해 추가 서비스를 시작해야 합니다:

docker exec -it a4h bash
/usr/local/sbin/rcscc_daemon start


SAP Cloud Connector 상태는 다음을 통해 확인할 수 있습니다:

docker exec -it a4h bash
/usr/local/sbin/rcscc_daemon status


마지막 명령이 데몬 프로세스를 시작합니다. 컨테이너를 떠나기 전에 중지해야 합니다. 다음 명령을 사용하십시오:

/usr/local/sbin/rcscc_daemon stop
exit


다음 사이트에서 SAP Cloud Connector 인스턴스에 연결할 수 있습니다:

https://<컨테이너의 IP>:8443