Terraform 다운로드 및 배포

자체 배포 도구 및 워크플로가 있는 경우 템플릿이나 애플리케이션을 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 코드를 내보낼 수 있습니다.

템플릿

  1. Google Cloud 콘솔에서 템플릿 페이지로 이동합니다.

    템플릿으로 이동

  2. 내보낼 템플릿 ID를 클릭합니다.

  3. 코드 받기를 클릭합니다.

    시스템에서 ZIP 파일을 로컬 컴퓨터에 다운로드합니다. 자체 배포 도구와 워크플로를 사용하여 애플리케이션을 배포할 수 있습니다.

애플리케이션

  1. Google Cloud 콘솔에서 애플리케이션 페이지로 이동합니다.

    애플리케이션으로 이동

  2. 내보낼 애플리케이션 이름을 클릭합니다.

  3. 코드 받기를 클릭합니다.

    시스템에서 ZIP 파일을 로컬 컴퓨터에 다운로드합니다. 자체 배포 도구와 워크플로를 사용하여 애플리케이션을 배포할 수 있습니다.

저장소로 내보내기

소스 코드 관리 저장소를 통해 템플릿을 유지하려면 템플릿과 애플리케이션을 GitHub로 내보내면 됩니다. 예를 들어 다음 작업을 수행하기 위해 내보낼 수 있습니다.

  • 기존 버전 관리 워크플로를 사용합니다.
  • 자체 CI/CD 파이프라인을 사용하여 빌드, 테스트, 배포를 트리거합니다.

저장소에 연결

GitHub 저장소와 관리 프로젝트 간에 Developer Connect 연결을 만들려면 다음 단계를 따르세요.

  1. 조직 정책을 변경하여 다음 서비스를 허용 목록에 추가합니다.

    1. developerconnect.googleapis.com
    2. secretmanager.googleapis.com

    조직 정책을 변경하는 단계는 리소스 서비스 사용량 제한 제약 조건 사용을 참고하세요.

  2. 다음과 같은 GitHub 저장소에 대한 Developer Connect 연결을 만듭니다.

    1. 데이터 상주 사용 설정을 선택합니다.
    2. 애플리케이션을 내보낼 저장소를 연결합니다.

    연결을 만들고 저장소를 연결하는 단계는 GitHub 연결을 참고하세요.

  3. 저장소 URI를 복사하려면 다음 단계를 따르세요.

    1. Developer Connect Git 저장소 페이지를 엽니다.
    2. 저장소 표에서 옵션 더보기를 클릭하고 리소스 경로 복사를 선택합니다.

생성 및 내보내기

Terraform 코드를 생성하고 GitHub 저장소로 내보내려면 다음 단계를 따르세요.

템플릿

  1. 스페이스 ID를 확인합니다.

    gcloud design-center spaces list \
        --project=PROJECT \
        --location=LOCATION
    

    다음을 바꿉니다.

    • PROJECT: 관리 프로젝트 ID입니다.
    • LOCATION: 위치 ID입니다.
  2. 내보낼 템플릿의 템플릿 ID를 식별합니다.

    gcloud design-center spaces application-templates list \
        --space=SPACE \
        --project=PROJECT \
        --location=LOCATION
    

    다음을 바꿉니다.

    • SPACE: 스페이스 ID입니다.
    • PROJECT: 관리 프로젝트 ID입니다.
    • LOCATION: 위치 ID입니다.
  3. 템플릿의 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를 참고하세요.

  4. 저장소를 확인하여 템플릿이 성공적으로 내보내졌는지 확인합니다.

애플리케이션

  1. 스페이스 ID를 확인합니다.

    gcloud design-center spaces list \
        --project=PROJECT \
        --location=LOCATION
    

    다음을 바꿉니다.

    • PROJECT: 관리 프로젝트 ID입니다.
    • LOCATION: 위치 ID입니다.
  2. 내보내려는 애플리케이션의 애플리케이션 ID를 확인합니다.

    gcloud design-center spaces applications list \
        --space=SPACE \
        --project=PROJECT \
        --location=LOCATION
    

    다음을 바꿉니다.

    • SPACE: 스페이스 ID입니다.
    • PROJECT: 관리 프로젝트 ID입니다.
    • LOCATION: 위치 ID입니다.
  3. 애플리케이션의 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를 참고하세요.

  4. 저장소를 확인하여 애플리케이션이 성공적으로 내보내졌는지 확인합니다.

다음 단계

Google Cloud의 Terraform 개요