재사용 가능한 작은 빌딩 블록으로 복잡한 애플리케이션을 빌드하려면 복합 템플릿을 만드세요. 예를 들어 연결된 애플리케이션 템플릿이 여러 개 포함된 복합 템플릿을 만들 수 있습니다.
또한 App Lifecycle Manager로 배포하는 SaaS 제품의 배포 단위를 모델링하고 패키징하는 복합 템플릿을 만들 수도 있습니다. 자세한 내용은 배포 모델 및 패키지 단위를 참고하세요.
표준 애플리케이션 템플릿과 개별 구성요소를 추가하고 연결하여 복합 템플릿을 설계합니다. 이 모듈식 접근 방식을 사용하면 다음을 달성할 수 있습니다.
- 개발 가속화: 작은 구성요소에서 복잡한 앱을 조립합니다. 여러 컴포지트 템플릿에서 각 표준 애플리케이션 템플릿을 재사용할 수 있습니다.
- 병렬 개발 사용 설정: 모듈식 팀이 특정 빌드 블록을 전문적으로 다룰 수 있도록 합니다. 예를 들어 데이터베이스 팀은 애플리케이션 로직 팀에 대한 의존도를 최소화하면서 데이터 저장 및 분석을 처리할 수 있습니다.
- 취약점 영향 감소: 개발자는 전체 애플리케이션을 재배포하지 않고도 빌딩 블록을 업데이트하거나 수정할 수 있습니다.
- 보안 상황 개선: 각 템플릿을 배포하는 별도의 서비스 계정을 만들어 액세스를 제한합니다. 각 팀에 구성하는 빌딩 블록에 대한 권한만 있는지 확인합니다.
이 문서에서는 복합 템플릿을 설계, 확인, 공유하는 방법을 보여줍니다.
시작하기 전에
앱이 사용 설정된 폴더 또는 관리 프로젝트에 다음 역할 중 하나가 있어야 합니다.
- App Design Center 관리자 (
roles/designcenter.admin) - App Design Center 사용자 (
roles/designcenter.user)
자체 표준 애플리케이션 템플릿을 빌딩 블록으로 사용하려면 입력 및 출력 변수를 설정하여 구성 가능한 변수를 설정하고 애플리케이션 템플릿 간에 연결을 만드세요. 자세한 내용은 다음을 참조하세요.
복합 애플리케이션 템플릿 만들기
복잡한 애플리케이션을 설계하고 공유하려면 복합 템플릿을 만드세요. 템플릿 디자인에 다음을 추가하고 연결할 수 있습니다.
표준 애플리케이션 템플릿: 다음 기존 템플릿 중에서 선택합니다.
- Google Cloud 권장사항과 기본 보안 구성을 통합하는 Google에서 설계한 템플릿
- 이전에 만든 후 스페이스의 카탈로그에 추가한 템플릿
구성요소: 다음 Google Cloud 리소스 중에서 선택합니다.
- Google Cloud 권장사항과 기본 보안 구성을 통합하는 Google에서 설계한 구성요소
- 자체 Terraform 모듈을 기반으로 하는 가져오는 구성요소
템플릿 세부정보 지정
템플릿 세부정보는 템플릿을 분류하고 개발자가 템플릿을 사용할지 결정하는 데 도움이 됩니다.
템플릿의 세부정보를 입력하려면 다음 단계를 따르세요.
디자인 캔버스
탐색 메뉴에서 템플릿을 클릭합니다.
템플릿 만들기 목록에서 컴포지트 템플릿을 선택합니다.
템플릿 ID 필드는 자동으로 채워집니다. 또는 템플릿의 고유 식별자를 입력합니다. 필수 필드입니다.
템플릿 이름 필드에 Google Cloud 콘솔에 표시할 사람이 읽을 수 있는 식별자를 입력합니다.
이름을 제공하지 않으면 템플릿 ID가 이 필드에 복사됩니다.
설명 필드에 애플리케이션의 목적을 간략하게 설명합니다.
템플릿 만들기를 클릭합니다. 디자인 캔버스가 표시됩니다.
gcloud CLI
새 복합 애플리케이션 템플릿을 만듭니다.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION \
--composition-type=COMPOSITE
다음을 바꿉니다.
APPLICATION_TEMPLATE: 만들려는 애플리케이션 템플릿의 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.DISPLAY_NAME: Google Cloud 콘솔에 표시되는 이름입니다.DESCRIPTION: 간단한 설명입니다.
자세한 내용은 gcloud design-center spaces application-templates create를 참고하세요.
템플릿 디자인
다음 시작 지점에 표준 애플리케이션 템플릿과 구성요소를 추가하고 연결하여 복합 템플릿을 설계합니다.
- 빈 캔버스
- Google 제공 템플릿
- Gemini 지원으로 생성한 템플릿
템플릿을 디자인하면 App Design Center에서 디자인 및 구성 세부정보를 반영하는 Terraform 코드를 생성합니다.
템플릿을 디자인하려면 다음 단계를 따르세요.
디자인 캔버스
디자인 캔버스에서 디자인을 선택하여 캔버스를 확인합니다.
시작하려면 다음 중 하나를 수행하세요.
Google 제공 템플릿으로 시작하려면 캔버스의 시작하기 영역에서 템플릿 이름을 클릭합니다.
빈 캔버스에서 시작하려면 다음 단계로 진행합니다.
캔버스에 표준 애플리케이션 템플릿을 추가하려면 다음 단계를 따르세요.
구성요소 영역에서 템플릿 삽입을 클릭합니다.
기존 템플릿을 추가하려면 다음 목록 중 하나에서 템플릿을 클릭합니다.
- 템플릿: 공간의 카탈로그에 있거나 공간과 공유된 표준 애플리케이션 템플릿입니다.
- Google 템플릿: Google에서 만들어 Google 카탈로그에 추가한 표준 애플리케이션 템플릿입니다.
선택한 템플릿을 캔버스에 추가하려면 선택을 클릭합니다.
새 표준 애플리케이션 템플릿을 만들려면 새 템플릿 만들기를 클릭합니다. 새 템플릿 만들기 페이지가 열립니다.
자세한 내용은 표준 애플리케이션 템플릿 설계를 참고하세요.
캔버스에 구성요소를 추가하려면 구성요소 영역에서 구성요소를 클릭합니다.
템플릿과 구성요소 간에 통신 채널을 만들려면 다음 중 하나를 실행하세요.
한 템플릿의 파란색 점을 다른 템플릿의 파란색 점으로 드래그합니다.
기존 구성요소에 연결된 구성요소를 추가하려면 추가를 클릭하고 추가할 구성요소를 선택합니다.
연결 세부정보는 각 지원되는 리소스의 구성 문서를 참고하세요.
템플릿 또는 연결을 삭제하려면 다음 단계를 따르세요.
캔버스에서 템플릿 또는 연결을 클릭합니다.
구성 영역에서 삭제를 클릭합니다.
필드에 delete를 입력합니다.
삭제를 클릭합니다.
gcloud CLI
공간의 카탈로그에 있는 빌딩 블록의 템플릿 버전 URI를 식별합니다.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE다음을 바꿉니다.
PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces shared-templates list를 참고하세요.
템플릿에 추가할 Google 카탈로그 빌딩 블록의 템플릿 버전 URI를 식별합니다.
gcloud design-center spaces shared-templates list \ --google-catalog \ --location=us-central1자세한 내용은 gcloud design-center spaces shared-templates list를 참고하세요.
복합 템플릿에 표준 애플리케이션 템플릿 또는 구성요소를 추가합니다.
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI다음을 바꿉니다.
COMPONENT: 템플릿에 추가할 표준 애플리케이션 템플릿 또는 구성요소의 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 표준 애플리케이션 템플릿 또는 구성요소를 추가하는 복합 애플리케이션 템플릿의 템플릿 ID입니다.SHARED_TEMPLATE_URI: 표준 애플리케이션 템플릿 또는 구성요소 공유 템플릿 URI입니다. 예를 들면projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1입니다.
자세한 내용은 gcloud design-center spaces application-templates components create를 참고하세요.
템플릿에 두 번째 표준 애플리케이션 템플릿 또는 구성요소를 추가합니다.
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2다음을 바꿉니다.
COMPONENT_2: 템플릿에 추가할 두 번째 표준 애플리케이션 템플릿 또는 구성요소의 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 표준 애플리케이션 템플릿 또는 구성요소를 추가할 복합 템플릿의 템플릿 ID입니다.SHARED_TEMPLATE_URI_2: 두 번째 표준 애플리케이션 템플릿 또는 공유 구성요소 템플릿 URI입니다. 예를 들면projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1입니다.
자세한 내용은 gcloud design-center spaces application-templates components create를 참고하세요.
표준 애플리케이션 템플릿 또는 구성요소 간에 연결을 만듭니다.
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=COMPONENT_2다음을 바꿉니다.
CONNECTION: 템플릿에 추가하려는 연결의 연결 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 연결을 추가할 애플리케이션 템플릿의 템플릿 ID입니다.COMPONENT: 소스 표준 애플리케이션 템플릿 또는 구성요소 ID입니다.COMPONENT_2: 대상 표준 애플리케이션 템플릿 또는 구성요소 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates components connections create를 참고하세요.
구성요소의 기본값 구성
템플릿에 추가하는 각 구성요소에 대해 리소스의 프로젝트 및 배포 위치와 같은 기본 구성 세부정보를 지정할 수 있습니다. 이 템플릿에서 애플리케이션을 만들면 App Design Center에서 이러한 기본값을 적용합니다.
애플리케이션 개발자는 기본 구성이 요구사항을 충족하지 않는 경우 연결 세부정보를 수정할 수도 있습니다. 예를 들어 애플리케이션을 만들 때 환경 변수 키 이름을 수정하거나, 연결 포트를 변경하거나, 서비스 계정에 역할을 추가할 수 있습니다.
개발자는 애플리케이션을 배포하기 전에 템플릿에서 구성한 기본값을 보고 수정할 수 있습니다. 개발자는 각 지원되는 리소스에 필요한 세부정보를 구성해야 합니다.
구성요소와 연결을 구성하려면 다음 단계를 따르세요.
디자인 캔버스
디자인 캔버스에서 구성요소를 클릭합니다.
구성 영역의 프로젝트 ID 목록에서 리소스를 배포할 프로젝트를 선택합니다. 다음 조건을 충족하는 프로젝트를 선택합니다.
리소스의 추가 설정을 구성합니다. 예를 들어 Cloud SQL의 경우 다음을 구성할 수 있습니다.
- 리전
- 백업 구성
- 데이터베이스 플래그
- IP 구성
각 구성요소의 구성 문서 링크는 지원되는 리소스를 참고하세요.
디자인 캔버스에서 구성요소를 연결하면 기본 구성 값이 연결을 만드는 데 사용됩니다. 연결 세부정보를 추가하거나 수정하려면 다음 단계를 따르세요.
디자인 캔버스에서 두 구성요소 간의 연결을 클릭합니다. 연결 패널이 열리고 연결 매개변수가 표시됩니다.
다음 중 하나를 수행합니다.
기존 연결 매개변수를 수정하려면 수정을 클릭합니다.
새 연결 매개변수를 추가하려면 매개변수 추가를 클릭합니다.
키 및 값 필드를 업데이트합니다. 예를 들어 다음 세부정보를 수정할 수 있습니다.
- 애플리케이션 요구사항에 맞게 조정할 환경 변수 키 이름입니다.
- 연결 포트 값입니다.
- 서비스 계정에 추가된 역할입니다.
저장을 클릭합니다.
gcloud CLI
애플리케이션 템플릿의 각 구성요소를 설명하여 구성요소 매개변수를 확인합니다.
gcloud design-center spaces application-templates components describe COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE다음을 바꿉니다.
COMPONENT: 설명하려는 구성요소의 구성요소 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.APPLICATION_TEMPLATE: 애플리케이션 템플릿의 템플릿 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates components describe를 참고하세요.
수정하려는 각 구성요소에 대해 홈 디렉터리에 매개변수 값이 포함된 JSON 파일을 만듭니다.
예를 들어 Cloud Run 구성요소에 대해 다음 파일을 만들 수 있습니다.
[ { "key": "service_name", "value": "frontend-service" }, { "key": "project_id", "value": "DEPLOYMENT_PROJECT" } ]애플리케이션 템플릿의 각 구성요소를 업데이트하여 필수 매개변수를 구성합니다.
gcloud design-center spaces application-templates components update COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --parameters=PARAMETERS_FILE_PATH \ --application-template=APPLICATION_TEMPLATE다음을 바꿉니다.
COMPONENT: 업데이트할 구성요소의 구성요소 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.PARAMETERS_FILE_PATH: 구성요소 매개변수가 포함된 JSON 파일입니다.APPLICATION_TEMPLATE: 애플리케이션 템플릿의 템플릿 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates components update를 참고하세요.
구성요소 연결을 설명합니다.
gcloud design-center spaces application-templates components connections describe CONNECTION \ --component=COMPONENT \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE다음을 바꿉니다.
CONNECTION: 연결 ID입니다.COMPONENT: 구성요소 ID입니다.APPLICATION_TEMPLATE: 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates components connections describe를 참고하세요.
구성요소 연결 매개변수를 수정합니다.
gcloud design-center spaces application-templates components connections update CONNECTION \ --component=COMPONENT \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-component-parameters='[{"key": SOURCE_KEY, "value": SOURCE_VALUE}]'다음을 바꿉니다.
CONNECTION: 연결 ID입니다.COMPONENT: 구성요소 ID입니다.APPLICATION_TEMPLATE: 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.SOURCE_KEY: 새 매개변수 키입니다.SOURCE_VALUE: 새 파라미터 값입니다.
자세한 내용은 gcloud design-center spaces application-templates components connections update를 참고하세요.
표준 애플리케이션 템플릿 구성
개발자가 컴포지트 템플릿을 애플리케이션으로 배포하면 다음 각각에 대해 애플리케이션이 생성됩니다.
- 각 표준 애플리케이션 템플릿 그룹
- 각 구성요소 그룹
각 그룹의 기본값을 제공할 수 있습니다. 예를 들어 배포 프로젝트, 리전, 소유자를 포함할 수 있습니다. 개발자가 App Design Center에 애플리케이션을 배포할 때 기본값을 사용하거나 각 애플리케이션에 자체 세부정보를 지정할 수 있습니다.
각 그룹의 기본 애플리케이션 세부정보를 제공하려면 다음 단계를 따르세요.
디자인 캔버스
디자인 캔버스에서 표준 애플리케이션 템플릿을 클릭합니다.
삽입된 템플릿 패널이 열립니다.
구성 영역에 애플리케이션 세부정보를 입력합니다.
자세한 내용은 애플리케이션 초안 만들기를 참고하세요.
gcloud CLI
자세한 내용은 템플릿 디자인을 참고하세요.
템플릿 확인
개발자와 컴포지트 템플릿을 공유하기 전에 App Design Center에서 템플릿을 배포하고 확인하세요. 이 단계는 여러 머신에 확장된 배포를 하기 전에 기능을 확인하는 데 도움이 됩니다.
템플릿을 확인하려면 다음 단계를 따르세요.
디자인 캔버스에서 계속을 클릭하고 배포할 애플리케이션 만들기를 선택합니다.
애플리케이션 만들기 패널이 열립니다.
복합 애플리케이션 세부정보 영역에 애플리케이션 세부정보를 입력합니다.
자세한 내용은 애플리케이션 초안 만들기를 참고하세요.
다음을 클릭합니다.
복합 템플릿에 추가한 각 빌딩 블록에 대해 배포 시 애플리케이션이 생성됩니다. 각 애플리케이션을 구성하고 Next를 클릭합니다.
자세한 내용은 애플리케이션 초안 만들기를 참고하세요.
배포된 애플리케이션을 테스트하여 요구사항을 충족하는지 확인합니다.
반복되는 비용이 발생하지 않도록 테스트 배포를 삭제하세요.
확장된 배포 만들기
복합 템플릿의 여러 인스턴스를 배포하고 관리하려면 App Lifecycle Manager를 사용하세요.
App Design Center에서 템플릿을 확인합니다.
디자인 캔버스에서 계속을 클릭하고 앱 수명 주기 관리자로 규모에 맞게 배포를 선택합니다.
App Lifecycle Manager Units 페이지가 열립니다.
배포 단계는 SaaS 제품 배포를 참고하세요.
템플릿 공유
개발자가 템플릿을 사용할 수 있도록 하려면 카탈로그에 추가하고 공유하면 됩니다. 카탈로그에 템플릿을 추가하면 카탈로그가 공유된 공간에서 템플릿을 애플리케이션 소스로 사용할 수 있습니다.
템플릿을 공유하려면 다음 단계를 따르세요.
디자인 캔버스에서 카탈로그에 추가를 클릭합니다.
카탈로그가 공유되는 스페이스를 관리하려면 카탈로그 관리를 참고하세요.
템플릿 수정 및 다시 공유
애플리케이션에 대한 경험이 쌓이고 비즈니스 요구사항이 발전함에 따라 템플릿을 업데이트할 수 있습니다. 예를 들어 캐싱을 위해 Memorystore 서비스를 추가하여 백엔드 서비스의 성능을 개선할 수 있습니다.
템플릿을 수정하면 템플릿 버전이 생성됩니다. 기존 애플리케이션에 변경사항을 적용하려면 개발자가 수정 버전을 사용하여 애플리케이션을 배포해야 합니다.
App Design Center는 템플릿 버전을 카탈로그에 자동으로 게시하지 않습니다. 최신 버전을 공유하려면 템플릿을 카탈로그에 다시 게시하세요.
새 버전을 만들려면 다음 단계를 따르세요.
탐색 메뉴에서 템플릿을 클릭합니다.
수정하려는 애플리케이션 템플릿을 선택합니다. 캔버스가 열립니다.
새 요구사항에 맞게 템플릿을 수정합니다. 예를 들어 새 구성요소를 추가하고 구성합니다.
최신 버전을 다른 공간과 공유하려면 카탈로그에 템플릿을 다시 추가하세요.
템플릿 삭제
템플릿이 더 이상 필요하지 않으면 삭제할 수 있습니다.
디자인 캔버스
- 디자인 캔버스에서 작업을 클릭합니다.
- 삭제를 클릭합니다.
gcloud CLI
애플리케이션 템플릿을 삭제합니다.
```sh
gcloud design-center spaces application-templates delete APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE
```
다음을 바꿉니다.
APPLICATION_TEMPLATE: 삭제할 애플리케이션 템플릿의 템플릿 ID입니다.PROJECT: 관리 프로젝트 ID입니다.LOCATION: 애플리케이션 템플릿 리전입니다.SPACE: 스페이스 ID입니다.
자세한 내용은 gcloud design-center spaces application-templates delete를 참고하세요.
다음 단계
앱 수명 주기 관리자로 복합 템플릿을 배포하려면 SaaS 제품 배포를 참고하세요.
다른 공간과 템플릿을 공유하려면 카탈로그를 만들어 공유하세요.
애플리케이션 템플릿 설계에서 자체 Terraform 모듈을 사용하려면 구성요소를 가져오세요.