ボリュームからのイメージの作成

停止中の仮想サーバーインスタンスにブートボリュームとしてアタッチされているボリュームから、コンソール、CLI、API、または Terraform でイメージを作成できます。

第 2 世代ブロック・ストレージ・ボリュームの現行リリースでは、 sdp ブート・ボリュームからのカスタム・イメージの作成は、 お客様暗号化ではサポートされていません。

ボリュームからイメージを作成するためのシナリオ

ボリュームからイメージを作成するには、いくつかの方法があります。

  • インスタンスを選択し、そのインスタンスのブート・ボリュームからイメージを作成する。 新しいイメージは、ブートボリュームの暗号化設定( お客様または IBM 管理型)を引き継ぎます。

  • インスタンスを選択し、そのインスタンスのブートボリュームからイメージを作成し、別の暗号化方式を指定します。 たとえば、ブートボリュームが IBM 管理の暗号化で暗号化されていた場合、新しいイメージにはお客様暗号化を選択することができます。

Hyper Protect Crypto Services は非推奨となっています。 顧客は既存のインスタンスを2027年3月20日まで使用できる。 詳細については、「 IBM Cloud Hyper Protect Crypto Services の非推奨化 」を参照してください。 継続的な保護のため、既存の暗号化キーを専用 Key Protect インスタンスに移行することをご検討ください。 詳細については、「 移行ガイド 」をご覧ください。

  • 「 Block Storage 」ボリュームの一覧から、ブートボリュームのイメージを作成します。 そのボリュームは、仮想サーバーインスタンスに接続されたブートボリュームでなければなりません。

作成する画像のサイズにもよるが、作業時間は5分から 1.5。 時間がかかりすぎて待っていられない場合は、ジョブをキャンセルできます。 詳しくは、パフォーマンスに関する考慮事項を参照してください。

お客様名前を選択する際、その名前はリージョン内の他のイメージで使用できないこと、また、 ibm- で始まる名前はシステム提供のイメージ用に予約されていることを覚えておいてください。

コンソールでボリュームからイメージを作成する

仮想サーバーインスタンスにブートボリュームとしてアタッチされているボリュームから、コンソールでイメージを作成できます。

ブート・ボリュームのイメージを作成するには、関連する仮想サーバー・インスタンスを停止する必要があります。

  1. IBM Cloudコンソールで、ナビゲーションメニューアイコン メニューアイコン インフラストラクチャ VPCアイコン > コンピュート > 画像をクリックします。

  2. 「カスタム・イメージ」 タブで、 「作成」 をクリックします。 「VPC のカスタム・イメージ」ページが表示されます。

  3. 「カスタム画像のインポート」ページで必須項目を入力し、その後、いずれかの「 ソース 」オプションを選択して次に進んでください。

カスタム画像ユーザー・インターフェース・フィールドのインポート
フィールド
ロケーション カスタム・イメージをプロビジョニングに使用できるようにする地理的領域と場所を選択します。
地域 リストから選択します。
リージョン リストから選択します。
詳細
名前 カスタム・イメージには名前が必須です。
リソース・グループ イメージのリソースグループを選択してください。 この選択は後で変更することはできません。
タグ リソース・リスト内のリソースを簡単にフィルターに掛けることができるように、このリソースにラベルを割り当てることができます。
アクセス管理タグ 名前が示すように、これらのタグは、IAM ポリシーの更新を必要とせずにアクセス制御を編成するのに役立ちます。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。
ソース カスタムイメージのソースとして、「 仮想サーバーインスタンスのブートボリューム (既定)」または「 Block Storage のブートボリューム 」のいずれかを選択します。
  1. イメージ・ソースを選択してください:

    • カスタム・イメージのソースとして 「仮想サーバー・インスタンスのブート・ボリューム」 を選択し、使用可能なインスタンスのリストを表示します。

      • リストからインスタンスを選択してください。
      • インスタンスが実行中で、ボリューム・セレクターが無効になっている場合は、 「アクション」 アイコン 「アクション」アイコン をクリックし、 「停止」 を選択します。
    • カスタム・イメージのソースとして Block Storage ブート・ボリューム を選択して、使用可能なブート・ボリュームのリストを表示します。

      • リストからボリュームを選択します。
      • ボリューム・セレクターが無効になっている場合は、 「アクション」 アイコン 「アクション」アイコン をクリックし、 「接続されたインスタンスの停止」 を選択します。
  2. 暗号化タイプ ( IBM管理の暗号化またはお客様管理の暗号化のいずれか) を選択します。

    • デフォルトでは、 「プロバイダー管理」 が選択されています。 この暗号化では、 IBM管理の鍵が使用されます。 後で暗号化を削除することはできません。
    • 独自の鍵を使用して暗号化を行うイメージを作成する場合は、パスフレーズを保護するお客様ルート鍵(CRK)が保存されている鍵管理サービスを選択してください。 その後、2 つの方法で鍵を指定できます。
      • インスタンスで検索
        1. リストから鍵管理サービス・インスタンスを選択します。
        2. キーを選択します。 使用可能な鍵がない場合は、 「作成」 をクリックして作成します。
      • CRN で検索
        1. 暗号化キーのCRNを入力してください。
  3. 詳細オプション :使用許可表現を設定したり、画像のライフサイクル管理を有効にしたりできます。

    • 「許可された使用方法」の記述は、イメージの機能と制限を定義するもので、サーバー作成時に互換性のあるイメージとプロファイルの組み合わせを見つけるのに役立ちます。 仮想サーバーインスタンスとベアメタルサーバーの 使用許可式を 入力できます。
    • トグルを使って、画像ライフサイクル管理を有効にすることができます。 このオプションを選択すると、画像が deprecatedobsolete になるタイミングを管理できます。 単一のステータス変更をスケジュールすることも、イメージの完全なライフサイクルをスケジュールすることもできます。 カレンダーの日時または日数を使用して、ステータス変更をスケジュールできます。 陳腐化の日付は、常に非推奨の日付より後でなければなりません。 詳しくは、 カスタム画像のライフサイクルを 参照してください。
  4. 右側のパネルで、「 カスタムイメージを作成 」をクリックします。

カスタム・イメージの表示および使用

画像が作成されると、カスタム画像のリストに表示されます。

  1. IBM Cloud コンソールで、 「メニュー」 メニュー・アイコン > VPC インフラストラクチャー VPC アイコン >「コンピュート」>「イメージ」 に移動します。
  2. 「カスタム・イメージ」 タブで、イメージ名をクリックして、作成元のボリュームを表示します。
  3. イメージの詳細を確認します。 「ソース」 セクション内のリンクをクリックして、ソース・ボリュームに移動します。

インスタンスの作成時にこのイメージを使用するには、そのイメージをオペレーティング・システムのタイプとして選択します。

  1. IBM Cloud コンソールで、 「メニュー」 メニュー・アイコン > VPC インフラストラクチャーVPC アイコン >「コンピュート」>「仮想サーバー・インスタンス」 に移動します。
  2. 「作成」 をクリックします。 新しい仮想サーバーインスタンスをプロビジョニングする方法の詳細については、 コンソールでの仮想サーバーインスタンスの作成を 参照してください。 **「オペレーティング・システム」で、「カスタム・イメージ」**タイルを選択します。
  3. **「カスタム・イメージの選択」**をクリックし、ボリュームから作成したイメージを選択します。

CLI を使用してボリュームからイメージを作成する

コマンドラインインタフェース(CLI)を使用して、ブートボリュームとして仮想サーバーインスタンスにアタッチされているボリュームからイメージを作成します。

開始前に

  1. 以下の CLI プラグインをダウンロード、インストール、初期化したことを確認します。

    • IBM Cloud CLI
    • infrastructure-service プラグイン

    詳しくは、CLI リファレンスを参照してください。

  2. IBM Cloud VPC を作成していることを確認します。

インスタンスにアタッチされているブートボリュームからイメージを作成する

  1. イメージの作成元のインスタンスを見つけるには、リージョン内の インスタンスをリスト します。 コマンド出力のインスタンス ID をメモします。

    ibmcloud is instances
    
  2. ボリュームからイメージを作成する前に、 実行中のインスタンスを停止します

    ibmcloud is instance-stop INSTANCE_ID
    
  3. image-create コマンドを実行して、ブート・ボリュームのイメージを作成します。 ソース・ボリュームの ID を指定します。

    ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID]
    

    以下の例を参照してください。

    $ ibmcloud is image-create test-ifv-vol1 --source-volume ecc68c2f-96a1-4862-bc86-14f47e5d9ed8
    Creating image test-ifv-vol1 in resource group  under account Test Account as user test.user@ibm.com...
    ID                 5b2fd4ee-c636-44c4-9673-453fca36832e
    Name               test-ifv-vol1
    CRN                crn:v1:bluemix:public:is:us-south:a/a123456::image:5b2fd4ee-c636-44c4-9673-453fca36832e
    Status             pending
    Status reason      Code                   Message                                                More info
                       image_request_queued   The image request is accepted and waiting for system   -
                                              resources to become available.
    Operating system   Name             Architecture   Vendor   Version                 Dedicated host only
                       centos-8-amd64   amd64          CentOS   8.x - Minimal Install   false
    Source volume      ID                                     Name
                       ecc68c2f-96a1-4862-bc86-14f47e5d9ed8   aa-1-bx-boot-1617035447000
    Created            2021-05-20T09:43:16+08:00
    Visibility         private
    File size(GB)      -
    Encryption         none
    Resource group     f22cf48f-8836-4527-9131-1d7c73ba85e9
    

CLI を使用したカスタム・イメージのライフサイクル状況変更のスケジュール

カスタム・イメージを作成する際、 ibmcloud is image-create コマンドの --deprecate-at または --obsolete-at オプションを使用すると、 IBM Cloud VPC カスタム・イメージのライフサイクル・ステータスの変更も同時にスケジュールできます。

deprecate-at プロパティーまたは obsolete-at プロパティーをスケジュールするには、ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日時形式で日付を指定します。

  • YYYY は4桁の年です。
  • MM は2桁の月です。
  • DD は2桁の日付です。
  • T は、日付と時刻の情報を区切ります。
  • hh は 2 桁の時間です。
  • mm は2桁の分です。
  • +hh:mm または -hh:mm は、協定世界時のタイム・ゾーンです。

例えば、北米中央標準時の2025年9月30日午後8時の日付は次のようになる。 2025-09-30T20:00:00-06:00

日時を予約する場合、現在の日時を使用することはできません。 予定の日時は、将来の日時でなければなりません。 deprecate-atobsolete-at の両方の日付と時刻を定義する場合、 deprecate-at の日付は obsolete-at の日付と時刻より後でなければなりません。

ibmcloud is image-create IMAGE_NAME [--source-volume VOLUME_ID] [--deprecate-at YYYY-MM-DDThh:mm:ss+hh:mm] [--obsolete-at YYYY-MM-DDThh:mm:ss+hh:mm]

API を使用してボリュームからイメージを作成する

VPC REST API を呼び出して、 Block Storage for VPC ブート・ボリュームからカスタム・イメージをプログラマチックに作成します。 すべてのインスタンスとボリュームをリストしてから、特定のボリュームの詳細を使用してイメージを作成できます。

開始前に

始める前に、API 環境をセットアップしてください。

API を使用したインスタンスのブートからのイメージの作成

  1. イメージの作成元となるインスタンスとブート・ボリュームを見つけます。 list instance メソッドを使用して、使用可能なインスタンスのリストを取得します。

    curl -X GET "$vpc_api_endpoint/v1/instances?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    
  2. インスタンス ID をメモし、それを使用して インスタンスを取得 します。

    curl -X GET "$vpc_api_endpoint/v1/instances/$instance_id?version=2024-06-11&generation=2" -H "Authorization: Bearer $iam_token"
    

    応答の volume_attachments セクションには、ブート・ボリュームの名前、ID、およびその他の詳細が含まれています。

    "volume_attachments": [
     {
      "device": {
        "id": "a8a15363-a6f7-4f01-af60-715e85b28141"
        },
      "href": "https://us-south.iaas.cloud.ibm.com/v1/instances/e402fa1b-96f6-4aa2-a8d7-703aac843651/volume_attachments/7389-a8a15363-a6f7-4f01-af60-715e85b28141",
      "id": "a8a15363-a6f7-4f01-af60-715e85b28141",
      "name": "my-boot-volume-attachment",
      "volume": {
        "crn": "crn:[...]",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/volumes/49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "id": "49c5d61b-41e7-4c01-9b7a-1a97366c6916",
        "name": "my-boot-volume"
        }
      }
    ]
    
  3. インスタンスが実行中の場合は、 POST /instances 呼び出しで stop アクションを指定して停止します。

    curl -X POST \
    "$vpc_api_endpoint/v1/instances/{instance-id}/gen/actions?ersion=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"\
    -d '{"type":"stop"}'
    
  4. ブート・ボリューム ID を使用して、 イメージを作成します。 以下の例を参照してください。

     curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
     -H "Authorization: Bearer $iam_token"
     -d '{
          "name": "my-image",
          "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
          }`
    

    この応答例において、 source_volume は、イメージの作成に使用されるブートボリュームを示しています。 また、ソースボリュームではデフォルトの「 IBM 」による管理型暗号化が使用されていたため、画像の暗号化が「 none 」として表示される点にご注意ください。 自分のルート・キーを使用した 場合、レスポンスは代わりに user-managed

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption": "none",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "my-boot-volume"
       }
     }
    

ボリュームからイメージを作成し、独自の暗号化キーを指定する

  1. 前のセクションで説明したように、インスタンスとブート・ボリュームの情報を見つけます。 インスタンスを停止します。

  2. 鍵管理サービス・インスタンス ID とルート鍵 CRN を取得します。

  3. イメージを作成 するための API 要求を行います。 以下の例に示すように、ボリュームIDとルート鍵のCRNを指定する。

    curl -X POST "$vpc_api_endpoint/v1/images?version=2024-06-11&generation=2"
    -H "Authorization: Bearer $iam_token"
        -d '{
             "name": "my-encrypted-image",
             "source_volume": {"id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"}
             "encryption_key":{"crn":"crn:[...key:...]"
            },
    

    この応答には、ルートキーに関する情報が含まれています。

    {
     "created_at": "2021-05-20T00:05:13.873893Z",
     "crn": "crn:[...]",
     "encryption_key": {
       "crn": "crn:[...key:...]"
       },
     "encryption": "user_managed",
     "file": {},
     "href": "https://us-south.iaas.cloud.ibm.com/v1/images/4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
     "name": "test-ifv-boot-volume",
     "operating_system": {
       "architecture": "amd64",
       "display_name": "CentOS 8.x - Minimal Install (amd64)",
       "family": "CentOS",
       "href": "https://us-south.iaas.cloud.ibm.com/v1/operating_systems/centos-8-amd64",
       "name": "centos-8-amd64",
       "vendor": "CentOS",
       "version": "8.x - Minimal Install"
       },
     "resource_group": {
       "href": "https://us-south.iaas.cloud.ibm.com/v1/resource_groups/3fad3f2204eb4998c3964d254ffcd771",
       "id": "3fad3f2204eb4998c3964d254ffcd771",
       "name": "Default"
       },
     "status": "pending",
     "status_reasons": [],
     "visibility": "private",
     "source_volume":  {
       "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7",
       "crn": "crn:[...]",
       "href": "",
       "name": "ifv-boot-vol"
       }
     }
    

API を使用したカスタム・イメージ・ライフサイクルの状況変更のスケジューリング

ボリュームからイメージを作成する場合、カスタムイメージのライフサイクルステータスの変更も同時にスケジュールできます。

deprecation_at プロパティーまたは obsolescence_at プロパティーをスケジュールするには、ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) 日時形式で日付を指定します。

  • YYYY は4桁の年号です
  • MM は2桁の月です
  • DD は2桁の日付です
  • T は、日付と時刻の情報を区切ります。
  • hh は 2 桁の時間です。
  • mm 2桁の分です
  • +hh:mm または -hh:mm は協定世界時のタイム・ゾーンです。

たとえば、2023年9月30日午後8時(北米中央標準時)の日付は次のようになる。 2023-09-30T20:00:00-06:00

日時を予約する場合、現在の日時を使用することはできません。 予定の日時は、将来の日時でなければなりません。 deprecation_atobsolescence_at の両方の日付と時刻を定義する場合、 obsolescence_at の日付は deprecation_at の日付と時刻より後でなければなりません。

curl -X POST "$vpc_api_endpoint/v1/images?version=2023-02-21&generation=2"\
-H "Authorization: Bearer $iam_token"\
-d '{
      "name": "test-ifv-boot-volume",
      "source_volume": {
    	  "id": "4fec84ef-baf9-405d-bf3b-9d5a60e068f7"
      },
      "deprecation_at": "2025-11-28T06:11:28+05:30",
      "obsolescence_at": "2025-12-28T06:11:28+05:30"
    }'

Terraform を使用してボリュームからイメージを作成する

ibm_ is _imageリソースを使って、 Block Storage for VPC のブートボリュームからTerraformでカスタムイメージを作成する。 イメージの名前を指定した後、ソース・ボリュームIDを指定します。

オプションで、カスタム・イメージの暗号化に使用するお客様鍵のCRNを指定し、 使用許可式を 設定することもできます。 以下の例を参照してください。

resource "ibm_is_image" "example" {
  name               = "example-image"
  source_volume      = "xxxx-xxxx-xxxxxxx"
  encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
  encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
  allowed_use {
    api_version       = "2025-04-03"
    bare_metal_server = "enable_secure_boot == true"
    instance          = "enable_secure_boot == true"
  }
  //increase timeouts as per volume size
  timeouts {
    create = "45m"
  }
}

deprecation_at または obsolescence_at アトリビュートを使って、 IBM Cloud VPC カスタムイメージのライフサイクルステータスの変更を同時にスケジュールすることもできます。 ISO 8601 (YYYY-MM-DDThh:mm:ss+hh:mm) の日時形式で日付を指定します。

  • YYYY は4桁の年号です
  • MM は2桁の月です
  • DD は2桁の日付です
  • T は、日付と時刻の情報を区切ります。
  • hh は 2 桁の時間です。
  • mm 2桁の分です
  • +hh:mm または -hh:mm は協定世界時のタイム・ゾーンです。

例えば、北米中央標準時の2025年9月30日午後8時の日付は次のようになる。 2025-09-30T20:00:00-06:00

日時を予約する場合、現在の日時を使用することはできません。 予定の日時は、将来の日時でなければなりません。 deprecation_atobsolescence_at の両方の日付と時刻を定義する場合、 obsolescence_at の日付は deprecation_at の日付と時刻より後でなければなりません。

  • deprecated へのステータス変更をスケジュールする。

    resource "ibm_is_image" "example" {
      name               = "example-image"
      source_volume      = "xxxx-xxxx-xxxxxxx"
      encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
      encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
      deprecated_at      = "2025-11-28T15:10:00.000Z"
    }
    
  • obsolete へのステータス変更をスケジュールする。

    resource "ibm_is_image" "example" {
      name               = "example-image"
      source_volume      = "xxxx-xxxx-xxxxxxx"
      encrypted_data_key = "eJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0="
      encryption_key     = "crn:v1:bluemix:public:kms:us-south:a/6xxxxxxxxxxxxxxx:xxxxxxx-xxxx-xxxx-xxxxxxx:key:dxxxxxx-fxxx-4xxx-9xxx-7xxxxxxxx"
      obsolescence_at    = "2025-12-28T15:10:00.000Z"
    }
    

次のステップ