IBM Cloud Docs
リソースの管理 Schematics

リソースの管理 Schematics

Terraform テンプレートを適用するには、 IBM Cloud Schematics を使用して IBM Cloud® リソースをデプロイ、変更、および削除します。

リソースのデプロイ

Terraform configs を展開してプロビジョニングを行うか、 Schematics でクラウドリソースを変更してください。

開始前に

リソースを配置するには

  1. ワークスペース・ダッシュボードから、適用する Terraform テンプレート用のワークスペースを選択します。

    サンプルテンプレートの例は、 クラウド Schematics GitHub, に掲載されています。 例えば、 簡単なマルチゾーンVPC

  2. **「設定」**タブを選択します。

  3. Details セクションで Pull latestをクリックし、リンク先の GitHub ソースリポジトリからTerraformテンプレートの最新バージョンを取得する。 テープ・アーカイブ・ファイル (.tar) をアップロードすることによって Terraform テンプレートを提供した場合は、ibmcloud schematics workspace upload コマンドを使用して新しいバージョンのテンプレートを提供する必要があります。

  4. オプション: ワークスペースに設定した変数を確認します。 変数の値は、Terraformテンプレート内で変数を参照する場所で使われます。

  5. 「プランの生成 (Generate plan)」をクリックして Terraform 実行プランを作成します。 Schematics このボタンをクリックすると、ワークスペースのジョブページが開き、 IBM Cloud アカウントですでにプロビジョニングしたリソースの状態と、Terraform テンプレートでプロビジョニングしたいリソースの状態を比較するために terraform plan を実行します。

  6. 実行プランのログを確認するには Jobsをクリックします。 実行計画には、Terraformテンプレートで指定した状態を実現するために作成、変更、または削除するクラウドリソースの概要が含まれます。 Terraform 構成ファイルに構文エラーがある場合は、ログ・ファイルでエラー・メッセージを確認できます。

  7. Schematics が作成または変更しようとしている各クラウドリソースについて、利用可能なサービスプランと価格情報を確認します。 一部のサービスには IBM Cloud アカウントごとの制限があります。 アカウントのサービス制限に達する場合は、サービスの割り当て量を増やすか、または既存のサービスを削除しないと、リソースはプロビジョンされません。

  8. 準備ができたら、**「プランの適用 (Apply plan)」**をクリックして Terraform テンプレートを適用します。 このアクションは terraform apply コマンドと同じです。 ボタンをクリックすると、 IBM Cloud Schematics、実行計画で特定されたアクションに基づいて、クラウド リソースのプロビジョニング、変更、または削除が開始されます。 プロビジョンまたは変更するリソースのタイプと数によって、このプロセスは数分で完了する場合もあれば数時間かかる場合もあります。 この間、ワークスペースに変更を加えることはできません。 すべてのアップデートが適用された後、クラウドリソースの状態はTerraformの状態ファイルに保存され、 IBM Cloud Schematics、 IBM Cloud アカウントに存在するリソースを判断するために使用されます。

    Terraform テンプレートの適用を停止する場合は、**「停止」**ボタンを使用できます。 既に作成されたリソースはいずれも削除されないことに注意してください。 現在プロビジョン中のリソースがある場合、Schematics はそのプロビジョンが完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  9. ジョブ・ログを確認し、プロビジョニング、変更、または削除プロセス中にエラーが発生しなかったことを確認します。

  10. ナビゲーションから Resourcesを選択すると、 IBM Cloud アカウントで利用可能なクラウドリソースの概要が表示されます。

リソースの更新

クラウドリソースを更新するには、リソースに対して実行すべき必要な変更を Terraform テンプレートに反映します。

構成変更によっては、Terraform が所定の場所でリソースを更新できない場合があります。 代わりに、Terraform は最初にリソースを削除して、新規リソースを作成する必要があります。 Terraform が削除して再作成するリソースを識別する場合は、作業環境を中断したり、データを削除したりしないようにしてください。

リソースを更新するには、以下のようにします。

  1. ワークスペースダッシュボードから、更新したTerraformテンプレートを指すワークスペースを選択します。

  2. **「設定」**タブを選択します。

  3. Details セクションで Pull latestをクリックし、リンク先の GitHub ソースリポジトリからTerraformテンプレートの最新バージョンを取得する。 テープ・アーカイブ・ファイル (.tar) をアップロードすることによって Terraform テンプレートを提供した場合は、ibmcloud schematics workspace upload コマンドを使用して新しいバージョンのテンプレートを提供する必要があります。

  4. ワークスペースの作成時に設定した変数値を変更する場合は、変数値を変更します。

  5. **「プランの生成 (Generate plan)」**をクリックして Terraform 実行プランを作成します。 この間、ワークスペースに変更を加えることはできないことに注意してください。

  6. 「ジョブ」 をクリックして、実行のログを確認します。 ジョブ・ログは、 IBM Cloud Schematics が変更しようとしているすべてのリソースの概要を提供します。 IBM Cloud Schematics は、リソースの一部を変更できない場合があり、リソースを削除して再作成することを提案します。

  7. **「プランの適用 (Apply plan)」**をクリックして、新しい Terraform テンプレート・バージョンを適用します。 変更内容によっては、テンプレートが適用されるまでに数分から数時間かかる場合があります。 この間、ワークスペースに変更を加えることはできないことに注意してください。

    Terraform テンプレートの適用を停止する場合は、**「停止」**ボタンを使用できます。 既に実行されたリソース更新は元に戻らないことに注意してください。 現在更新中のリソースがある場合、Schematics はその更新が完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  8. ジョブ・ログを確認し、変更プロセス中にエラーが発生しなかったことを確認する。

  9. ナビゲーションから**「リソース」**を選択し、リソースの構成が更新されていることを確認します。

クラウド環境とTerraformの設定間のドリフトを管理する

クラウド環境の実際の状態とインフラストラクチャー・コードの間の差異はdrift とも呼ばれ、この差異の管理は Infrastructure as Code を実装する際の主な課題です。 差異は、以下のようなさまざまな理由で発生します。

  • インフラストラクチャー・コードを実行していない状態で、Terraform 構成ファイルでリソースを追加、更新、または削除した。
  • Terraform を使用せずに IBM Cloud を手動で追加、更新、または削除した。
  • クラウド・リソースの状態を操作するために、スクリプトなどの他の自動化ツールを使用しました。

ワークスペースの ドリフト検出 機能の使用を参照してください。

リソースとデプロイメントの詳細の確認

IBM Cloud Schematics で現在管理している IBM Cloud Schematics デプロイメントとクラウド リソースの詳細を表示します。

  1. ワークスペース ダッシュボードから、検査するワークスペースを選択します。
  2. ナビゲーションから [設定] を選択し、ワークスペースのアクティビティの概要を確認します。
  3. 以前の Terraform 実行プランおよび適用したプランのログを確認します。
  4. ナビゲーションから [ リソース] を選択し、このワークスペースで作成したクラウド リソースの状態を確認します。
  5. Terraform テンプレートを変更したユーザーを確認するには、ワークスペースにリンクされている GitHub のソース・リポジトリーに移動し、コミット履歴やプル要求などの組み込み機能を使用して変更を確認します。
  6. Schematics から IBM Cloud Activity Tracker Event Routing に送信されたイベントを確認するには、IBM Cloud Activity Tracker Event Routing イベントを参照します。

リソースの削除

IBM Cloud Schematics でプロビジョニングしたクラウドリソースを削除するには、 Schematics でリソースを削除するか、ワークスペースを削除するか、Terraform テンプレート内のインフラストラクチャコードを削除します。

クラウドリソースの削除は元に戻せません。 リソースを削除する前に、必ずデータをバックアップしてください。 Terraform 構成ファイル内のインフラストラクチャー・コードを削除するか、リソースをコメント化した場合は、実行プランのログ・ファイルを隅々まで参照して、すべてのリソースが削除に含まれていることを確認してください。

Terraform テンプレート内のリソース構成を削除してリソースを削除するには、以下のようにします。

  1. GitHub のソース・リポジトリーまたはローカル・マシンにある Terraform 構成ファイルを開きます。

  2. ファイルからインフラストラクチャー・コードを削除するか、各行頭に # を追加して削除するリソースをコメント化します。

    リソース定義をコメント化してリソースを削除する例:

    # resource ibm_is_instance "vsi1" {
    #  name    = "${local.BASENAME}-vsi2"
    #  vpc     = ibm_is_vpc.vpc.id
    #  zone    = "${local.ZONE}"
    #  keys    = [data.ibm_is_ssh_key.ssh_key_id.id]
    #  image   = data.ibm_is_image.ubuntu.id
    #  profile = "cc1-2x4"
    
    #  primary_network_interface {
    #    subnet          = ibm_is_subnet.subnet1.id
    #    security_groups = [ibm_is_security_group.sg1.id]
    #  }
    #}
    
  3. Terraform 構成ファイルへの変更をコミットします。

  4. ワークスペース・ダッシュボードから、変更した Terraform テンプレートのワークスペースを選択します。

  5. ナビゲーションから、**「設定」**を選択します。

  6. Details セクションで Pull latestをクリックし、リンク先の GitHub ソースリポジトリからTerraformテンプレートの最新バージョンを取得する。 テープ・アーカイブ・ファイル (.tar) をアップロードすることによって Terraform テンプレートを提供した場合は、ibmcloud schematics workspace upload コマンドを使用して新しいバージョンのテンプレートを提供する必要があります。

  7. 「プランの生成 (Generate plan)」をクリックして Terraform 実行プランを作成します。 ワークスペースのジョブページが開きます。 この間、ワークスペースに変更を加えることはできないことに注意してください。

  8. 実行プランのログを確認するには Jobsをクリックします。 このログは、 IBM Cloud Schematics、削除しようとしているすべてのリソースの概要を提供する。

  9. Apply plan ] をクリックして、アカウントからクラウド リソースを削除します。

    Terraform テンプレートの適用を停止する場合は、**「停止」**ボタンを使用できます。 既に削除されたリソースはいずれも再作成されないことに注意してください。 現在削除中のリソースがある場合、Schematics はその削除が完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  10. ログ・ファイルを参照して、削除プロセス中にエラーが発生していないことを確認します。

  11. ナビゲーションから**「リソース」**を選択し、リソースが削除されていることを確認します。

  12. オプション: すべてのリソースを削除したら、ワークスペースを削除します。

  13. ワークスペース・ダッシュボードを開き、削除したいワークスペースを見つけます。

  14. 「アクション」 タブをクリックし、「ワークスペースの削除」 オプションを選択します。

  15. workspace_name と入力して確認する テキストボックスにワークスペース名を入力します。

  16. **「削除」**ボタンをクリックします。

Schematics コンソールを使用してリソースを削除するには、以下のようにします。

  1. ワークスペース ダッシュボードから、削除するリソースを含むワークスペースを探します。
  2. Actions タブをクリックし、 Destroy resources オプションを選択する。
  3. workspace_name と入力して確認する テキストボックスにワークスペース名を入力します。 リソースを破棄すると、ワークスペースおよび IBM Cloudからリソースが削除されることに注意してください。 この操作は元に戻せません。
  4. 「破棄」 ボタンをクリックします。
  5. ナビゲーションから Jobsを選択し、リソース削除のログを確認します。 削除プロセス中にエラーが発生していないことを確認します。
  6. ジョブが正常に実行されたら、ナビゲーションから 「リソース」を選択し、リソースが削除されていることを確認します。

リソースの削除が完了すると、 Schematics ワークスペースを削除できます。

CLI を使用したリソースのデプロイ

Terraform configs を展開してプロビジョニングを行うか、 Schematics でクラウドリソースを変更してください。

始める前に:

リソースをデプロイするには、以下のようにします。

  1. ローカル・コマンド・ライン・インターフェース から、CLI と Schematics プラグインをセットアップします。

  2. ibmcloud schematics workspace list コマンドを使用して、ワークスペースをリストします。

  3. ibmcloud schematics workspace get コマンドを使用してワークスペースを取得します。

  4. テープ・アーカイブ・ファイル (.tar) をアップロードして Terraform テンプレートを提供した場合は、 ibmcloud schematics workspace upload コマンドを使用する必要があります。

  5. ibmcloud schematics plan コマンドを使用して、Terraform 実行プランを作成します。

  6. ibmcloud schematics logs コマンドを使用してログを取得するには、ワークスペース ID を使用します。

  7. 準備ができたら、 ibmcloud schematics apply コマンドを実行します。

    Terraform テンプレートの適用を停止する場合は、 ibmcloud schematics job delete コマンドを使用できます。 既に作成されたリソースはいずれも削除されないことに注意してください。 現在プロビジョン中のリソースがある場合、Schematics はそのプロビジョンが完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  8. ジョブ・ログを確認し、プロビジョニング、変更、または削除プロセス中にエラーが発生しなかったことを確認します。

  9. ナビゲーシ ョ ンペインから Resources を選択し、 IBM Cloud アカウントで利用可能なクラウドリソースの概要を確認します。

CLI を使用したリソースの更新

クラウドリソースを更新するには、リソースに対して実行すべき必要な変更を Terraform テンプレートに反映します。

構成変更によっては、Terraform が所定の場所でリソースを更新できない場合があります。 代わりに、Terraform は最初にリソースを削除して、新規リソースを作成する必要があります。 Terraform が削除して再作成するリソースを識別する場合は、作業環境を中断したり、データを削除したりしないようにしてください。

リソースを更新するには、以下のようにします。

  1. コマンド・ライン・インターフェース から、CLI と Schematics プラグインをセットアップします。

  2. ibmcloud schematics workspace list コマンドを使用して、ワークスペースをリストします。

  3. ibmcloud schematics workspace get コマンドを使用してワークスペースを取得します。

  4. テープ・アーカイブ・ファイル (.tar) をアップロードして Terraform テンプレートを提供した場合は、 ibmcloud schematics workspace upload コマンドを使用する必要があります。

  5. ibmcloud schematics plan コマンドを使用して、Terraform 実行プランを作成します。

  6. ibmcloud schematics logs コマンドを使用してログを取得するには、ワークスペース ID を使用します。

  7. 準備ができたら、 ibmcloud schematics apply コマンドを実行します。

    Terraform テンプレートの適用を停止する場合は、 ibmcloud schematics job delete コマンドを使用できます。 既に作成されたリソースはいずれも削除されないことに注意してください。 現在プロビジョン中のリソースがある場合、Schematics はそのプロビジョンが完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  8. ジョブ・ログを確認し、プロビジョニング、変更、または削除プロセス中にエラーが発生しなかったことを確認します。

  9. ナビゲーシ ョ ンペインから Resources を選択し、 IBM Cloud アカウントで利用可能なクラウドリソースの概要を確認します。

CLI を使用したクラウド環境と Terraform 構成の間のドリフトの管理

クラウド環境の実際の状態とインフラストラクチャー・コードの間の差異はdrift とも呼ばれ、この差異の管理は Infrastructure as Code を実装する際の主な課題です。 差異は、以下のようなさまざまな理由で発生します。

  • インフラストラクチャー・コードを実行していない状態で、Terraform 構成ファイルでリソースを追加、更新、または削除した。
  • Terraform を使用せずに IBM Cloud を手動で追加、更新、または削除した。
  • クラウド・リソースの状態を操作するために、スクリプトなどの他の自動化ツールを使用しました。

ワークスペースの ドリフト検出 機能の使用を参照してください。

CLI を使用したリソースとデプロイメントの詳細の確認

IBM Cloud Schematics で現在管理している IBM Cloud Schematics デプロイメントとクラウド リソースの詳細を表示します。

  1. コマンド・ライン・インターフェース から、CLI と Schematics プラグインをセットアップします。
  2. ナビゲーシ ョ ンペインから Resources を選択し、 IBM Cloud アカウントで利用可能なクラウドリソースの概要を確認します。
  3. Terraform テンプレートを変更したユーザーを確認するには、ワークスペースにリンクされている GitHub のソース・リポジトリーに移動し、コミット履歴やプル要求などの組み込み機能を使用して変更を確認します。
  4. Schematics から IBM Cloud Activity Tracker Event Routing に送信されたイベントを確認するには、IBM Cloud Activity Tracker Event Routing イベントを参照します。

CLI を使用したリソースの削除

IBM Cloud Schematics でプロビジョニングしたクラウドリソースを削除するには、 Schematics でリソースを削除するか、ワークスペースを削除するか、Terraform テンプレート内のインフラストラクチャコードを削除します。

クラウドリソースの削除は元に戻せません。 リソースを削除する前に、必ずデータをバックアップしてください。 Terraform 構成ファイル内のインフラストラクチャー・コードを削除するか、リソースをコメント化した場合は、実行プランのログ・ファイルを隅々まで参照して、すべてのリソースが削除に含まれていることを確認してください。

Terraform テンプレートからインフラストラクチャー・コードを削除してリソースを削除するには、以下のようにします。

  1. GitHub のソース・リポジトリーまたはローカル・マシンにある Terraform 構成ファイルを開きます。

  2. ファイルからインフラストラクチャー・コードを削除するか、各行頭に # を追加して削除するリソースをコメント化します。

    リソースをコメント化する例:

    
    #resource ibm_is_instance "vsi1" {
    #  name    = "${local.BASENAME}-vsi2"
    #  vpc     = ibm_is_vpc.vpc.id
    #  zone    = "${local.ZONE}"
    #  keys    = [data.ibm_is_ssh_key.ssh_key_id.id]
    #  image   = data.ibm_is_image.ubuntu.id
    #  profile = "cc1-2x4"
    
    #  primary_network_interface {
    #    subnet          = ibm_is_subnet.subnet1.id
    #    security_groups = [ibm_is_security_group.sg1.id]
    #  }
    #}
    
  3. Terraform 構成ファイルへの変更をコミットします。

  4. コマンド・ライン・インターフェース から、CLI と Schematics プラグインをセットアップします。

  5. ibmcloud schematics workspace get コマンドを使用してワークスペースを取得します。

  6. テープ・アーカイブ・ファイル (.tar) をアップロードして Terraform テンプレートを提供した場合は、 ibmcloud schematics workspace upload コマンドを使用する必要があります。

  7. ibmcloud schematics plan コマンドを使用して、Terraform 実行プランを作成します。

  8. ibmcloud schematics logs コマンドを使用してログを取得するには、ワークスペース ID を使用します。

  9. 準備ができたら、 ibmcloud schematics apply コマンドを実行します。

    Terraform テンプレートの適用を停止する場合は、 ibmcloud schematics job delete コマンドを使用できます。 既に作成されたリソースはいずれも削除されないことに注意してください。 現在プロビジョン中のリソースがある場合、Schematics はそのプロビジョンが完了するのを待機してから、Terraform テンプレート内の他のリソースの作成、更新、または削除を停止します。

  10. ジョブ・ログを確認し、プロビジョニング、変更、または削除プロセス中にエラーが発生しなかったことを確認します。

  11. ナビゲーシ ョ ンペインから Resources を選択し、 IBM Cloud アカウントで利用可能なクラウドリソースの概要を確認します。

  12. オプション: すべてのリソースを削除した後、 ibmcloud schematics workspace delete コマンドを使用してワークスペースを削除します。