Forum Stats

  • 3,827,812 Users
  • 2,260,823 Discussions
  • 7,897,381 Comments

Discussions

インスタンスのライフサイクルを管理する - Oracle Cloud Infrastructureを使ってみよう(その5)

Tkonishi-Oracle
Tkonishi-Oracle Posts: 12 Employee
edited Aug 2, 2019 12:57AM in Social Groups

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう

リソースを必要なときに必要なだけ使える、というのがクラウドのいいところですね。そのために作成したインスタンスはいつでも停止、再起動、終了、再作成といった処理が行えるようになっています。このチュートリアルでは、そのようなインスタンスのライフサイクル管理をどう行うかと、それぞれのステータスで実際にインスタンスがどのような状態になっているのかについて確認していきます。

所要時間 : 約20分

前提条件 :

  1. を通じてコンピュート・インスタンスの作成が完了していること
  2. を通じてブロック・ボリュームのアタッチが完了していること

注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります

image

1. インスタンスの停止、再起動

まずは、インスタンスの停止、再起動処理と、その際に実行される動作について確認していきましょう。

1-1. ブートボリュームへのファイルの作成

OCIのインスタンスは、すべてブート・ボリュームと呼ばれる永続化されたiSCSIデバイスからネットワーク経由でブート(iPXEブート)されます。

このブート・ボリュームの変更(OSのパラメーター変更など)が、インスタンスのライフサイクル操作によってどのような影響を受けるかを確認するために、予めファイルを1つ作成します。

  1. SSHターミナルを開き、 で作成したインスタンスにsshでアクセスします

  2. アクセスしたユーザーホームディレクトリに、任意のファイルを作成します。
    下記の例では、opcユーザーのホームディレクトリ(/home/opc)に、testfileというファイルを作成しています
    pastedImage_0.png

1-2. インスタンスの停止

インスタンスを停止し、その際にどのようなことが起こるかをOCIコンソールから確認します。

  1. コンソールメニューから コンピュート → インスタンス を選択し、で作成したインスタンス名 (TestVM1など) のリンクをクリックします

  2. インスタンスの詳細画面の上部にある 停止 ボタンを押します
    pastedImage_4.png

  3. 確認を求めるメッセージ・ダイアログが立ち上がるので、OK ボタンを押します
    pastedImage_5.png

  4. インスタンスのステータスが 停止中 となり、その後 停止済 に変わります
    pastedImage_6.png
    sshでアクセスしていたターミナル・ウィンドウも接続が切断されています。(Tera Termの場合はウィンドウが閉じているはずです)

  5. 停止済 になったインスタンスの状態を、OCIコンソールから確認します。
    主な確認ポイントは以下のとおりです。
    • インスタンス概要画面の プライマリVNIC情報 フィールドにおいて、プライベートIPアドレスパブリックIPアドレス に、インスタンス起動時と同じIPアドレスが引き続き確保されていること
    • アタッチされたブロック・ボリューム フィールドに、 でアタッチした追加ボリュームが引き続き表示され、アタッチ済 のステータスになっていること
    • ブート・ボリューム フィールドに、ブートボリュームが表示され、アタッチ済 のステータスになっていること

インスタンスが 停止済 ステータスになると、一部の例外のインスタンスを除き、インスタンスへの課金が停止します。一方ブロック・ボリューム等の確保済のストレージ・リソースは存続しているため、課金は継続します。
インスタンスのシェイプ名称のうち、DenseIO / HighIO / HPC / GPU という名称がつくインスタンスに関しては、例外的に 停止済 ステータスになってもインスタンスへの課金が継続します。インスタンス停止時の課金に関する詳細についてはマニュアルの ここ で確認できます。

1-3. インスタンスの起動

停止したインスタンスを再度起動し、挙動を確認します。

  1. 停止中のインスタンスの詳細画面上部の 開始 ボタンを押します
    pastedImage_15.png

  2. 確認を求めるメッセージ・ダイアログが立ち上がるので、OK ボタンを押します

  3. インスタンスのステータスが 実行中 になるのを確認します
    ステータスが変わったらインスタンスの詳細情報を確認し、停止済 のステータスの際と、表示されている情報を比較してください。

  4. sshターミナルを起動し、opcユーザーでsshログインします
    インスタンスがRUNNING ステートになった後、sshdが起動してsshアクセスできるようになるまで、さらに約3分程度かかります
  5. sshログインしたら、ステップ1-1で作成したブート・ボリュームのファイルを確認します
    pastedImage_19.png
    おそらくファイルが正しく表示されるはずです。
    これは、ブート・ボリューム(OS領域)に対する変更が、インスタンスの停止、再起動処理を経ても永続化されていることを示します。

  6. また、以下のコマンドを発行し、アタッチされているボリュームの情報を確認します
    $ lsblk
    このインスタンスにアタッチされている、ブートボリュームを含むボリュームの一覧が表示されています。
    pastedImage_20.png
    /dev/sdb というボリュームが表示されていることがわかります。これは、 において追加でアタッチし、OSからiSCSIでログインしたボリュームです。
    つまり、インスタンスの停止、再起動を経ても、ブロックボリュームへのiSCSIのログインが継続しており、再起動後に再びログイン処理を行う必要がないことがわかります。

2. インスタンスの終了(Terminate)

ここでは、インスタンスの終了(Terminate)処理を行って、その際の挙動について確認します。

  1. コンソールメニューから コンピュート インスタンスを選択し、先程起動処理を行ったインスタンス名 (TestVM1など) のリンクをクリックします

  2. インスタンスの詳細画面の上部にある アクション▼ メニューから 終了 を選択します
    pastedImage_22.png


  3. インスタンスのブート・ボリュームをどうするかを選択するダイアログ・ボックスが起動します
    アタッチされたブート・ボリュームを完全に削除 というチェックボックスにチェックをつけると、インスタンスのブート・ボリュームが削除されます。
    今回は、ブート・ボリュームを後ほど利用するので、チェックを外したまま インスタンスの終了 ボタンを押します。pastedImage_27.png

  4. インスタンスの終了処理がはじまります。終了処理中は 終了中... というステータスになります。
    この処理の間に、インスタンス作成時に確保された各種のリソースが順にデタッチ、または削除されていきます。
    OCIコンソール上では、リアルタイムで情報が変化し、削除されたリソースから表示が変化していきますので、リアルタイムで状況がどう変わるかを確認してみてください。

  5. インスタンスの終了(Terminate)処理が完了すると、ステータスが 終了済 に変わります。
    画面上のステータスアイコンで、ステータスが 終了済 になったことを確認します。
    pastedImage_30.png

  6. プライマリVNIC情報 欄では、プライベートIPアドレス および パブリックIPアドレス使用不可 になっていることを確認します。
    これは、インスタンスの終了とともに、アタッチされていたインスタンスのプライベートIPアドレス、パブリックIPアドレスがデタッチされ、IPのプールに返還された状態であることを示しています。これらのIPアドレスは、他のインスタンスで再利用することができます。

    pastedImage_33.png

  7. アタッチされたブロック・ボリューム 欄には、このインスタンスにはアタッチされたブロック・ボリュームはありません。 と表示されています。
    インスタンスの終了とともに、アタッチされていた追加ボリュームはデタッチされていることがわかります。
    pastedImage_38.png
  8. アタッチされたVNIC 欄には、何も表示されていません。インスタンスの終了とともに、アタッチされていた仮想NICはすべて削除されています。
    pastedImage_41.png
    現在の Oracle Cloud Infrastructure では、インスタンスの削除時に仮想NICを残しておいて、他のインスタンスにアタッチするような機能(いわいるElastic Network Interface)の機能はありません。この機能は将来の実装が予定されています。
    また現在でも、予約IP機能をつかったグローバルIPアドレスの移動(いわいるElastic Global IP)は可能です。
  9. Boot Volume 欄には、デタッチ済 というステータスのボリュームがひとつ表示されています。
    削除時のダイアログで、ブートボリュームを削除しないという選択をしたため、ボリュームは保全されています。
    pastedImage_37.png

終了済 ステータスのインスタンスは、インスタンスのシェイプを問わず、すべて課金が停止しています。

ただし、ブート・ボリュームを残す選択をした場合は、そのボリュームはインスタンス終了後も存続し、課金が継続します。

終了済 ステータスのインスタンスは、暫くの間OCIコンソールに表示され続けますが、このインスタンスを復活させることはできません。しばらくすると終了済インスタンスはOCIコンソールから表示が消えます。

DenseIO、HighIO、HPCなどの、インスタンス内部にストレージが付属するインスタンスの場合、インスタンスを終了(terminate)すると内部ストレージのデータが消去され、損失します。もし内部ストレージのデータの保全が必要な場合は、予めブロック・ボリューム等の他の永続ストレージにデータを保管してからインスタンスを終了するようにしてください。

3. ブート・ボリュームからのインスタンスの再作成

終了したインスタンスを再度起動させることはできませんが、ブート・ボリュームが保管されている場合はそこから新しく別のインスタンスを作成することができます。ここではその手順について確認します。

  1. コンソールメニューから コンピュート → ブート・ボリュームを選択します

  2. 先程削除したインスタンスのブート・ボリュームが表示されています。TestVM1 (Boot Volume) のような名称のリンクをクリックします

  3. ブート・ボリュームの詳細画面の上部にある インスタンスの作成 というボタンを押します
    pastedImage_47.png

  4. コンピュート・インスタンスの作成 ウィザードが起動してきます。以下の内容を入力して下部の 作成 ボタンを押します。
    • インスタンスの命名 - 任意
    • 可用性ドメイン - 先程削除したインスタンスが存在していたアベイラビリティ・ドメインと同じものを選択
    • オペレーティング・システムまたはイメージ・ソースを選択します - さきほど表示したブート・ボリューム(TestVM1 (Boot Volume))が選択されていることを確認
    • インスタンス・タイプの選択 - 任意
    • インスタンス・シェイプの選択 - 任意
    • ブートボリュームの構成 - デフォルトのままチェック入れず
    • SSHキーの追加 - 作成済みの鍵ペアのうち公開鍵 (id_rsa.pub)を選択
    • ネットワーキングの構成
      • 仮想クラウド・ネットワーク・コンパートメント - VCNの存在するコンパートメントを選択
      • 仮想クラウド・ネットワーク - 任意のVCNを選択
      • サブネット・コンパートメント - サブネットの存在するコンパートメントを選択
      • サブネット - 任意のパブリック・サブネットを選択
    • 拡張オプションの表示 - ネットワーキング
      • パブリックIPアドレスの割当て - チェックをつける (デフォルト)
        Oracle Cloud Infrastructure では、同一のイメージから仮想マシン、ベアメタルサーバーの両方のインスタンスを作成することができます。このため、仮想マシンのブート・ボリュームからベアメタルサーバーを立ち上げる、といったことや、その逆の操作も可能です。この手順の シェイプ・タイプ および シェイプ で、もとのインスタンスとは違うものを選択することで実現できます。
  5. インスタンスの作成が開始されます。2-3分ほどでインスタンス作成が完了し、ステータスが 実行中 に変わります。
    インスタンスに新しく割り振られたパブリックIPアドレスを確認します。

  6. 確認したパブリックIPアドレスに対してsshでアクセスし、ステップ1-1で作成したファイル(/home/opc/testfile) が存在することを確認します。
    これにより、インスタンス削除時のOS領域の情報がインスタンスの再作成後も保全されていることがわかります。

以上がブート・ボリュームを利用したインスタンスの再作成の方法です。
今回は、終了(Termitate)したインスタンスのブートボリュームからインスタンスを作成しましたが、必ずしもインスタンスを終了(Terminate)する必要があるわけではなく、インスタンスの停止→ブートボリュームのデタッチを行ったブートボリュームであれば、元のインスタンスを残したまま新しいインスタンスを作成することも可能です。この方法を使うと、一時的にインスタンスのタイプやシェイプを変更し、作業が終わったらまた元のインスタンスにアタッチして利用するようなことも可能になります。

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう