IBM Cloud 배포 가능한 아키텍처를 사용자 지정하여 자체 인프라 구축하기
이 튜토리얼에서는 기존 배포 가능한 아키텍처( IBM Cloud® )를 기반으로 비즈니스 요구 사항을 충족하는 사용자 지정 배포 가능한 아키텍처를 만드는 방법을 안내합니다. 이 튜토리얼을 완료하면 테라폼 파일을 다운로드하고, 변수를 업데이트한 다음 업데이트된 아키텍처를 테스트하는 방법을 배울 수 있습니다.
IBM Cloud 배포 가능한 아키텍처로 시작하면 처음부터 인프라 아키텍처를 만드는 것에 대해 걱정할 필요가 없습니다. IBM Cloud 배치 가능한 아키텍처를 사용하고 특정 요구사항을 충족하도록 구성하여 바로 시작할 수 있습니다.
여러분이 가상의 회사인 Example Corp의 클라우드 자동화 엔지니어링 전문가라고 가정해 보세요. 인프라 아키텍트가 IBM Cloud 카탈로그를 검색하다가 대부분의 요구 사항을 충족하는 배포 가능한 아키텍처인 Code Engine 용 Cloud 자동화를 발견했습니다. 그러나 인프라 설계자는 비즈니스 요구 사항을 충족하기 위해 다음과 같은 변경을 요구합니다:
- 원치 않는 변수를 제거합니다.
- IBM Cloud 지역을 미국 배포 지역으로 제한합니다.
- 배포 가능한 아키텍처를 업데이트하여 예시 기업의 AI 애플리케이션을 참조하세요.
이 학습서에서는 가상의 시나리오를 사용하여 배치 가능한 아키텍처에 대한 몇 가지 구성 옵션을 학습하고 이해하는 데 도움을 줍니다. 이 문서에서는 배포 가능한 아키텍처를 사용자 지정하여 컨테이너화된 애플리케이션의 배포를 자동화하는 방법을 설명합니다( IBM Cloud Code Engine ). icr.io/codeengine/helloworld 의 기존 컨테이너 이미지가 예제 애플리케이션으로 사용됩니다. 튜토리얼을
완료하면서 각 단계를 조직의 필요에 맞게 조정하세요.
시작하기 전에
-
아키텍처를 구축하려면 테라폼에 대해 잘 알고 있어야 합니다.
-
IBM Cloud 콘솔에서 관리 > 계정 > 계정 설정 으로 이동하여 종량과금제 또는 구독 계정을 사용 중인지 확인하십시오.
-
배포 가능한 아키텍처를 저장할 리포지토리를 만듭니다. 이 학습서의 목적을 위해 GitHub 가 사용됩니다. 자세한 정보는 저장소 작성을 참조하십시오.
-
예를 들어 원하는 편집기를 설치합니다, Visual Studio Code.
-
다음 IBM Cloud Identity and Access Management (IAM) 역할이 할당되었는지 확인합니다:
- 모든 IAM 계정 관리 서비스, 모든 계정 관리 서비스 및 모든 ID 및 액세스 사용 서비스의 관리자.
- 카탈로그 관리 서비스의 편집기.
- Schematics 에 대한 관리자 서비스 액세스 역할입니다.
- 배포 가능한 아키텍처의 특정 리소스에 필요한 기타 역할입니다. Code Engine 에 대한 클라우드 자동화는 Code Engine 서비스의 모든 리소스로 범위가 지정된 Writer 서비스 액세스 역할이 필요합니다.
자세한 내용은 계정 관리 서비스에 액세스 권한 할당하기 및 리소스에 대한 액세스 권한 관리하기를 참조하세요.
배치 가능한 아키텍처 파일 다운로드
시작하려면 배치 가능한 아키텍처 파일을 다운로드해야 합니다. 파일에는 루트 Terraform 모듈을 호출하는 main.tf 파일이 포함되어 있습니다.
-
IBM Cloud 콘솔에서 카탈로그를 클릭합니다.
-
검색창에
Cloud automation for Code Engine을 입력하고 검색 결과 목록에서 아키텍처를 선택합니다. -
제품 버전으로 v4.2.2 를 제품 버전으로 선택합니다.
이 튜토리얼은 Code Engine 용 Cloud 자동화 버전 4.2.2 을 기반으로 만들어졌습니다. 그러나 원하는 경우 배포 가능한 아키텍처의 다른 버전을 선택할 수 있습니다.
-
새 Code Engine 앱 변형이 선택되어 있는지 확인합니다.
-
요약 패널에서 배치 옵션 검토 를 클릭하십시오.
-
코드에 대한 작업 > 번들 다운로드 를 선택하여 번들을 다운로드하십시오.
-
로컬 컴퓨터에서 다운로드된 번들을 여십시오.
-
.tar.gz번들을 추출하여 폴더 내의 파일에 액세스하고 편집합니다. 찾기 쉽고 사용하기 쉽도록 압축을 푼 폴더의 이름을Example-corp-infrastructure으로 변경했습니다.번들을 다운로드하고 추출하면 다음 파일 및 폴더가 표시됩니다.
automation folderibm_catalog.jsonmain.tfoutputs.tfprovider.tfREADME.mdvariables.tfversion.tf
변수 목록 편집
인프라 설계자가 IBM Cloud Code Engine 을 조사했을 때 지역과 IBM Cloud API 키를 수정하기로 결정했습니다. 아키텍처에 포함된 다른 변수는 목적에 필요하지 않으므로 즐겨 사용하는 편집기( Visual Studio Code )를 사용하여 제거해야 합니다.
-
Visual Studio Code에서
variables.tf파일을 여십시오. -
다음 변수를
variables.tf파일의 시작 부분으로 이동하십시오.ibmcloud_api_keyprefixexisting_resource_group_nameregion
변수의 순서는 중요하지 않습니다.
-
다른 모든 변수를 삭제하고 파일을 저장하십시오.
main.tf 파일 업데이트하기
variables.tf 파일을 업데이트했으므로 main.tf 파일의 구성 정보가 올바른지 확인하십시오. Code Engine 을 사용하여 예제 회사가 만든 애플리케이션을 실행하려고 하므로 애플리케이션에 대한 정보를 제공해야 합니다.
-
main.tf파일을 여십시오. -
app_name변수를 업데이트하고 애플리케이션 이름으로"example-corp-ai-app"을 입력합니다. -
image_reference변수를 업데이트하고 애플리케이션의 도커 이미지인"icr.io/codeengine/helloworld"을 입력합니다. -
project_name변수를 추가하고 Code Engine 프로젝트의 이름으로"example-corp-ce-project"을 입력합니다. -
provider_visibility변수를 추가하고"public"으로 설정합니다. -
다음 예시와 같이
ibmcloud_api_key,prefix,region변수가 포함되어 있는지 확인합니다:module "deploy-arch-ibm-code-engine" { source = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2" ibmcloud_api_key = var.ibmcloud_api_key prefix = var.prefix existing_resource_group_name = var.existing_resource_group_name region = var.region app_name = "example-corp-ai-app" image_reference = "icr.io/codeengine/helloworld" project_name = "example-corp-ce-project" provider_visibility = "public" } -
파일을 저장하십시오.
이제 아키텍처가 예시 Corp AI 앱을 참조하도록 하드코딩되고 IBM Cloud API 키, 접두사 및 지역에 대한 변수를 사용하도록 구성되었습니다.
ibm_catalog.json 파일 업데이트하기
ibm_catalog.json 파일은 배포 가능한 아키텍처를 비공개 카탈로그에 온보딩할 때 버전 정보를 자동으로 가져오는 데 사용되는 매니페스트 JSON 파일입니다. 배포 가능한 아키텍처를 변경했기 때문에 필요에 따라 완전히 새로운 아키텍처를 만들었습니다. ibm_catalog.json 파일에서 다음 정보를 업데이트하여 변경사항을 반영하십시오.
Manifest 파일 및 여기에 포함된 내용에 대한 자세한 정보는 카탈로그 Manifest 로컬 편집 을 참조하십시오.
제품 정보 업데이트
이제 구성을 업데이트하고 자체 아키텍처를 만들었으므로 배포 가능한 아키텍처의 이름과 프로그램 이름도 업데이트해야 합니다.
-
ibm_catalog.json파일을 여십시오. -
label필드를 찾아 배치 가능한 아키텍처의 이름을Example Corp's infrastructure로 업데이트하십시오. -
name필드를 찾아 아키텍처의 프로그램 이름을deploy-arch-example-corp로 업데이트하십시오. -
version필드를 찾고0.0.1를 입력하여 버전 번호를 업데이트하십시오. 필드가 누락된 경우 예를 들어name필드 바로 뒤에 새 줄에 추가합니다:"label": "Example Corp's infrastructure", "name": "deploy-arch-example-corp", "version": "0.0.1", -
flavors섹션에서label필드를 찾아 배포 가능한 아키텍처의 이 변형 이름을Deploy Example Corp AI app on IBM Cloud Code Engine로 업데이트합니다. 이렇게 함으로써 배포 가능한 아키텍처의 이러한 변형의 목적과 이를 통해 달성할 수 있는 성과를 파악할 수 있습니다. -
파일을 저장하십시오.
구성 정보 업데이트
이제 배포 가능한 아키텍처의 사용자가 미국 지역에서만 배포할 수 있도록 하려고 합니다. 이를 수행하려면 ibm_catalog.json 파일의 구성 섹션에서 변수 정보를 업데이트하십시오.
-
ibm_catalog.json파일의configuration섹션에서 다음 변수를 찾아 구성 섹션의 시작 부분으로 이동합니다:ibmcloud_api_keyprefixexisting_resource_group_nameregion
-
지역을 미국 지역으로만 제한하려면 각 지역을
region변수의 옵션으로 추가하고 불필요한 섹션을 삭제한 다음region을 필수 변수로 설정해야 합니다.{ "key": "region", "type": "string", "default_value": "us-south", "description": "The region in which to provision all resources created by this solution.", "required": true, "options": [ { "displayname": "us-east", "value": "us-east" }, { "displayname": "us-south", "value": "us-south" } ], "virtual": false } -
구성 섹션에서 나머지 변수를 삭제하십시오.
사용자가 아키텍처를 배치할 때 나열된 지역 옵션 중에서 선택할 수 있습니다. 사용 가능한 지역의 목록은 지역을 참조하십시오.
-
ibm_catalog.json파일을 저장합니다.
배치 가능한 아키텍처 테스트
구성된 배포 가능한 아키텍처를 비공개 카탈로그에 온보딩하고 사용할 수 있도록 설정하기 전에 구성을 테스트하여 아키텍처가 의도한 대로 실행되는지 확인하세요. Terraform 명령행으로 아키텍처를 테스트하려면 다음 단계를 완료하십시오.
-
IBM Cloud 에서 Terraform 모듈을 사용하는 데 필요한
.netrc파일을 만들거나 업데이트합니다. 자세한 정보는 ibmcloud catalog utility netrc 를 참조하십시오.ibmcloud catalog utility netrc -
Terraform CLI를 초기화하십시오. 자세한 정보는 작업 디렉토리 초기화를 참조하십시오.
terraform init -
리소스를 프로비저닝하십시오. 자세한 정보는 Terraform을 사용하여 인프라 프로비저닝을 참조하십시오.
-
terraform plan를 실행하여 제안된 조치를 미리보기 위한 Terraform 실행 플랜을 생성하십시오.terraform plan -
terraform apply를 실행하여 계획에 정의된 자원을 작성하십시오.terraform apply
-
다음 단계
배포 가능한 아키텍처가 예상대로 실행되었다면 Cloud automation for Code Engine 에서 배포 가능한 아키텍처를 성공적으로 만든 것입니다. 이제 업데이트된 파일을 작성한 GitHub 저장소로 이동하고 제품을 개인용 카탈로그에 온보딩 할 준비가 되었습니다.
Example Corp's infrastructure 을 비공개 카탈로그에 온보딩한 후 기업에서 공유할 수 있습니다. 배포 가능한 아키텍처를 공유할 준비가 되지 않았거나 엔터프라이즈 소속이 아닌 경우 공유를 건너뛰고 다음 튜토리얼인 프로젝트를 사용하여 Example Corp's infrastructure 배포를 계속 진행할 수 있습니다.