LoginSignup
2
2

More than 3 years have passed since last update.

【Oracle Cloud Infrastructure】インスタンスのライフサイクルを管理する

Posted at

クラウドに作成したインスタンスはいつでも停止、再起動、終了、再作成できる。
このインスタンスのライフサイクル管理をどうするか、それぞれのステータスで実際にインスタンスがどのような状態なっているかについて確認する。

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

インスタンスの停止、再起動処理、そのとき実行される動作について確認

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

OCIのインスタンスは、すべてブート・ボリュームは iSCSIデバイスからネットワーク経由で iPEXブートされる。
このブート・ボリュームの変更(OSのパラメータ変更など)が、インスタンスのライフサイクル操作によってどのような影響を受けるかを確認するために、予めファイルを1つ作成する。

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

  2. アクセスしたユーザホームディレクトリに、任意のファイルを作成する
    1__opc_testvm1____ssh__と_サービス・リクエスト・ホーム.png

インスタンスの停止

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

  1. コンソールメニューから「コンピュート」→「インスタンス」を選択し、作成したインスタンス名のリンクをクリックする
    スクリーンショット_2019-12-08_17_00_24.png
    Oracle_Cloud_Infrastructure.png

  2. インスタンスの詳細画面の上部にある「停止」をクリック
    Oracle_Cloud_Infrastructure.png

  3. 確認を求めるメッセージ・ダイアログは「OK」をクリック
    Oracle_Cloud_Infrastructure.png

  4. インスタンスのステータウが「停止中」となり、停止済みになる
    Oracle_Cloud_Infrastructure.png
    Oracle_Cloud_Infrastructure.png
    sshでアクセスしていたターミナル・ウィンドウは接続が切断される
    1__opc_testvm1____bash_.png

  5. 「停止済」になったインスタンスの状態をOCIコンソールから確認
    主な確認ポイント

    • インスタンス概要画面の「プライマリVNIC情報」フィールドで、「プライマリIPアドレス」と「パブリックIPアドレス」にインスタンス起動時と同じIPアドレスが引き続き確保されていること
      Oracle_Cloud_Infrastructure.png
    • 「アタッチされたブロック・ボリューム」フィールドに、アタッチした追加ボリュームが引き続き表示され、「アタッチ済み」のステータスになっていること
      Oracle_Cloud_Infrastructure.png
    • 「ブート・ボリューム」フィールドに、ブートボリュームが表示され、「アタッチ済」のステータスになっていること
      Oracle_Cloud_Infrastructure.png

✅ インスタンスが停止済ステータスになると、一部の例外のインスタンスを除き、インスタンスへの課金が停止します。一方ブロック・ボリュームなどの確保済のストレージ・リソースは存在しているため、課金は継続します。

ℹ️ インスタンスのシェイプ名称のうち、DenseIO / HighIO / HPC / GPUという名称がつくインスタンスに関しては、例外的に停止済ステータスになってもインスタンスへの課金が継続する。インスタンス停止時の課金に関する詳細についてはマニュアルで確認できる。

以下、マニュアルから抜粋:
停止済インスタンスのリソース請求
VMとベアメタルの両方のインスタンスで、請求はインスタンスの作成に使用するシェイプによって異なる:

  • 標準シェイプ:インスタンスの停止は請求を一時停止します。ただし、停止されてたインスタンスは引き続きサービス制限を考慮してカウントされます。
  • Dense I/Oシェイプ:請求処理は、NVMeストレージがアタッチされているために停止されたインスタンスを継続し、関連リソースは引き続きサービス制限に沿ってカウントされます。サービス制限からの請求および関連リソースの削除を停止するには、「インスタンスの終了」を実行する必要がある
  • GPUシェイプ:請求は停止したインスタンスのために続行され、関連リソースは引き続きサービス制限に達するようになりいます。サービス制限からの請求および関連リソースの削除を停止するには「インスタンスの終了」を実行する必要があります。
  • HPCシェイプ:請求処理は、NVMeストレージがアタッチされているために停止されたインスタンスを継続し、関連リソースは引き続きサービス制限に沿ってカウントされます。サービス制限からの請求および関連リソースの削除を停止するには、「インスタンスの終了」を実行する必要があります。

インスタンス内からインスタンスを停止しても、そのインスタンスの請求は停止しません。この方法でインスタンスを停止する場合は、必ずコンソールまたはAPIから 停止してください。

今使っている、「VM.Standard2.1」は標準にあたると思うけど、インスタンス停止しても請求は停止しなかった。停止後のコスト分析をメモって少し放置
Oracle_Cloud_Infrastructure.png
これ「Compute->VM Standard Compute X7」ってX7てなっているのがもしかして「HPC」に該当するのだろうか
Oracle_Cloud_Infrastructure.png
やっぱり増えている。リージョンによって違う?

インスタンスの起動

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

  1. 停止中のインスタンスの詳細画面上部の「開始」をクリック
    Oracle_Cloud_Infrastructure.png

  2. 確認を求めるメッセージ・ダイアログが立ち上がるので、「OK」をクリック
    Oracle_Cloud_Infrastructure.png

  3. インスタンスのステータスが実行中に成るのを確認する
    Oracle_Cloud_Infrastructure.png
    Oracle_Cloud_Infrastructure.png
    ステータスが変わったらインスタンスの詳細情報を確認、停止中との違いを比較。。。ステータスだけで他に違いはなさそう

  4. sshターミナルを起動し、opcユーザで sshログインする
    ℹ️ インスタンスが実行中になってから、sshdが起動してsshアクセスできるようになるまで数分かかる

  5. sshログインしたら、最初に作成したブート・ボリュームのファイルを確認する
    1__opc_testvm1____ssh__と_Service_Requests_Home.png
    問題なくファイルが表示できる。
    ブート・ボリューム(OS領域)に対する変更が、インスタンスの停止、再起動でも永続化されている。

  6. アタッチされているボリュームの情報を確認
    1__opc_testvm1____ssh_.png
    /dev/sdbというボリュームが表示されない!!!
    Oracle_Cloud_Infrastructure.png
    Oracle_Cloud_Infrastructure.png
    1__root_testvm1____ssh_.png
    iscsiの設定をミスったか?もう一度設定仕直し&確認してインスタンスの再起動をしてみる
    1__opc_testvm1____ssh__と_Service_Requests_Home.png

無事、インスタンスにアタッチされている、ブートボリュームを含むボリュームの一覧が表示された。
/dev/sdbは、【Oracle Cloud Infrastructure】ブロック・ボリュームをインスタンスにアタッチするで追加したボリューム。
インスタンスの停止、再起動しても、ブロックボリュームへの iSCSIのログインが継続され、再起動後は自動ログインされる。

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

  1. コンソールメニューから「コンピュート」→「インスタンス」を選択し、インスタンス名(testVM1)のリンクをクリック
    スクリーンショット_2019-12-24_22_33_51.png
    インスタンス___Oracle_Cloud_Infrastructure.png

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

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

  4. インスタンスの終了処理が始まる。終了処理中は「終了中...」というステータスになる。
    この処理の間に、インスタンス作成時に確保された各種のリソースが順にデタッチ、または削除されていく。
    OCIコンソール上では、リアルタイムで情報が変化し、削除されたリソースから表示が変化していくので、リアルタイムで状況がどう変わるかを確認できる。
    スクリーンショット 2019-12-27 2.19.41.png

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

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

  7. 「アタッチされたブロック・ボリューム」欄には、「このインスタンスにはアタッチされたブロック・ボリュームはありません。」と表示される。
    インスタンスの終了とともに、アタッチされていた追加ボリュームはデタッチされていることがわかる。

  8. 「アタッチされたVNIC」欄には、何も表示されていない。インスタンスの終了とともに、アタッチされていた仮想NICはすべて削除されている。
    ℹ️ 現在のOracle Cloud Infrastructureでは、インスタンスの削除時に仮想NICを残しておいて、他のインスタンスにアタッチするような機能(Elastic Network Interface)はない。この機能は将来の実装が予定されている。
    現在でも、予約IP機能を使ったグローバルIPアドレスの移動(Elastic Global IP)は可能。
    インスタンス___Oracle_Cloud_Infrastructure.png

  9. Boot Volume欄には、「デタッチ済」というステータスのボリュームがひとつ表示されている。
    削除時のダイアログで、ブートボリュームを削除しないという選択をしたため、ボリュームは保全されている。
    インスタンス___Oracle_Cloud_Infrastructure.png

「終了済」スタータスのインスタンスは、インスタンスのシェイプを問わず、すべて課金が停止している。
ただし、ブート・ボリュームを残す選択をした場合は、そのボリュームはインスタンス終了後も存続し、課金が継続する。

「終了済」スタータスのインスタンスは、暫くの間OCIコンソールに表示され続けるが、このインスタンスを復活させることはできない。暫くすると終了済インスタンスはOCIコンソールから表示が消える。
⚠️ DenseIO、HighIO、HPCなどの、インスタンス内部にストレージが付属するインスタンスの場合、インスタンスを終了(terminate)すると内部ストレージのデータが消去され、損失する。
もし内部ストレージのデータ保全が必要な場合は、予めブロック・ボリュームなどの他の永続ストレージにデータを保管してからインスタンスを終了するようにする。

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

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

  1. コンソールメニューから「コンピュート」→「ブート・ボリューム」を選択
    スクリーンショット_2019-12-27_21_03_02.png
  2. 削除したインスタンスのブート・ボリュームが表示される。
    ブート・ボリューム___Oracle_Cloud_Infrastructure.png
    ブート・ボリューム名をクリックする

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

  4. 「コンピュート・インスタンスの作成」ウィザードが起動してくる。以下の内容を入力して下部の「作成」をクリック

    • インスタンスの命名:任意
    • オペレーティング・システムまたはイメージ・ソースを選択します:削除したインスタンスのブート・ボリュームが選択されていることを確認
      Oracle_Cloud_Infrastructure.png
    • 可用性ドメイン:削除したインスタンスが存在していたアベイラビリティ・ドメインと同じものを選択
    • インスタンス・タイプ:任意
    • インスタンス・シェイプ:任意
      Oracle_Cloud_Infrastructure.png
    • ネットワーキングの構成
      • 仮想クラウド・ネットワーク・コンパートメント:VCNの生存するコンパートメントを選択
      • 仮想クラウド・ネットワーク:任意のVCNを選択
      • サブネット・コンパートメント:サブネットの存在するコンパートメントを選択
      • サブネット:任意のパブリック・サブネットを選択
      • ネットワーク・セキュリティ・グループを使用してトラフィックを制御
      • パブリックIPアドレスの割当て(デフォルト)/パブリックIPアドレスを割り当てないでください
        Oracle_Cloud_Infrastructure.png
        ✔️ Oracle Cloud Infrastructureでは、同一のイメージから仮想マシン、ベアメタルサーバの両方のインスタンスを作成することができる。このため、仮想マシンのブート・ボリュームからベアメタルサーバを立ち上げる、といったことや、その逆の操作も可能。この手順のシェイプ・タイプ及びシェイプで、もとのインスタンスとは違うものを選択することで実現出来る。
    • ブート・ボリューム:デフォルトのまま
    • SSHキーの追加:作成済みの鍵ペアのうち公開鍵(id_rsa.pub)を選択
      Oracle_Cloud_Infrastructure.png
    • 拡張オプションの表示
      • 管理
        • インスタンスのコンパートメントを選択します:移動したい時はここを変更だ
        • フォルト・ドメインの選択
        • ユーザ・データ
        • Oracle Cloudエージェント
          Oracle_Cloud_Infrastructure.pngOracle_Cloud_Infrastructure.png
      • ネットワーキング
        Oracle_Cloud_Infrastructure.png
      • イメージ
        Oracle_Cloud_Infrastructure.png
      • ホスト
        Oracle_Cloud_Infrastructure.png
        設定を間違っていた時はこうやって直すってことができそう
        Oracle_Cloud_Infrastructure.png
        ブート・ボリューム使い回しなのにこのメッセージ、、、もう嫌すぎる
  5. インスタンスの作成が開始される。2-3分ほどでインスタンス作成が完了し、ステータスが「実行中」にかわる。
    インスタンスに新しく割り振られたパブリックIPアドレスを確認する。

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

インスタンスを終了(Terminate)せず、インスタンスの停止→ブートボリュームのデタッチ後のブートボリュームなら、元のインスタンスを残したまま新しいインスタンスを作成することも可能。この方法を使うと、一時的にインスタンスのタイプやシェイプを変更し、作業が終わったらまた元のインスタンスにアタッチして利用することも可能。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2