IBM Cloud 配備可能なアーキテクチャをカスタマイズし、独自のインフラを構築する

このチュートリアルでは、既存の IBM Cloud® 配備可能アーキテクチャをベースに、ビジネスニーズに合わせてカスタマイズした配備可能アーキテクチャを作成する方法を説明します。 このチュートリアルを完了することで、Terraformファイルをダウンロードし、変数を更新し、更新されたアーキテクチャをテストする方法を学ぶことができます。

IBM Cloud デプロイ可能なアーキテクチャから始めることで、インフラストラクチャのアーキテクチャを一から作る心配はない。 IBM Cloud デプロイ可能アーキテクチャーを使用し、特定のニーズを満たすように構成することで、すぐに開始できます。

あなたが架空の会社、 Example Corpのクラウドオートメーションエンジニアリングのプロフェッショナルだとしよう。 インフラストラクチャ・アーキテクトが IBM Cloud のカタログを閲覧したところ、 Code Engine の Cloud automation を発見した。 しかし、インフラストラクチャ・アーキテクトは、ビジネス・ニーズを満たすために、以下の変更を行う必要がある:

  • 不要な変数を削除する。
  • IBM Cloud 地域を米国の展開地域に限定する。
  • 配備可能なアーキテクチャを更新して、Example CorpのAIアプリケーションを参照する。

このチュートリアルでは、架空のシナリオを使用して、デプロイ可能なアーキテクチャーのいくつかの構成オプションについて学習し、理解するのに役立ちます。 コンテナ化されたアプリケーションの IBM Cloud Code Engine へのデプロイを自動化するために、デプロイ可能なアーキテクチャをカスタマイズする方法を説明する。 icr.io/codeengine/helloworld 、既存のコンテナ・イメージをアプリケーションの例として使用する。 チュートリアルを完了したら、各ステップを組織のニーズに合わせて変更してください。

開始前に

  1. アーキテクチャを構築するには、 Terraformに精通していなければならない。

  2. IBM Cloud コンソールで 「管理」 > 「アカウント」 > 「アカウント設定」 に移動して、「従量課金」アカウントまたは「サブスクリプション」アカウントを使用していることを確認します。

  3. デプロイ可能なアーキテクチャを保存するリポジトリを作成する。 このチュートリアルでは、 GitHub を使用します。 詳しくは、 リポジトリーの作成を参照してください。

  4. お好みのエディタをインストールしてください、 Visual Studio Code.

  5. 以下の IBM Cloud Identity and Access Management (IAM) ロールが割り当てられていることを確認します:

    • すべての IAM アカウント管理サービス、すべてのアカウント管理サービス、およびすべての Identity and Access 対応サービスの管理者。
    • カタログ管理サービスのエディター。
    • Schematics のマネージャー・サービス・アクセス・ロール。
    • 展開可能なアーキテクチャ内の特定のリソースに必要なその他のロール。 Code Engine のクラウド自動化には、 Code Engine サービスのすべてのリソースにスコープされる Writer サービスアクセスロールが必要です。

    詳細については、 アカウント管理サービスへのアクセス権の割り当て および リソースへのアクセス権の 管理を参照してください。

デプロイ可能なアーキテクチャー・ファイルのダウンロード

開始するには、デプロイ可能なアーキテクチャー・ファイルをダウンロードする必要があります。 ファイルには、ルートTerraformモジュールを呼び出す main.tf

  1. IBM Cloud コンソールで、 「カタログ」 をクリックします。

  2. 検索バーに「 Cloud automation for Code Engine 」と入力し、検索結果のリストから建築を選択する。

  3. 選択 v4.2.2 を選択してください。

    このチュートリアルは、Cloud automation for Code Engine のバージョン 4.2.2 に基づいて作成されています。 しかし、必要であれば、配備可能なアーキテクチャの別のバージョンを選択することもできる。

  4. New Code Engine apps variationが選択されていることを確認してください。

  5. 要約パネルで 「デプロイメント・オプションの確認 (Review deployment options)」 をクリックします。

  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 ファイル内の構成情報が正しいことを確認します。 Example Corp が作成したアプリケーションを実行するために Code Engine を使用したいので、アプリケーションに関する情報を提供する必要があります。

  1. main.tf ファイルを開きます。

  2. 変数 app_name を更新し、アプリケーション名として "example-corp-ai-app" を入力する。

  3. image_reference 変数を更新し、アプリケーションの docker イメージである "icr.io/codeengine/helloworld" を入力する。

  4. project_name 変数を追加し、 Code Engine プロジェクトの名前として "example-corp-ce-project" を入力する。

  5. 変数 provider_visibility を追加し、 "public" に設定する。

  6. 以下の例のように、 ibmcloud_api_keyprefixregion の変数が含まれていることを確認する:

    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. ファイルを保存します。

これで、Example Corp AI アプリを参照するようにアーキテクチャがハードコードされ、 IBM Cloud API キー、プレフィックス、および地域の変数を使用するように構成されます。

ibm_catalog.json ファイルの更新

ibm_catalog.json ファイルはマニフェスト JSON ファイルで、デプロイ可能なアーキテクチャをプライベート カタログにオンボードするときに、バージョン情報を自動的にインポートするために使用されます。 デプロイ可能なアーキテクチャを変更したため、ニーズに合わせてまったく新しいアーキテクチャを作成したことになる。 変更を反映するために、 ibm_catalog.json ファイル内の以下の情報を更新します。

マニフェスト・ファイルとその内容について詳しくは、 カタログ・マニフェストのローカル編集 を参照してください。

製品情報の更新

構成を更新して独自のアーキテクチャを作成したので、デプロイ可能なアーキテクチャの名前とプログラム名も更新する必要があります。

  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 をデプロイする に進むことができます。