이 문서에서는 App Design Center에서 설계한 템플릿 또는 애플리케이션의 Terraform을 다운로드하는 방법을 설명합니다. 자체 CI/CD 도구로 애플리케이션을 배포하려는 경우 이 옵션을 사용하세요.
자체 도구를 사용하여 이 코드를 다운로드하고 배포하면 내보낸 Terraform 파일에 App Hub에 애플리케이션을 자동으로 등록하는 로직이 포함됩니다. 이 기능을 사용하면 Security Command Center에서 런타임 모니터링을 사용할 수 있습니다.
하지만 애플리케이션을 외부에서 배포하므로 애플리케이션은 관리되지 않는 애플리케이션으로 취급됩니다. 따라서 관리형 애플리케이션 전용의 애플리케이션 중심 Google Cloud 기능(예: 설계 시 보안 평가 및 근본 원인 해결을 위한 소스 추적 보안 발견 항목 )을 사용할 수 없습니다.
App Design Center에서 애플리케이션 수명 주기 관리를 최대한 활용하고 모든 애플리케이션 중심 Google Cloud 기능을 사용하려면 App Design Center를 사용하여 애플리케이션을 배포하세요.
시스템에서 다음 Terraform 파일을 생성합니다.
main.tf: 템플릿의 각 구성요소에 대한 모듈이 포함된 인프라 코드입니다.outputs.tf: 배포된 인프라 구성요소에 대한 정보를 노출합니다.variables.tf:main.tf파일에 사용된 변수의 이름, 유형, 설명을 선언합니다.input.tfvars:main.tf파일에 사용된 변수의 값을 정의합니다.providers.tf: Terraform이 API 및 리소스와 상호작용하는 데 도움이 되는 라벨을 정의합니다. Google Cloud
배경 정보는 의 Terraform 개요를 참조하세요. Google Cloud
시작하기 전에
이 문서의 작업을 수행하려면 관리자에게 다음 표에 나열된 대로 앱 지원 폴더 또는 관리 프로젝트에 필요한 역할을 부여해 달라고 요청하세요.
| 작업 | 필요한 역할 |
|---|---|
| 생성된 Terraform 코드를 로컬 또는 소스 제어 저장소로 내보내기 | 애플리케이션 관리자 (roles/designcenter.applicationAdmin) 또는애플리케이션 편집자 ( roles/designcenter.applicationEditor) |
역할에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
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를 참조하세요.
저장소를 보고 애플리케이션이 내보내졌는지 확인합니다.
다음 단계
- Google 템플릿을 기반으로 빌드하여 사전 구성된 아키텍처를 시작합니다.
- 애플리케이션 템플릿을 설계하여 자체 구성을 정의합니다.
- Terraform 개요 Google Cloud 에서 Terraform을 Google Cloud 사용하는 방법을 알아봅니다.