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 의 기존 컨테이너 이미지가 예제 애플리케이션으로 사용됩니다. 튜토리얼을 완료하면서 각 단계를 조직의 필요에 맞게 조정하세요.

시작하기 전에

  1. 아키텍처를 구축하려면 테라폼에 대해 잘 알고 있어야 합니다.

  2. IBM Cloud 콘솔에서 관리 > 계정 > 계정 설정 으로 이동하여 종량과금제 또는 구독 계정을 사용 중인지 확인하십시오.

  3. 배포 가능한 아키텍처를 저장할 리포지토리를 만듭니다. 이 학습서의 목적을 위해 GitHub 가 사용됩니다. 자세한 정보는 저장소 작성을 참조하십시오.

  4. 예를 들어 원하는 편집기를 설치합니다, Visual Studio Code.

  5. 다음 IBM Cloud Identity and Access Management (IAM) 역할이 할당되었는지 확인합니다:

    • 모든 IAM 계정 관리 서비스, 모든 계정 관리 서비스 및 모든 ID 및 액세스 사용 서비스의 관리자.
    • 카탈로그 관리 서비스의 편집기.
    • Schematics 에 대한 관리자 서비스 액세스 역할입니다.
    • 배포 가능한 아키텍처의 특정 리소스에 필요한 기타 역할입니다. Code Engine 에 대한 클라우드 자동화는 Code Engine 서비스의 모든 리소스로 범위가 지정된 Writer 서비스 액세스 역할이 필요합니다.

    자세한 내용은 계정 관리 서비스에 액세스 권한 할당하기리소스에 대한 액세스 권한 관리하기를 참조하세요.

배치 가능한 아키텍처 파일 다운로드

시작하려면 배치 가능한 아키텍처 파일을 다운로드해야 합니다. 파일에는 루트 Terraform 모듈을 호출하는 main.tf 파일이 포함되어 있습니다.

  1. IBM Cloud 콘솔에서 카탈로그를 클릭합니다.

  2. 검색창에 Cloud automation for Code Engine 을 입력하고 검색 결과 목록에서 아키텍처를 선택합니다.

  3. 제품 버전으로 v4.2.2 를 제품 버전으로 선택합니다.

    이 튜토리얼은 Code Engine 용 Cloud 자동화 버전 4.2.2 을 기반으로 만들어졌습니다. 그러나 원하는 경우 배포 가능한 아키텍처의 다른 버전을 선택할 수 있습니다.

  4. 새 Code Engine 앱 변형이 선택되어 있는지 확인합니다.

  5. 요약 패널에서 배치 옵션 검토 를 클릭하십시오.

  6. 코드에 대한 작업 > 번들 다운로드 를 선택하여 번들을 다운로드하십시오.

  7. 로컬 컴퓨터에서 다운로드된 번들을 여십시오.

  8. .tar.gz 번들을 추출하여 폴더 내의 파일에 액세스하고 편집합니다. 찾기 쉽고 사용하기 쉽도록 압축을 푼 폴더의 이름을 Example-corp-infrastructure 으로 변경했습니다.

    번들을 다운로드하고 추출하면 다음 파일 및 폴더가 표시됩니다.

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

변수 목록 편집

인프라 설계자가 IBM Cloud Code Engine 을 조사했을 때 지역과 IBM Cloud API 키를 수정하기로 결정했습니다. 아키텍처에 포함된 다른 변수는 목적에 필요하지 않으므로 즐겨 사용하는 편집기( Visual Studio Code )를 사용하여 제거해야 합니다.

  1. Visual Studio Code에서 variables.tf 파일을 여십시오.

  2. 다음 변수를 variables.tf 파일의 시작 부분으로 이동하십시오.

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    변수의 순서는 중요하지 않습니다.

  3. 다른 모든 변수를 삭제하고 파일을 저장하십시오.

main.tf 파일 업데이트하기

variables.tf 파일을 업데이트했으므로 main.tf 파일의 구성 정보가 올바른지 확인하십시오. Code Engine 을 사용하여 예제 회사가 만든 애플리케이션을 실행하려고 하므로 애플리케이션에 대한 정보를 제공해야 합니다.

  1. main.tf 파일을 여십시오.

  2. app_name 변수를 업데이트하고 애플리케이션 이름으로 "example-corp-ai-app" 을 입력합니다.

  3. image_reference 변수를 업데이트하고 애플리케이션의 도커 이미지인 "icr.io/codeengine/helloworld" 을 입력합니다.

  4. project_name 변수를 추가하고 Code Engine 프로젝트의 이름으로 "example-corp-ce-project" 을 입력합니다.

  5. provider_visibility 변수를 추가하고 "public" 으로 설정합니다.

  6. 다음 예시와 같이 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"
    }
    
  7. 파일을 저장하십시오.

이제 아키텍처가 예시 Corp AI 앱을 참조하도록 하드코딩되고 IBM Cloud API 키, 접두사 및 지역에 대한 변수를 사용하도록 구성되었습니다.

ibm_catalog.json 파일 업데이트하기

ibm_catalog.json 파일은 배포 가능한 아키텍처를 비공개 카탈로그에 온보딩할 때 버전 정보를 자동으로 가져오는 데 사용되는 매니페스트 JSON 파일입니다. 배포 가능한 아키텍처를 변경했기 때문에 필요에 따라 완전히 새로운 아키텍처를 만들었습니다. ibm_catalog.json 파일에서 다음 정보를 업데이트하여 변경사항을 반영하십시오.

Manifest 파일 및 여기에 포함된 내용에 대한 자세한 정보는 카탈로그 Manifest 로컬 편집 을 참조하십시오.

제품 정보 업데이트

이제 구성을 업데이트하고 자체 아키텍처를 만들었으므로 배포 가능한 아키텍처의 이름과 프로그램 이름도 업데이트해야 합니다.

  1. ibm_catalog.json 파일을 여십시오.

  2. label 필드를 찾아 배치 가능한 아키텍처의 이름을 Example Corp's infrastructure 로 업데이트하십시오.

  3. name 필드를 찾아 아키텍처의 프로그램 이름을 deploy-arch-example-corp 로 업데이트하십시오.

  4. version 필드를 찾고 0.0.1 를 입력하여 버전 번호를 업데이트하십시오. 필드가 누락된 경우 예를 들어 name 필드 바로 뒤에 새 줄에 추가합니다:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. flavors 섹션에서 label 필드를 찾아 배포 가능한 아키텍처의 이 변형 이름을 Deploy Example Corp AI app on IBM Cloud Code Engine 로 업데이트합니다. 이렇게 함으로써 배포 가능한 아키텍처의 이러한 변형의 목적과 이를 통해 달성할 수 있는 성과를 파악할 수 있습니다.

  6. 파일을 저장하십시오.

구성 정보 업데이트

이제 배포 가능한 아키텍처의 사용자가 미국 지역에서만 배포할 수 있도록 하려고 합니다. 이를 수행하려면 ibm_catalog.json 파일의 구성 섹션에서 변수 정보를 업데이트하십시오.

  1. ibm_catalog.json 파일의 configuration 섹션에서 다음 변수를 찾아 구성 섹션의 시작 부분으로 이동합니다:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. 지역을 미국 지역으로만 제한하려면 각 지역을 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
    }
    
  3. 구성 섹션에서 나머지 변수를 삭제하십시오.

    사용자가 아키텍처를 배치할 때 나열된 지역 옵션 중에서 선택할 수 있습니다. 사용 가능한 지역의 목록은 지역을 참조하십시오.

  4. ibm_catalog.json 파일을 저장합니다.

배치 가능한 아키텍처 테스트

구성된 배포 가능한 아키텍처를 비공개 카탈로그에 온보딩하고 사용할 수 있도록 설정하기 전에 구성을 테스트하여 아키텍처가 의도한 대로 실행되는지 확인하세요. Terraform 명령행으로 아키텍처를 테스트하려면 다음 단계를 완료하십시오.

  1. IBM Cloud 에서 Terraform 모듈을 사용하는 데 필요한 .netrc 파일을 만들거나 업데이트합니다. 자세한 정보는 ibmcloud catalog utility netrc 를 참조하십시오.

    ibmcloud catalog utility netrc
    
  2. Terraform CLI를 초기화하십시오. 자세한 정보는 작업 디렉토리 초기화를 참조하십시오.

    terraform init
    
  3. 리소스를 프로비저닝하십시오. 자세한 정보는 Terraform을 사용하여 인프라 프로비저닝을 참조하십시오.

    1. terraform plan 를 실행하여 제안된 조치를 미리보기 위한 Terraform 실행 플랜을 생성하십시오.

      terraform plan
      
    2. terraform apply 를 실행하여 계획에 정의된 자원을 작성하십시오.

      terraform apply
      

다음 단계

배포 가능한 아키텍처가 예상대로 실행되었다면 Cloud automation for Code Engine 에서 배포 가능한 아키텍처를 성공적으로 만든 것입니다. 이제 업데이트된 파일을 작성한 GitHub 저장소로 이동하고 제품을 개인용 카탈로그에 온보딩 할 준비가 되었습니다.

Example Corp's infrastructure 을 비공개 카탈로그에 온보딩한 후 기업에서 공유할 수 있습니다. 배포 가능한 아키텍처를 공유할 준비가 되지 않았거나 엔터프라이즈 소속이 아닌 경우 공유를 건너뛰고 다음 튜토리얼인 프로젝트를 사용하여 Example Corp's infrastructure 배포를 계속 진행할 수 있습니다.