오픈 소스 도구를 사용하여 자동으로 SAP 시스템 설치 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

오픈 소스 도구를 사용하여 자동으로 SAP 시스템 설치

작성자: Guilherme Sesterheim(AWS)

코드 리포지토리: 기본 리포지토리

환경: 프로덕션

기술: DevOps

워크로드: SAP

AWS 서비스: Amazon EC2, Amazon S3

요약

이 패턴은 오픈 소스 도구를 사용하여 다음 리소스를 생성하여 SAP 시스템 설치를 자동화하는 방법을 보여줍니다.

  • SAP S/4HANA 1909 데이터베이스

  • SAP ABAP Central Services(ASCS) 인스턴스

  • SAP 기본 Application Server(PAS) 인스턴스

HashiCorp Terraform은 SAP 시스템의 인프라를 생성하고 Ansible은 운영 체제(OS)를 구성하고 SAP 애플리케이션을 설치합니다. Jenkins는 설치를 실행합니다.

이 설정은 SAP 시스템 설치를 반복 가능한 프로세스로 전환하여 배포 효율성과 품질을 높이는 데 도움이 될 수 있습니다.

참고: 이 패턴에 제공된 예제 코드는 고가용성(HA) 시스템과 비 HA 시스템 모두에서 작동합니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 이 특정 시나리오에 대해서는 SAP S/4HANA 1909만 완전히 테스트됩니다. 다른 버전의 SAP 를 사용하는 경우 이 패턴의 Ansible 코드 예제를 수정해야 합니다HANA.

  • 이 패턴의 예제 절차는 Mac OS 및 Linux 운영 체제에서 작동합니다. 일부 명령은 Unix 기반 터미널에서만 실행할 수 있습니다. 하지만 각기 다른 명령과 Windows OS를 사용하면 비슷한 결과를 얻을 수 있습니다.

제품 버전

  • SAP S/4HANA 1909

  • Red Hat Enterprise Linux(RHEL) 8.2 이상 버전

아키텍처

다음 다이어그램은 오픈 소스 도구를 사용하여 AWS 계정에서 SAP 시스템 설치를 자동화하는 워크플로의 예를 보여줍니다.

예제 워크플로는 오픈 소스 도구를 사용하여 AWS 계정의 SAP 시스템 설치를 자동화합니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. Jenkins는 Terraform 및 Ansible 코드를 실행하여 SAP 시스템 설치를 오케스트레이션합니다.

  2. Terraform 코드는 SAP 시스템의 인프라를 구축합니다.

  3. Ansible 코드는 OS를 구성하고 SAP 애플리케이션을 설치합니다.

  4. 정의된 모든 사전 조건을 포함하는 SAP S/4HANA 1909 데이터베이스, ASCS 인스턴스 및 PAS 인스턴스가 Amazon EC2 인스턴스에 설치됩니다.

참고: 이 패턴의 예제 설정은 AWS 계정에 Amazon S3 버킷을 자동으로 생성하여 Terraform 상태 파일을 저장합니다.

기술 스택

  • Terraform

  • Ansible

  • Jenkins

  • SAP S/4HANA 1909 데이터베이스

  • SAP ASCS 인스턴스

  • SAP PAS 인스턴스

  • Amazon EC2 

도구

AWS 서비스

  • Amazon Elastic Compute Cloud(Amazon EC2)는 AWS 클라우드에서 확장 가능한 컴퓨팅 용량을 제공합니다. 필요한 만큼 많은 가상 서버를 시작하고 빠르게 규모를 확장 또는 축소할 수 있습니다.

  • AWS Identity and Access Management(IAM)는 AWS 리소스에 대한 액세스를 인증하고 사용할 수 있는 권한을 부여받은 사용자를 제어하여 리소스에 대한 액세스를 안전하게 관리하는 데 도움이 됩니다.

  • AWS Key Management Service(AWS KMS)를 사용하면 암호화 키를 생성하고 제어하여 데이터를 보호할 수 있습니다.

  • Amazon Virtual Private Cloud(Amazon VPC)를 사용하면 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하며 확장 가능한 인프라를 사용할 때의 이점이 있습니다AWS.

기타 도구

  • HashiCorp Terraform은 코드를 사용하여 클라우드 인프라 및 리소스를 프로비저닝하고 관리하는 데 도움이 되는 명령줄 인터페이스 애플리케이션입니다.

  • Ansible은 애플리케이션, 구성 및 IT 인프라를 자동화하는 데 도움이 되는 코드형 오픈소스 구성(CaC) 도구입니다.

  • Jenkins는 개발자가 그의 소프트웨어를 빌드, 테스트 및 배포할 수 있는 오픈 소스 자동화 서버입니다.

코드

이 패턴의 코드는 GitHub aws-install-sap-with-jenkins-ansible 리포지토리에서 사용할 수 있습니다.

에픽

작업설명필요한 기술

Amazon S3 버킷에 SAP 미디어 파일을 추가합니다.

모든 SAP 미디어 파일이 포함된 Amazon S3 버킷을 생성합니다.

중요: AWS Launch Wizard 설명서의 S/4HANA에 대한 Launch Wizard의 폴더 계층 구조를 따라야 합니다. https://docs.aws.amazon.com/launchwizard/latest/userguide/launch-wizard-sap-software-install-details.html

클라우드 관리자

를 설치합니다 VirtualBox.

OracleVirtualBox에서 를 설치하고 구성합니다.

DevOps 엔지니어

Vagrant를 설치합니다.

에서 Vagrant를 설치하고 구성합니다 HashiCorp.

DevOps 엔지니어

AWS 계정을 구성합니다.

  1. 액세스 키와 보안 키가 있고 다음 권한이 있는 IAM 보안 주체가 있는지 확인합니다.

    • 읽기 전용 권한:Amazon Route 53, AWS Key Management Service(AWS KMS)

    • 읽기 및 쓰기 권한: Amazon S3, Amazon Elastic Compute Cloud(Amazon EC2), Amazon Elastic File System(Amazon EFS), IAM, Amazon CloudWatch, Amazon DynamoDB

  2. 나중에 참조할 수 있도록 IAM 보안 주체의 액세스 키와 보안 암호를 저장합니다.

  3. Route 53 프라이빗 호스팅 영역이 아직 없는 경우 이를 생성합니다. 나중에 참조할 수 있도록 영역 이름(예: sapteam.net)을 저장합니다.

  4. Amazon Marketplace에서 HA 및 Update Services 8.2SAP를 사용하는 용 Red Hat Enterprise LinuxAMI를 구독합니다. 나중에 참조할 수 있도록 AMI ID(예: ami-0000000)를 저장합니다.

  5. AWS KMS 고객 관리형 키 를 생성합니다. 나중에 참조할 수 있도록 KMS 키의 Amazon 리소스 이름(ARN)을 저장합니다.

    참고: 다음은 AWS KMS 고객 관리형 키의 예입니다ARN. arn:aws:kms:us-east-1:123412341234:key/uuid

  6. SSH 키 페어를 생성합니다. 나중에 참조할 수 있도록 키 페어의 이름과 .pem 파일을 저장합니다.

  7. Jenkins를 설치하는 호스트 이름에서 포트 22에 SSH 연결할 수 있는 Amazon EC2 보안 그룹을 생성합니다. 나중에 참조할 수 있도록 보안 그룹 ID를 저장합니다.

    참고: 호스트 이름은 대부분 localhost입니다.

일반 AWS
작업설명필요한 기술

에서 코드 리포지토리를 복제합니다 GitHub.

에서 aws-install-sap-with-jenkins-ansible 리포지토리를 복제합니다 GitHub.

DevOps 엔지니어

Jenkins 서비스를 시작합니다.

Linux 터미널을 엽니다. 그런 다음 복제된 코드 리포지토리 폴더가 들어 있는 로컬 폴더로 이동하여 다음 명령을 실행합니다.

sudo vagrant up

참고: Jenkins를 시작하는 데 약 20분이 소요됩니다. 이 명령은 성공 시 서비스가 설정되었으며 실행 중이라는 메시지를 반환합니다.

DevOps 엔지니어

웹 브라우저에서 Jenkins를 열고 로그인합니다.

  1. 웹 브라우저에 http://localhost:5555를 입력합니다. Jenkins가 열립니다.

  2. 사용자 이름으로 admin을 사용하고 암호로 my_secret_pass_from_vault를 사용하여 Jenkins에 로그인합니다.

DevOps 엔지니어

SAP 시스템 설치 파라미터를 구성합니다.

  1. Jenkins에서 Jenkins 관리를 선택합니다. 그런 다음 보안 인증 정보 관리를 선택합니다. 구성할 수 있는 보안 인증 정보 변수 목록이 나타납니다.

  2. 다음 자격 증명 변수를 모두 구성합니다.

  • AWS_ACCOUNT_CREDENTIALS에 보안 IAM 주체의 액세스 키 ID와 보안 액세스 키 ID를 입력합니다.

  • AMI_ID 에 HA 및 Update Services 8.2 AMI의 AMI ID를 SAP 사용하여 용 Red Hat Enterprise Linux를 입력합니다.

  • KMS_KEY_ARN에 AWS KMS 고객 관리형 키의 를 입력합니다ARN.

  • SSH_KEYPAIR_NAME.pem 파일 유형을 입력하지 않고 SSH 키 페어의 이름을 입력합니다.

  • SSH_KEYPAIR_FILE에 키 페어의 .pem 파일의 전체 이름(예: mykeypair.pem )을 입력합니다. 키 페어의 .pem 파일도 Jenkins에 업로드해야 합니다.

  • S3_ROOT_FOLDER_INSTALL_FILES에 SAP 미디어 파일이 포함된 Amazon S3 버킷의 이름과 해당하는 경우 폴더(예: s3://my-media-bucket/S4H1909)를 입력합니다.

  • PRIVATE_DNS_ZONE_NAME에 Route 53 프라이빗 호스팅 영역의 이름을 입력합니다(예: myprivatecompanyurl.net).

  • VPC_ID 에 SAP 리소스를 생성VPC하려는 Amazon의 VPC ID(예: vpc-12345)를 입력합니다.

  • SUBNET_IDS에 테스트 환경에서 작업하는 IDs 경우 두 개의 퍼블릭 서브넷을 입력합니다(향후 HA 기능용). 프로덕션 환경에서 작업하는 경우 Bastion Host와 함께 두 개의 프라이빗 서브넷을 사용하는 것이 가장 좋습니다.

  • SECURITY_GROUP_ID 에 Jenkins를 설치한 호스트 이름에서 포트 22에 대한 SSH 연결을 허용하는 Amazon EC2 보안 그룹의 ID를 입력합니다.

참고: 사용 사례를 기준으로 필요에 따라 기타 비필수 파라미터를 구성할 수 있습니다. 예를 들어 인스턴스의 SAP 시스템 ID(SID)와 SAP 시스템의 기본 암호, 이름 및 태그를 변경할 수 있습니다. 모든 필수 변수의 이름 시작 부분에 (필수)가 있습니다.

AWS 시스템 관리자, DevOps 엔지니어

SAP 시스템 설치를 실행합니다.

  1. Jenkins에서 Jenkins Home을 선택합니다. 그런 다음 SAP HanaASCS+PAS 3 인스턴스 를 선택합니다.

  2. 스핀업 및 설치를 선택합니다. 그런 다음, Main을 선택합니다.

  3. 지금 빌드를 선택합니다.

파이프라인 단계에 대한 자세한 내용은 AWS 블로그의 오픈 소스 도구를 사용한 SAP 설치 자동화파이프라인 단계 이해 섹션을 참조하세요.

참고: 오류가 발생하는 경우 나타나는 빨간색 오류 상자 위로 커서를 이동하고 로그를 선택합니다. 오류가 발생한 파이프라인 단계의 로그가 나타납니다. 대부분의 오류는 잘못된 파라미터 설정으로 인해 발생합니다.

DevOps 엔지니어, AWS 시스템 관리자

관련 리소스