배포 가능한 아키텍처 구성
프로젝트에 배포 가능한 아키텍처를 추가한 후에는 입력 값을 편집하여 배포를 위한 아키텍처를 구성할 수 있습니다.
구성 설정은 일반적일 수 있지만, 많은 프로젝트에서는 구성 설정 또는 구성 설정 그룹을 사용하여 리소스를 서로 다른 환경에 배포합니다. 예를 들어, 구성 그룹을 사용하여 개발, 테스트 및 프로덕션 환경에 리소스를 배포하고 환경 외부에서 공통 서비스를 설정할 수 있습니다. 구성을 배포할 때 IBM Cloud® Schematics Terraform을 사용하여 기본 플랜을 적용합니다.
아키텍처를 배포하기 전에 배포 가능한 아키텍처의 입력값, 계획, 규정 준수 및 예상 비용을 검증해야 합니다. 구성 변경 사항은 문제나 장애가 발생하지 않도록 검증됩니다.
입력값 설정
입력 값은 배포 가능한 아키텍처를 특정 요구 사항에 맞게 구성하는 데 사용됩니다. 필요한 입력값은 선택한 배포 가능한 아키텍처에 따라 달라집니다. 아키텍처 설계 방식에 따라 일부 입력 항목에는 선택 가능한 옵션 세트가 포함될 수 있으며, 또는 필드에 텍스트 문자열로 값을 직접 입력할 수도 있습니다.
참조 값
구성 요소들은 하나의 구성 요소의 출력을 다른 구성 요소의 입력으로 사용하여 서로 연결될 수 있습니다. 예를 들어, 애플리케이션 구성은 클러스터 ID와 같은 인프라 구성의 출력을 사용하여 해당 인프라에 배포할 수 있습니다. 이를 달성하기 위해 다른 구성의 입력 또는 출력에 대한 참조를 추가할 수 있습니다. 환경에서 매개변수를 참조할 수도 있습니다. 참조를 추가하면 해당 값이 입력, 출력 또는 환경에서 가져와 구성 중인 아키텍처의 입력 값으로 사용됩니다.
콘솔에서 구성 중인 아키텍처에 참조를 추가하려면 입력란 위에 마우스를 올려놓고 참고 아이콘을 선택하세요 .
API 또는 CLI를 사용하여 배포 가능한 아키텍처를 구성하거나 배포 가능한 아키텍처 스택 정의를 편집 중이며 참조를 포함하려는 경우, 이를 텍스트 문자열로 작성할 수 있습니다. 참조 항목은 URL 사양을 준수하지만, 대신 다른 ref``http 프로토콜을 사용합니다.
웹사이트의 URL과 마찬가지로, 현재 컨텍스트에 상대적인 참조를 작성할 수 있습니다. 예를 들어, 현재 편집 중인 구성 내부의 입력에 대한 참조를 추가하는 경우, 현재 경로는 /configs/<configname> 이며 해당 경로에 상대적인 참조를 작성할 수 있습니다. 예를 들어, 동일한 구성 내에서 라는 region ref:./inputs/region 이름의 입력에 대한 참조를 추가합니다. 이 경우, 편집 중인 구성을 배포하지 않아도 구성 내부의 다른 값을 참조할 수 있습니다.
프로젝트에서 배포된 구성을 열고 '출력' 탭으로 이동하면 참조할 출력 이름을 확인할 수 있습니다.
구성에서 값 참조하기
구성에서 값을 참조하는 일반적인 형식은 다음과 같습니다:
ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.
프로젝트에서 배포된 구성의 입력 또는 출력을 참조할 수 있습니다. 예를 들어, 다음 참조는 구성 ProdCluster 내의 라는 cluster_id 이름의 출력을 가리킵니다: ref:/configs/ProdCluster/outputs/cluster_id.
현재 편집 중인 구성 내에서 다른 입력에 대한 상대 참조를 추가할 수 있습니다. 해당 구성을 배포할 필요는 없습니다.
실험적
프로젝트에서 구성들을 함께 쌓았다면, 함께 쌓인 구성들 간에 출력을 참조할 수 있습니다. 값을 참조하는 일반적인 형식은 다음과 같습니다:
ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>
상대 참조를 하고 싶다면 그렇게 할 수 있습니다. 함께 쌓인 구성 요소들 간의 상대적 참조는 다음과 같이 ref:../<member_name>/inputs_or_outputs/<input_or_output_name> 형식화됩니다. 그러나 스택 정의에서 값을 참조하는 경우, 멤버 구성 내에서 다음과 ref:../../inputs/<input_name> 같이 형식화됩니다. 현재 멤버는 스택 정의의 출력을 참조할 수 없습니다.
환경으로부터 입력값 참조하기
환경은 구성(configuration)이 아닌 프로젝트(project) 내에서 생성되므로, 환경 내의 매개변수를 참조하려는 경우 ``를 /configs/<configname> 포함할 필요가 없습니다. 그러나 참조 environments 유형 뒤에 환경 이름을 반드시 포함해야 합니다. 그런 다음, 참조하려는 입력의 이름을 지정하고 inputs 제공하십시오: ref:./environments/<environment_name>/inputs/<name>. 환경에서 인증 매개변수 또는 준수 프로필에 대한 참조를 추가할 수 없습니다.
예를 들어, 다음 참조는 환경 Production 내에서 라는 cluster_id 이름의 입력 매개변수를 가리킵니다: ref:./environments/Production/inputs/cluster_id.
콘솔을 사용하여 아키텍처 구성
사용자 지정 구성을 만들려면 다음 단계를 완료하세요:
-
보안 패널에서 아키텍처 배포에 사용할 인증 방법을 선택하십시오.
테스트 목적으로 개념 증명(PoC)을 배포하는 것입니까? 프로젝트에서 구성을 편집할 때 API 키를 생성할 수 있습니다. 이렇게 하면 프로젝트가 현재 선택된 계정에 배포할 수 있도록 허용됩니다. 그렇지 않으면 IBM Cloud® Secrets Manager 를 사용하여 API 키를 추가할 수 있습니다. 이 권한은 프로젝트가 대상 계정에 배포할 수 있도록 허용하며, 아키텍처를 배포하는 데 필수적입니다. 자세한 내용은 Secrets Manager 에서 API 키를 사용하여 아키텍처 배포를 위한 프로젝트 인증을 참조하십시오.
-
검증 과정에서 코드 위험 분석기 스캔 이 아키텍처에 실행됩니다. 검증 중에 사용할 정책을 선택하십시오. 대상 계정에 인스턴스가 Workload Protection 설정되어 있다면, 또는 옵션을 다음 중에서 선택하십시오 Workload Protection 사용할 수 건축 기본값 있습니다.
Architecture 기본값을 선택하는 경우:
- 스캔은 배포 가능한 아키텍처의 소유자가 온보딩할 때 추가한 기본 정책을 사용합니다.
- 아키텍처 소유자가 추가한 정책에는 요구 사항이 포함됩니다. 지원되는 규칙 집합에도 포함된 요구사항이 확인됩니다.
- 지원되는 규칙 목록에 포함되지 않은 아키텍처 소유자가 추가한 모든 추가 요구 사항은 구성을 검증할 때 확인되지 않습니다.
- 배포 가능 아키텍처의 소유자가 제품에 정책을 추가하지 않은 경우, 전체 규칙 세트가 사용됩니다.
추가된 요구 사항 목록을 보려면 IBM Cloud® 카탈로그로 이동하여 구성 중인 배포 가능 아키텍처를 선택하십시오. 보안 및 규정 준수 탭에는 배포 가능한 아키텍처에 추가된 모든 요구 사항이 나열됩니다.
Workload Protection 에서 선택을 선택하는 경우, 배포하려는 대상 계정에 해당 서비스의 인스턴스가 존재해야 합니다.
-
입력 패널에서 배포 가능한 아키텍처 구성을 위한 필수 입력값을 입력하십시오.
배포 가능한 아키텍처에 따라 일부 입력값은 다른 아키텍처 참조 또는 고정값을 통해 자동으로 구성될 수 있습니다. 이러한 값들은 배포 가능 아키텍처의 제작자가 제공한 것입니다. 이러한 값, 특히 참조 값을 편집할 때는 주의하십시오. 다른 값으로 설정할 경우 아키텍처가 성공적으로 배포되지 않을 수 있습니다. 입력란 위에 마우스를 올려놓고 '재설정'을 클릭하면 작성자가 지정한 고정값으로 입력을 되돌릴 수 있습니다. 입력 참조를 재설정할 수 없습니다. 고정값을 가진 입력값만 원래의 고정값으로 재설정할 수 있습니다.
-
선택 사항: 선택 사항 입력란을 켜진 상태로 전환하여 선택 사항 입력란의 값을 입력하십시오.
-
저장 을 클릭하십시오.
-
유효성 검증 을 클릭하십시오. 표시되는 모달 창은 진행 중인 유효성 검사에 대한 자세한 정보를 제공합니다.
검증이 실패하면, 실패 원인을 진단할 수 있습니다. 또는 IBM Cloud 프로젝트 서비스의 관리자가 Schematics 서비스를 통해 결과를 검토하고 실패를 무시하며 구성을 승인하여 배포를 진행할 수 있습니다. 그러나 파이프라인이 코드 위험 분석기 스캔으로 인해 실패했는지, 아니면 검증 또는 실행 계획 실패로 인한 것이 아닌지 확인하십시오. 검증 또는 계획 실패로 인해 표시된 오류를 재정의하는 것은 권장되지 않습니다. 구성 요소가 성공적으로 배포되지 않을 수 있기 때문입니다. 프로젝트의 보안 및 규정 준수에 대한 자세한 내용은 '기업으로서 지속적인 규정 준수 달성'을 참조하십시오.
스택 형태로 결합된 배포 가능 아키텍처를 구성하는 경우, 각 아키텍처의 종속성에 따라 순차적으로 검증해야 합니다. 또는 프로젝트 설정을 편집하여 성공적으로 검증된 구성 변경 사항을 자동으로 배포하도록 설정할 수 있습니다. 이렇게 하면 각 아키텍처는 의존성에 따라 자동으로 검증, 승인 및 배포됩니다. 자세한 내용은 아키텍처 배포를 참조하십시오.
콘솔을 사용하여 구성 변경 승인
구성 검증을 완료한 후에는 변경 사항이 IBM Cloud 프로젝트 서비스의 편집자 또는 관리자에 의해 승인되어야 합니다. 변경 사항을 승인하려면 다음 단계를 완료하세요:
- 프로젝트 목록에서 프로젝트를 선택하십시오.
- 프로젝트의 개요 탭에서 처리되지 않은 주의 사항이 있는지 확인하십시오. 주의가 필요한 항목은 배포 기능을 차단할 수 있습니다.
- 구성 탭으로 이동하여 배포 가능한 아키텍처 구성을 선택하십시오.
- 편집을 클릭하십시오.
- 마지막 유효성 검사 보기를 클릭합니다.
- 승인에 대한 자세한 내용을 설명하는 댓글을 추가한 후 '승인'을 클릭하세요.
코드 위험 분석기(Code Risk Analyzer) 스캔으로 인해 유효성 검사가 실패한 경우, IBM Cloud Projects 서비스의 관리자가 실패를 무시하고 구성을 승인하여 배포할 수 있습니다.
CLI를 사용하여 아키텍처 구성
CLI를 사용하여 프로젝트에 구성을 추가하려면 다음 ibmcloud project config-create 명령을 실행하십시오:
ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]
명령어 매개변수에 대한 자세한 내용은 을 참조하십시오 ibmcloud project config-create.
CLI를 사용하여 구성 변경 승인
-
다음
ibmcloud project config-validate명령어를 실행하여 구성에 대한 유효성 검사를 수행하십시오:ibmcloud project config-validate --project-id PROJECT-ID --id ID명령어 매개변수에 대한 자세한 내용은 을 참조하십시오
ibmcloud project config-validate. -
구성 검증을 완료한 후, 다음
ibmcloud project config-approve명령어를 실행하여 구성 편집 내용을 승인하고 메인 구성으로 병합하십시오:ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]명령어 매개변수에 대한 자세한 내용은 을 참조하십시오
ibmcloud project config-approve.
API를 사용하여 아키텍처 구성하기
다음 샘플 요청에서 보여주는 것처럼 프로젝트 API 를 호출하여 프로그래밍 방식으로 프로젝트에 구성을 추가할 수 있습니다. 이 예제는 프로젝트에 My new configuration 이름이 인 구성을 추가합니다:
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
"{base_url}/v1/projects/{project_id}/configs"
API를 사용하여 구성 변경 승인
다음 샘플 요청에서 보여주는 것처럼 프로젝트 API 를 호출하여 구성 편집을 프로그래밍 방식으로 승인하고 이를 메인 구성에 병합할 수 있습니다. 이 예제는 구성 편집을 승인하고 이를 구성에 병합합니다:
curl -X POST --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{ "comment": "Approving the changes" }' \
"{base_url}/v1/projects/{project_id}/configs/{id}/approve"