はじめに
IBM Cloud Virtual Private Cloud(VPC)は、IBM Cloud上で他と隔離されたユーザ固有の環境を提供する機能で、名前の通りAWSのVPCに類似する機能になります。IBM Cloudでは従来からVPC機能を提供していましたが、2019年1Qに、ネットワークの最大帯域80Gbps、プロビジョニング時間が1/5に短縮などの特徴を持った第2世代(Gen 2)が利用できるようになりました。
当記事では、Gen 2のVPCを試してみるということで、VPCを新たに作成し、さらにそのVPC内でVirtual Server Instance(VSI)を作成してみます。
VPCの作成
VPCの一覧ページにアクセスします。
「名前」にVPCの名前を入力します。「デフォルト・セキュリティー・グループ」はデフォルトのまま(SSH, pingともに許可)とします。
VPCにはサブネットが必要となるため、同時にサブネットが作成されます。「名前」に作成するサブネットの名前を入力します。
また、ロケーションはどこでもよいですが、ここでは東京の「東京3」を選択します。
「パブリック・ゲートウェイ」のチェックを「接続済み」にします。これにより、このサブネット内のリソースがインターネットにアクセスできるようになります。
ここまで入力し、画面右側の「仮想プライベート・クラウドの作成」ボタンをクリックします。
しばらくすると、以下のように作成したVPCが「使用可能」状態となります。
VSIの作成
VSIのプロビジョニングのページにアクセスします。
「名前」にVSIの名前を入力します。
「仮想プライベート・クラウド」では、上記で作成したVPCを選択します。
「ロケーション」は上記で作成したサブネットの「東京3」を選択します。
「イメージ」では、VSIのOSイメージを選択します。ここでは Ubuntu の 18.04 LTS を選択します。
VSIのスペックは、あらかじめ用意されているプロファイルの中から選択します。ここではバランス型のBalancedから、「bx2-2x8」という最安のプロファイルを選択します。
VPCのVSIは、初期状態では、rootでの公開鍵認証のSSHでアクセスすることになります。
以下ではそのためのSSH鍵を作成します。
まず、ローカルの端末でキーペアを作成します。作成する鍵は、2048bit または 4096bit のRSA鍵である必要があります。
ssh-keygen -t rsa -b 4096 -f id_rsa_vpc
上記により、秘密鍵としてid_rsa_vpc、公開鍵としてid_rsa_vpc.pubというファイルが作成されます。
「名前」にSSH鍵の名前を入力します。
「公開鍵」には、先ほど作成したキーペアの公開鍵(id_rsa_vpc.pub)の内容をコピー&ペーストします。
「SSH鍵の追加」ボタンをクリックし、SSH鍵を作成します。
以下のように、作成したSSH鍵が設定されていることを確認します。
デフォルトで100GBのブート・ボリュームが付いていますが、追加のデータ・ボリュームとしてブロック・ストレージを作成・割り当てることができるので割り当ててみます。
「作成」ボタンをクリックします。
「名前」にブロック・ストレージ・ボリュームの名前を入力します。
「サイズ」には任意のサイズを設定します。
「自動削除」は「有効」にします。これにより、このVSIが削除されたときに、このボリュームも一緒に削除されるようになります。ボリュームの削除忘れによる不要な課金やデータの残存を防止することができます。
最後に「接続」ボタンをクリックします。
ここまで設定した内容、および、課金内容を確認したうえで、「仮想サーバー・インスタンスの作成」ボタンをクリックします。
しばらく待つと、以下のように作成したVSIが「稼働中」となります。
浮動IPアドレスの割り当て
VSIを作成しただけだとインターネットからアクセスができないので、浮動IPアドレスを作成して割り当てます。
画面左側のメニューの「浮動IP」を選択し、「作成」ボタンをクリックします。
「浮動IP名」に任意の名前を入力します。
「バインドするインスタンス」では、先ほど作成したVSIを選択し、「IPの予約」ボタンをクリックします。
新たにIPアドレスがVSIに割り当てられたので、IPアドレスをメモしておきます。
(以下のスクショで黒く塗りつぶしている箇所にIPアドレスが表示されます)
VSIへのSSHアクセスの確認
VSIにSSHでアクセスしてみます。以下のコマンドを実行します。
上記で作成した秘密鍵ファイル、および、メモしたIPアドレスを指定します。
ssh -i <秘密鍵ファイルのパス> root@<IPアドレス>
割り当てたデータ・ボリュームを確認してみます。
root@samplevpc-vsi1:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 100G 0 disk
├─vda1 252:1 0 256M 0 part /boot
└─vda2 252:2 0 99.8G 0 part /
vdb 252:16 0 100G 0 disk
vdc 252:32 0 370K 0 disk
vdd 252:48 0 44K 0 disk [SWAP]
上記のように、vdb
というデバイス名で割り当てられていることが確認できます。
以上です。
追記
作成したVSIのセキュリティ確保として上記の後に実施したことを、別記事「IBM Cloud VPC Gen 2上のUbuntuサーバのログイン周りのセキュリティ設定」にまとめました。