【IBM Cloud】VPCのカスタム・イメージを使用した仮想サーバーの作成手順

## はじめに
今回はIBM CloudのVirtual Private Cloud（VPC）内に仮想サーバーを構築する際、カスタム・イメージを使用して仮想サーバーを作成する流れについて整理しました。

カスタム・イメージとは、IBM Cloud VPC上に予め設定されている既存のイメージのストック・イメージとは別に、名前通りに独自の設定を反映したイメージです。カスタム・イメージの種類としてはLinuxやWindows、z/OS WaziaaSなどがあります。

そのカスタム・イメージを使って仮想サーバー作成する大きな流れは以下となります。
1. 持ち込みのイメージをIBM Cloud Object Storage（ICOS）に格納する
2. 格納されたイメージファイルからカスタム・イメージを作成する
3. 作成したカスタム・イメージを指定してVirtual Server Instance（VSI、仮想サーバー）を作成する
(今回は手順2,3を同時に進めます。)

また、今回の内容にはIBM Cloudの[アカウント](https://cloud.ibm.com/docs/account?topic=account-accounts)（無料利用も可能）と[VPC環境の準備](https://qiita.com/Sungyun_Moon/items/82e4fbe5056c7918bc54)が前提となっています。

## 1. 持ち込みのイメージをICOSに格納
カスタム・イメージの作成には複数の方法がありますが、今回はIBM Cloud Object Storage（ICOS）に格納し、サーバーを立ち上げる際にそのイメージを使用する流れで進めました。そのため、今回利用するICOSを指定する必要があります。

コンソールの左上のナビゲーション・メニューをクリックし、リソース・リストをクリックします。
![スクリーンショット 2023-11-06 11.31.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/5ed3d8c6-fddb-ef5a-915d-a9e40621f85b.png)
![スクリーンショット 2023-11-06 11.18.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/d493fb6e-a5bf-fa2a-a290-18ae6db13116.png)

リソース・リストの製品検索欄に`obejct storage`を入力し、既存のICOSインスタンスをクリックします。
![スクリーンショット 2023-11-06 11.34.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/14c73e7c-bf21-64f4-0d13-8565a516226f.png)

もし既存のICOSインスタンスがない場合は、リソース・リスト右上の`リソースの作成`をクリックします。今回は新規ICOSインスタンスを作成しました。
![スクリーンショット 2023-11-06 11.34.06 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/7aae9e46-4df3-a7c9-e988-83bd59c255df.png)

カタログ画面に移動しますが、検索欄に`object storage`を入力し、ICOS作成画面に移動します。
![スクリーンショット 2023-11-06 11.19.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/1f6ba2c4-df57-7f5f-38e5-bf047b8ad578.png)

作成画面にてICOSの設定を行い、`作成`ボタンをクリックします。
（Liteプランでの作成も可能ですが、イメージの容量によってはStandardプラン以上を注文する必要があります。）
![スクリーンショット 2023-11-06 11.19.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/120779b0-2b05-1fec-e603-d481e6a1d724.png)

イメージはICOSのインスタンス内に「バケット」という格納箱を作成し、その中に「オブジェクト」という形で格納する必要があります。既存/新規のICOSインスタンスにアクセスし、`バケットの作成`をクリックします。
![スクリーンショット 2023-11-06 11.20.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/f0b65a8d-f9b8-fe06-81a8-65293c2d3a9c.png)

バケットはカスタム・バケットや事前定義済みの構成から作成することができますが、必要に応じた形で作成します。[こちら](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage&locale=ja)のIBM Cloud Docsにもこちらの流れが記載されています。
![スクリーンショット 2023-11-06 11.48.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/ec94bef5-51ba-8e6d-4e5a-9ccf6a71e074.png)

バケットが作成されたらバケットに入り、`アップロード`ボタンをクリックします。
![スクリーンショット 2023-11-06 11.20.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/97a1c39b-058e-618e-397a-09713f2bcc63.png)

イメージのアップロード画面で設定を行い、イメージファイルをアップロードします。
詳しくは[こちら](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-upload)をご参考ください。
![スクリーンショット 2023-11-06 11.53.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/eb8fa23e-3b7d-7e4d-bd9c-19a50f6aaa23.png)

## 2. カスタムイメージの作成 + 3. VSIの作成
カスタム・イメージは仮想サーバーを作成する際に一緒に作成することができます。そのため、まずは仮想サーバーを立ち上げる流れに沿って進めます。
なお、繰り返しとなりますが、VPC利用の準備ができていない場合、[こちら](https://qiita.com/Sungyun_Moon/items/82e4fbe5056c7918bc54)を参考にしてください。

コンソール画面の左上のナビゲーション・メニューをクリックし、`VPCインフラストラクチャー`→`仮想サーバー・インスタンス`をクリックします。
![スクリーンショット 2023-11-06 11.31.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/cbbb850c-4e26-5339-d807-1d00a36cb1c3.png)
![スクリーンショット 2023-11-06 15.02.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/f8fb5a33-2a50-63fd-0823-d3a395e0aa5d.png)

 VPCの仮想サーバー・インスタンスの画面が出たら、右上の`作成`ボタンをクリックします。
![スクリーンショット 2023-11-06 15.11.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/98dc4fe9-74d9-d8ac-e116-1e75d58e326b.png)

作成画面でサーバー・タイプやロケーション、インスタンス情報（名前、リソース・グループ、タグ　など）を入力します。
![スクリーンショット 2023-11-06 15.11.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/17e43eb8-1140-1b5b-7256-fb2381f5129f.png)
![スクリーンショット 2023-11-06 15.11.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/0aa0e0f8-53f4-dee0-6950-f3e0f4e58e2b.png)

その下にイメージを設定する画面が表示されます。ここで`イメージの変更`をクリックするとイメージ選択画面が表示されます。デフォルトでは既存のストック・イメージが表示されますが、今回は横の`カスタム・イメージ`をクリックします。
![スクリーンショット 2023-11-06 15.11.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/1304b501-cf28-1f2f-b93b-831132f9532f.png)
![スクリーンショット 2023-11-06 15.12.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/24247a35-bbe9-2be8-92c9-b712383dceb7.png)

カスタム・イメージ画面で右側の`作成`ボタンをクリックしますと、新しいタブにてVPC用のカスタム・イメージ作成画面が表示されます。ここで同じくロケーションやカスタム・イメージの詳細設定を行います。
![スクリーンショット 2023-11-06 15.15.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/dd09c1f1-56de-9b70-f6e0-54edb4648f7a.png)
![スクリーンショット 2023-11-06 15.15.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/fb0f3c64-d5ec-315b-6a26-7430ccfa7dcf.png)

下にスクロールすると、イメージ・ソースを選択する部分がありますが、ここで`Cloud Object Storage`を選択します。
またICOSからファイルを選択する方法も二つありますが、１つ目はICOSインスタンスやロケーション、バケットをタブで開いて選択する方法がありますが、今回は隣の`イメージ・ファイルURLで検索する`方法で進めましたので、そちらをクリックします。
![スクリーンショット 2023-11-06 15.15.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/c3b91e66-e080-e935-131d-7fef66f284d3.png)

そうするとイメージのURLを入力する画面が表示されます。URLの形式としては、`cos://<location>/<bucket-name>/<object-name>`となるため、こちらに入力します。
![スクリーンショット 2023-11-06 15.25.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/31976761-0e8f-9114-195f-2c4abf47eef4.png)

また、URLがわからない場合、ICOSのバケットに格納したオブジェクトファイルの情報にて確認し、コピーする方法もあります。（個人的にはこちらの方法をおすすめします。）
![スクリーンショット 2023-11-06 15.23.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/b8b5aac2-7fce-510c-0a01-ab07f13964aa.png)

最後に必要のOSを選択し、VPC用のカスタム・イメージを作成します。
![スクリーンショット 2023-11-06 15.27.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/9b8c47e8-3a0c-1771-cabf-e27624c5cc74.png)

そうすると、仮想サーバー作成時、イメージ選択する欄に作成したVPC用のカスタム・イメージが表示されます。（アップロード時間は容量によって異なりますが、容量が大きい場合には時間を要するケースもあります）
![スクリーンショット 2023-11-06 16.02.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/0fce2da5-9b95-4942-40bd-3fc23805e43d.png)

イメージの選択が終わったら、`プロファイル`にて必要とするスペックを選択します。`プロファイルの変更`をクリックすると複数のプロファイルが確認でき、その中から選ぶことができます。
![スクリーンショット 2023-11-07 11.31.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/1cb3339e-7a4e-ad9f-fe66-21400b0faa23.png)
![スクリーンショット 2023-11-07 11.32.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/cecdfc99-a4b0-3529-083f-1ba75b612054.png)

また、[VPCの準備段階](https://qiita.com/Sungyun_Moon/items/82e4fbe5056c7918bc54)で予め作成したSSH Keyを選択します。
![スクリーンショット 2023-11-07 11.33.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/082eb5e6-3d74-fd49-be9a-59e303ec3248.png)

下のストレージはブート・ボリューム、データ・ボリュームそれぞれ`鉛筆マーク`や`作成`ボタンをクリックし、必要なサイズを入力することで、サイズを変更することが可能ですので、必要に応じて設定します。
![スクリーンショット 2023-11-07 11.35.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/ff3310c8-6602-87ab-00ad-1a59f46fe89d.png)

最後にネットワーキングの部分で、[VPCの準備段階](https://qiita.com/Sungyun_Moon/items/82e4fbe5056c7918bc54)で予め作成したVPCを選択します。また、ネットワーク・インターフェースで`鉛筆マーク`をクリックし、セキュリティー・グループを選択します。
![スクリーンショット 2023-11-07 11.39.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/36882e5d-7bef-e332-3d0d-88cfef63a2a7.png)

全ての設定が終わりましたら、右側の`仮想サーバーの作成`をクリックします。
これでカスタム・イメージを使用した仮想サーバーが立ち上がるようになります。
![スクリーンショット 2023-11-07 11.42.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2626032/c69f34d7-8fc1-5da7-82ba-433bd05a62f9.png)



## 参考
- IBM Cloud Docs
    - [VPC用カスタム・イメージ](https://cloud.ibm.com/docs/vpc?topic=vpc-planning-custom-images)
    - [ICOSの概要、バケットの作成](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage&locale=ja)
    - [ICOSのデータアップロード](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-upload)