자체 배포 도구 및 워크플로가 있는 경우 템플릿이나 애플리케이션을 Terraform 파일로 다운로드할 수 있습니다.
시스템에서 다음 Terraform 파일을 생성합니다.
main.tf: 템플릿의 각 구성요소에 대한 모듈이 포함된 인프라 코드입니다.outputs.tf: 배포된 인프라 구성요소에 관한 정보를 노출합니다.variables.tf:main.tf파일에 사용된 변수의 이름, 유형, 설명을 선언합니다.input.tfvars:main.tf파일에 사용된 변수의 값을 정의합니다.providers.tf: Terraform이 Google Cloud API 및 리소스와 상호작용하는 데 도움이 되는 라벨을 정의합니다.
배경 정보는 Google Cloud의 Terraform 개요를 참고하세요.
자체 배포 도구와 워크플로가 없는 경우 Google Cloud 콘솔에서 애플리케이션 배포를 참고하세요.
시작하기 전에
관리자에게 앱 지원 폴더 또는 관리 프로젝트에 대한 다음 역할 중 하나를 부여해 달라고 요청하세요.
- 애플리케이션 관리자 (
roles/designcenter.applicationAdmin) - 애플리케이션 편집자 (
roles/designcenter.applicationEditor)
Terraform 코드 내보내기
Google Cloud외부에서 템플릿과 애플리케이션을 유지하려면 Terraform을 생성하고 로컬 머신이나 코드 저장소로 내보내면 됩니다.
로컬로 내보내기
템플릿 또는 애플리케이션에서 생성된 Terraform 코드를 내보낼 수 있습니다.
템플릿
Google Cloud 콘솔에서 템플릿 페이지로 이동합니다.
내보낼 템플릿 ID를 클릭합니다.
코드 받기를 클릭합니다.
시스템에서 ZIP 파일을 로컬 컴퓨터에 다운로드합니다. 자체 배포 도구와 워크플로를 사용하여 애플리케이션을 배포할 수 있습니다.
애플리케이션
Google Cloud 콘솔에서 애플리케이션 페이지로 이동합니다.
내보낼 애플리케이션 이름을 클릭합니다.
코드 받기를 클릭합니다.
시스템에서 ZIP 파일을 로컬 컴퓨터에 다운로드합니다. 자체 배포 도구와 워크플로를 사용하여 애플리케이션을 배포할 수 있습니다.
저장소로 내보내기
소스 코드 관리 저장소를 통해 템플릿을 유지하려면 템플릿과 애플리케이션을 GitHub로 내보내면 됩니다. 예를 들어 다음 작업을 수행하기 위해 내보낼 수 있습니다.
- 기존 버전 관리 워크플로를 사용합니다.
- 자체 CI/CD 파이프라인을 사용하여 빌드, 테스트, 배포를 트리거합니다.
저장소에 연결
GitHub 저장소와 관리 프로젝트 간에 Developer Connect 연결을 만들려면 다음 단계를 따르세요.
조직 정책을 변경하여 다음 서비스를 허용 목록에 추가합니다.
developerconnect.googleapis.com개secretmanager.googleapis.com개
조직 정책을 변경하는 단계는 리소스 서비스 사용량 제한 제약 조건 사용을 참고하세요.
다음과 같은 GitHub 저장소에 대한 Developer Connect 연결을 만듭니다.
- 데이터 상주 사용 설정을 선택합니다.
- 애플리케이션을 내보낼 저장소를 연결합니다.
연결을 만들고 저장소를 연결하는 단계는 GitHub 연결을 참고하세요.
저장소 URI를 복사하려면 다음 단계를 따르세요.
- Developer Connect Git 저장소 페이지를 엽니다.
- 저장소 표에서 옵션 더보기를 클릭하고 리소스 경로 복사를 선택합니다.
생성 및 내보내기
Terraform 코드를 생성하고 GitHub 저장소로 내보내려면 다음 단계를 따르세요.
템플릿
스페이스 ID를 확인합니다.
gcloud design-center spaces list \ --project=PROJECT \ --location=LOCATION다음을 바꿉니다.
PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.
내보낼 템플릿의 템플릿 ID를 식별합니다.
gcloud design-center spaces application-templates list \ --space=SPACE \ --project=PROJECT \ --location=LOCATION다음을 바꿉니다.
SPACE: 스페이스 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.
템플릿의 Terraform 코드를 생성하고 GitHub로 내보냅니다.
gcloud design-center spaces application-templates generate APPLICATION_TEMPLATE \ --space=SPACE \ --project=PROJECT \ --location=LOCATION \ --developer-connect-export-config-repo-uri=DEVELOPER_CONNECT_EXPORT_CONFIG_REPO_URI \ --developer-connect-export-config-dir=DEVELOPER_CONNECT_EXPORT_CONFIG_DIR \ --developer-connect-export-config-branch=DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH다음을 바꿉니다.
APPLICATION_TEMPLATE: 내보낼 템플릿의 템플릿 ID입니다.SPACE: 스페이스 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.DEVELOPER_CONNECT_EXPORT_CONFIG_DIR: GitHub 저장소를 기준으로 하는 디렉터리입니다.DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH: GitHub 저장소의 브랜치입니다.
자세한 내용은 gcloud design-center spaces application-templates generate를 참고하세요.
저장소를 확인하여 템플릿이 성공적으로 내보내졌는지 확인합니다.
애플리케이션
스페이스 ID를 확인합니다.
gcloud design-center spaces list \ --project=PROJECT \ --location=LOCATION다음을 바꿉니다.
PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.
내보내려는 애플리케이션의 애플리케이션 ID를 확인합니다.
gcloud design-center spaces applications list \ --space=SPACE \ --project=PROJECT \ --location=LOCATION다음을 바꿉니다.
SPACE: 스페이스 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.
애플리케이션의 Terraform 코드를 생성하고 GitHub로 내보냅니다.
gcloud design-center spaces applications generate APPLICATION \ --space=SPACE \ --project=PROJECT \ --location=LOCATION \ --developer-connect-export-config-repo-uri=DEVELOPER_CONNECT_EXPORT_CONFIG_REPO_URI \ --developer-connect-export-config-dir=DEVELOPER_CONNECT_EXPORT_CONFIG_DIR \ --developer-connect-export-config-branch=DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH다음을 바꿉니다.
APPLICATION: 내보낼 애플리케이션의 애플리케이션 ID입니다.SPACE: 스페이스 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 위치 ID입니다.DEVELOPER_CONNECT_EXPORT_CONFIG_DIR: GitHub 저장소를 기준으로 하는 디렉터리입니다.DEVELOPER_CONNECT_EXPORT_CONFIG_BRANCH: GitHub 저장소의 브랜치입니다.
자세한 내용은 gcloud design-center spaces applications generate를 참고하세요.
저장소를 확인하여 애플리케이션이 성공적으로 내보내졌는지 확인합니다.