SAP 자동화 프레임워크의 워크로드 영역 구성
SAP 애플리케이션에는 일반적으로 여러 개발 계층이 있습니다. 예를 들어 개발, 품질 보증 및 프로덕션 계층이 있을 수 있습니다. SAP 배포 자동화 프레임워크에서는 이러한 계층을 워크로드 영역이라고 합니다. 두 개의 SAP 시스템이 있는 워크로드 영역의 예는 다음 다이어그램을 참조하세요.
워크로드 영역은 워크로드 영역의 모든 SAP 시스템에 공유 서비스를 제공합니다. 이러한 공유 서비스는 다음을 포함합니다.
- Azure Virtual Network
- Azure Key Vault
- 설치 미디어를 위한 공유 Azure Storage 계정
- Azure NetApp Files 계정 및 용량 풀(선택 사항)
워크로드 영역은 일반적으로 스포크 구독에 배포되며 워크로드 영역의 모든 아티팩트 배포는 고유한 서비스 주체를 사용하여 수행됩니다.
워크로드 영역 배포 구성
SAP 워크로드 영역의 구성은 Terraform tfvars
변수 파일을 통해 수행됩니다. samples/WORKSPACES/LANDSCAPE
폴더에서 변수 파일의 예제를 찾을 수 있습니다.
다음 섹션에서는 변수 파일의 여러 섹션을 보여 줍니다.
환경 매개 변수
이 표에는 환경 설정을 정의하는 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
environment |
워크로드 영역의 식별자(최대 5자) | 필수 | 예를 들어, 프로덕션 환경의 경우 PROD , 품질 보증 환경의 경우 QA 입니다. |
location |
배포할 Azure 지역 | Required | |
name_override_file |
이름 재정의 파일 | 선택 사항 | 사용자 지정 이름 지정을 참조하세요. |
tags |
모든 리소스와 연결할 태그 사전입니다. | 선택 사항 |
리소스 그룹 매개 변수
이 표에는 리소스 그룹을 정의하는 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type |
---|---|---|
resourcegroup_name |
만들 리소스 그룹의 이름 | 선택 사항 |
resourcegroup_arm_id |
기존 리소스 그룹에 대한 Azure 리소스 식별자 | 선택 사항 |
resourcegroup_tags |
리소스 그룹과 연결할 태그 | 선택 사항 |
네트워크 매개 변수
자동화 프레임워크는 가상 네트워크와 서브넷(그린필드)을 만들거나 기존 가상 네트워크와 기존 서브넷(브라운필드) 또는 그린필드와 브라운필드의 조합을 모두 사용할 수 있습니다.
- 그린필드 시나리오: 가상 네트워크 주소 공간 및 서브넷 주소 접두사를 지정해야 합니다.
- 브라운필드 시나리오: 가상 네트워크 및 서브넷에 대한 Azure 리소스 식별자를 지정해야 합니다.
가상 네트워크 주소 공간이 모든 리소스를 호스트할 수 있을지 확인합니다.
이 표에는 네트워킹 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
network_logical_name |
네트워크의 논리적 이름(예: SAP01 ) |
Required | 리소스 이름 지정에 사용됨 |
network_name |
네트워크의 이름 | 선택 사항 | |
network_arm_id |
가상 네트워크에 대한 Azure 리소스 식별자 | 선택 사항 | 브라운필드 배포의 경우 |
network_address_space |
가상 네트워크의 주소 범위 | 필수 | 그린필드 배포의 경우 |
admin_subnet_address_prefix |
admin 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
admin_subnet_arm_id |
admin 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
admin_subnet_name |
admin 서브넷의 이름 |
선택 사항 | |
admin_subnet_nsg_name |
admin 네트워크 보안 그룹의 이름 |
선택 사항 | |
admin_subnet_nsg_arm_id |
admin 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
db_subnet_address_prefix |
db 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
db_subnet_arm_id |
db 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
db_subnet_name |
db 서브넷의 이름 |
선택 사항 | |
db_subnet_nsg_name |
db 네트워크 보안 그룹의 이름 |
선택 사항 | |
db_subnet_nsg_arm_id |
db 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
app_subnet_address_prefix |
app 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
app_subnet_arm_id |
app 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
app_subnet_name |
app 서브넷의 이름 |
선택 사항 | |
app_subnet_nsg_name |
app 네트워크 보안 그룹의 이름 |
선택 사항 | |
app_subnet_nsg_arm_id |
app 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
web_subnet_address_prefix |
web 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
web_subnet_arm_id |
web 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
web_subnet_name |
web 서브넷의 이름 |
선택 사항 | |
web_subnet_nsg_name |
web 네트워크 보안 그룹의 이름 |
선택 사항 | |
web_subnet_nsg_arm_id |
web 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
이 표에는 Azure NetApp Files를 사용하는 경우 네트워킹 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
anf_subnet_arm_id |
ANF 서브넷에 대한 Azure 리소스 식별자 |
Required | 기존 서브넷을 사용하는 경우 |
anf_subnet_address_prefix |
ANF 서브넷에 대한 주소 범위 |
Required | 배포에 ANF 를 사용하는 경우 |
anf_subnet_name |
ANF 서브넷의 이름 |
선택 사항 | |
anf_subnet_nsg_name |
anf 네트워크 보안 그룹의 이름 |
선택 사항 | |
anf_subnet_nsg_arm_id |
anf 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
선택 사항 | 브라운필드 배포의 경우 |
이 테이블에는 iSCSI 디바이스가 이 워크로드 영역에서 호스트되는 경우 네트워킹 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
iscsi_subnet_address_prefix |
iscsi 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
iscsi_subnet_arm_id |
iscsi 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
iscsi_subnet_name |
iscsi 서브넷의 이름 |
선택 사항 | |
iscsi_subnet_nsg_arm_id |
iscsi 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
iscsi_subnet_nsg_name |
iscsi 네트워크 보안 그룹의 이름 |
선택 사항 |
이 표에는 SAP용 Azure Monitor가 이 워크로드 영역에서 호스트되는 경우 네트워킹 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
ams_subnet_address_prefix |
iscsi 서브넷에 대한 주소 범위 |
필수 | 그린필드 배포의 경우 |
ams_subnet_arm_id |
iscsi 서브넷에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
ams_subnet_name |
iscsi 서브넷의 이름 |
선택 사항 | |
ams_subnet_nsg_arm_id |
iscsi 네트워크 보안 그룹에 대한 Azure 리소스 식별자 |
필수 | 브라운필드 배포의 경우 |
ams_subnet_nsg_name |
iscsi 네트워크 보안 그룹의 이름 |
선택 사항 |
이 표에는 추가 네트워킹 매개 변수가 포함되어 있습니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
use_private_endpoint |
스토리지 계정 및 키 자격 증명 모음에 대해 만들어진 프라이빗 엔드포인트입니다. | 선택 사항 | |
use_service_endpoint |
서브넷에 대해 정의된 서비스 엔드포인트입니다. | 선택 사항 | |
peer_with_control_plane_vnet |
컨트롤 플레인 가상 네트워크와 피어링된 가상 네트워크입니다. | 선택 사항 | SAP 설치에 필요함 |
public_network_access_enabled |
스토리지 계정 및 키 자격 증명 모음에서 공용 액세스가 사용하도록 설정됩니다. | 선택 사항 |
필요한 최소 네트워크 정의
network_logical_name = "SAP01"
network_address_space = "10.110.0.0/16"
db_subnet_address_prefix = "10.110.96.0/19"
app_subnet_address_prefix = "10.110.32.0/19"
인증 매개 변수
이 표에서는 가상 머신 인증을 정의하는 데 사용되는 자격 증명을 정의합니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
automation_username |
관리자 계정 이름 | 선택 사항 | 기본값: azureadm |
automation_password |
관리자 암호 | 선택 사항 | |
automation_path_to_public_key |
기존 공개 키에 대한 경로 | 선택 사항 | |
automation_path_to_private_key |
기존 프라이빗 키에 대한 경로 | 선택 사항 | |
use_spn |
정의된 경우 서비스 주체를 사용하여 배포를 수행합니다. 그렇지 않으면 MSI | 선택 사항 |
최소 필수 인증 정의
automation_username = "azureadm"
키 자격 증명 모음 매개 변수
이 표에서는 키 자격 증명 모음 정보를 정의하는 데 사용되는 매개 변수를 정의합니다.
변수 | 설명 | Type | 주의 |
---|---|---|---|
spn_keyvault_id |
기존 SPN(배포 자격 증명) 키 자격 증명 모음에 대한 Azure 리소스 식별자 | 선택 사항 | |
user_keyvault_id |
기존 시스템 자격 증명 키 자격 증명 모음에 대한 Azure 리소스 식별자 | 선택 사항 | |
additional_users_to_add_to_keyvault_policies |
배포 키 자격 증명 모음 액세스 정책에 추가할 사용자 개체 ID 목록 | 선택 사항 | |
enable_purge_control_for_keyvaults |
Azure 키 자격 증명 모음에 대한 제거 보호를 사용하지 않도록 설정합니다. | 선택 사항 | 테스트 환경에만 사용합니다. |
enable_rbac_authorization_for_keyvault |
키 자격 증명 모음에서 RBAC 사용 | 선택 사항 | |
soft_delete_retention_days |
일시 삭제 기간에 항목을 보존해야 하는 일 수입니다. | 선택 사항 | |
keyvault_private_endpoint_id |
키 자격 증명 모음 프라이빗 엔드포인트의 Azure 리소스 ID | 선택 사항 |
프라이빗 DNS
변수 | 설명 | Type |
---|---|---|
dns_label |
지정된 경우 프라이빗 DNS 영역의 DNS 이름입니다. | 선택 사항 |
dns_resource_group_name |
프라이빗 DNS 영역을 포함하는 리소스 그룹의 이름 | 선택 사항 |
register_virtual_network_to_dns |
SAP 가상 머신이 프라이빗 DNS 영역에 등록되어 있는지 제어합니다. | 선택 사항 |
dns_server_list |
지정한 경우 DNS 서버 IP 주소 목록 | 선택 사항 |
NFS 지원
변수 | 설명 | Type | 주의 |
---|---|---|---|
create_transport_storage |
정의된 경우 전송 디렉터리에 대한 스토리지를 만듭니다. | 선택 사항 | |
export_install_path |
제공된 경우 설치 미디어의 탑재 경로를 내보냅니다. | 선택 사항 | |
export_transport_path |
제공된 경우 전송 공유에 대한 탑재 경로를 내보냅니다. | 선택 사항 | |
install_always_create_fileshares |
항상 파일 공유를 만듭니다. | 선택 사항 | |
install_private_endpoint_id |
install 프라이빗 엔드포인트에 대한 Azure 리소스 ID입니다. |
선택 사항 | 기존 엔드포인트의 경우 |
install_volume_size |
install 볼륨의 크기(GB)를 정의합니다. |
선택 사항 | |
NFS_provider |
사용할 NFS 백 엔드를 정의합니다. | 선택 사항 | 옵션은 Azure Files NFS의 경우 AFS , Azure NetApp Files의 경우 ANF , SCS 서버 NFS의 경우 NONE , 외부 NFS 솔루션의 경우 NFS 입니다. |
transport_private_endpoint_id |
키 자격 증명 모음 프라이빗 엔드포인트의 Azure 리소스 ID | 선택 사항 | |
transport_volume_size |
transport 볼륨의 크기(GB)를 정의합니다. |
선택 사항 | |
use_AFS_for_installation_media |
제공된 경우 설치 미디어에 AFS를 사용합니다. | 선택 사항 |
Azure Files NFS 지원
변수 | 설명 | Type | 주의 |
---|---|---|---|
install_storage_account_id |
install 스토리지 계정에 대한 Azure 리소스 식별자 |
선택 사항 | 브라운필드 배포의 경우 |
transport_storage_account_id |
transport 스토리지 계정에 대한 Azure 리소스 식별자 |
선택 사항 | 브라운필드 배포의 경우 |
Storage account replication type |
스토리지 계정 복제본(replica)tion 유형, 기본 ZRS | 선택 사항 |
최소 필수 Azure Files NFS 정의
NFS_provider = "AFS"
use_private_endpoint = true
Azure NetApp Files 지원
변수 | 설명 | Type | 주의 |
---|---|---|---|
ANF_account_name |
Azure NetApp Files 계정의 이름 | 선택 사항 | |
ANF_service_level |
Azure NetApp Files 용량 풀에 대한 서비스 수준 | 선택 사항 | |
ANF_pool_size |
Azure NetApp Files 용량 풀의 크기(GB) | 선택 사항 | |
ANF_qos_type |
풀의 서비스 품질 유형(자동 또는 수동) | 선택 사항 | |
ANF_use_existing_pool |
Azure NetApp Files 용량 풀에 기존 항목을 사용합니다. | 선택 사항 | |
ANF_pool_name |
Azure NetApp Files 용량 풀의 이름 | 선택 사항 | |
ANF_account_arm_id |
Azure NetApp Files 계정에 대한 Azure 리소스 식별자 | 선택 사항 | 브라운필드 배포의 경우 |
ANF_transport_volume_use_existing |
기존 전송 볼륨이 사용되는지 여부를 정의합니다. | 선택 사항 | |
ANF_transport_volume_name |
전송 볼륨 이름을 정의합니다. | 선택 사항 | 브라운필드 배포의 경우 |
ANF_transport_volume_size |
전송 볼륨의 크기(GB)를 정의합니다. | 선택 사항 | |
ANF_transport_volume_throughput |
전송 볼륨의 처리량을 정의합니다. | 선택 사항 | |
ANF_transport_volume_zone |
전송 볼륨의 가용성 영역을 정의합니다. | 선택 사항 | |
ANF_install_volume_use_existing |
기존 설치 볼륨이 사용되는지 여부를 정의합니다. | 선택 사항 | |
ANF_install_volume_name |
설치 볼륨 이름을 정의합니다. | 선택 사항 | 브라운필드 배포의 경우 |
ANF_install_volume_size |
설치 볼륨의 크기(GB)를 정의합니다. | 선택 사항 | |
ANF_install_volume_throughput |
설치 볼륨의 처리량을 정의합니다. | 선택 사항 | |
ANF_install_volume_zone |
설치 볼륨의 가용성 영역을 정의합니다. | 선택 사항 |
필요한 최소 ANF 정의
NFS_provider = "ANF"
anf_subnet_address_prefix = "10.110.64.0/27"
ANF_service_level = "Ultra"
DNS 지원
변수 | 설명 | Type |
---|---|---|
dns_label |
프라이빗 DNS 영역의 DNS 이름. | 선택 사항 |
management_dns_resourcegroup_name |
프라이빗 DNS 영역이 포함된 리소스 그룹. | 선택 사항 |
management_dns_subscription_id |
프라이빗 DNS 영역이 포함된 구독의 구독 ID. | 선택 사항 |
use_custom_dns_a_registration |
기존 프라이빗 DNS 영역을 사용합니다. | 선택 사항 |
다른 매개 변수
변수 | 설명 | Type | 주의 |
---|---|---|---|
diagnostics_storage_account_arm_id |
진단 스토리지 계정에 대한 Azure 리소스 식별자. | Required | 브라운필드 배포의 경우. |
place_delete_lock_on_resources |
키 자격 증명 모음 및 가상 네트워크에 삭제 잠금을 배치합니다. | 선택 사항 | |
witness_storage_account_arm_id |
감시 스토리지 계정에 대한 Azure 리소스 식별자. | Required | 브라운필드 배포의 경우. |
Agent_IP |
에이전트의 IP 주소입니다. | 선택 사항 | |
add_Agent_IP |
에이전트 IP가 키 자격 증명 모음 및 스토리지 계정 방화벽에 추가되는지 제어합니다. | 선택 사항 | |
enable_firewall_for_keyvaults_and_storage |
선택한 서브넷에 대한 액세스 제한 | 선택 사항 |
iSCSI 매개 변수
변수 | 설명 | Type | 주의 |
---|---|---|---|
iscsi_authentication_type |
iSCSI 가상 머신에 대한 기본 인증을 정의합니다. | 선택 사항 | |
iscsi_authentication_username |
관리자 계정 이름 | 선택 사항 | |
iscsi_count |
iSCSI 가상 머신의 수 | 선택 사항 | |
iscsi_size |
iSCSI 가상 머신의 크기 | 선택 사항 | |
iscsi_image |
사용할 가상 머신 이미지를 정의합니다(다음 표). | 선택 사항 | |
iscsi_nic_ips |
iSCSI 가상 머신의 IP 주소 | 선택 사항 | iscsi_use_DHCP 가 정의된 경우 무시됨 |
iscsi_use_DHCP |
Azure 서브넷에서 제공하는 동적 IP 주소를 사용할지를 제어합니다. | 선택 사항 | |
iscsi_vm_zones |
iSCSI 가상 머신의 가용성 영역 | 선택 사항 |
유틸리티 VM 매개 변수
변수 | 설명 | Type | 주의 |
---|---|---|---|
utility_vm_count |
배포할 유틸리티 가상 머신의 수를 정의합니다. | 선택 사항 | 유틸리티 가상 머신을 사용하여 SAPGui 호스트 |
utility_vm_image |
사용할 가상 머신 이미지를 정의합니다. | 선택 사항 | 기본값: Windows Server 2019 |
utility_vm_nic_ips |
가상 머신의 IP 주소를 정의합니다. | 선택 사항 | |
utility_vm_os_disk_size |
가상 머신의 OS 디스크 크기를 정의합니다. | 선택 사항 | 기본값: 128 |
utility_vm_os_disk_type |
가상 머신의 OS 디스크 형식을 정의합니다. | 선택 사항 | 기본값: Premium_LRS |
utility_vm_size |
유틸리티 가상 머신에 대한 SKU를 정의합니다. | 선택 사항 | 기본값: Standard_D4ds_v4 |
utility_vm_useDHCP |
Azure 서브넷 제공 IP를 사용해야 하는지 여부를 정의합니다. | 선택 사항 | |
`user_assigned_identity_id | 가상 머신에 할당할 사용자 할당 ID | 선택 사항 |
가상 머신 및 운영 체제 이미지는 다음 구조를 사용하여 정의됩니다.
{
os_type = "linux"
type = "marketplace"
source_image_id = ""
publisher = "SUSE"
offer = "sles-sap-15-sp5"
sku = "gen2"
version= " latest"
}
SAP 매개 변수용 Azure Monitor
변수 | 설명 | Type | 주의 |
---|---|---|---|
create_ams_instance |
SAP 인스턴스용 Azure Monitor를 만들어야 하는지를 정의합니다. | 선택 사항 | |
ams_instance_name |
인스턴스의 이름을 정의합니다. | 선택 사항 | |
ams_laws_arm_id |
Log Analytics 작업 영역에 대한 ARM 리소스 ID를 정의합니다. | 선택 사항 |
Terraform 매개 변수
이 표에는 Terraform 매개 변수가 포함되어 있습니다. 배포 스크립트를 사용하지 않는 경우 이러한 매개 변수를 수동으로 입력해야 합니다.
변수 | 설명 | Type |
---|---|---|
tfstate_resource_id |
Terraform 상태 파일을 포함할 SAP 라이브러리의 스토리지 계정에 대한 Azure 리소스 식별자. | Required |
deployer_tfstate_key |
배포자의 상태 파일 이름. | Required |