views4GCPのストレージサービスについてまとめてみた。Exp:850ガンガン行こうぜGCP!TweetShareHatenaGCEのVMインスタンスを再起動したらSSH接続できなくなった!助けて!!というお問い合わせを時々頂きます。本記事ではそんな万が一の場合に備えて、SSH接続できなくても操作可能なシリアルコンソールをご紹介します。シリアルコンソールとは目の前にサーバがあるようなもの普段、GCEのVMインスタンスを利用する場合は、OS起動後のVMインスタンスに接続するため、VMインスタンスの起動時の画面を見ることはありません。OS起動時に問題が発生してVMインスタンスに接続できなくなると、何が起きているのか調べることすらできなくなってしまいます。このシリアルコンソールはまるで目の前にサーバがあるかのように、VMインスタンスの電源ON直後からログを確認することができます。VMインスタンスの操作も可能なため、状況によっては問題を修正することもできるステキな機能です。(※イメージを掴むための大雑把な説明です。シリアルコンソールのログはいつでも見られるシリアルコンソールで接続するには設定が必要ですが、ログであればいつでも見ることができます。ここではVMインスタンスの例としてLinuxを使用していますが、Windowsでもほぼ同じ手順で確認できます。該当のインスタンスをクリックします。VMインスタンスの詳細画面で「シリアルポート1(コンソール)」をクリックします。※Windowsの場合は「さらに表示」をクリックして表示された「シリアルポート2(コンソール)」をクリックします。するとシリアルコンソールのログがずらっと表示されます。シリアルコンソールで接続するそれでは次に本命であるシリアルコンソールでVMインスタンスに接続してみます。VMインスタンスのOSによって接続方法が少し違うため、LinuxとWindowsに分けてご紹介します。Linux対象のVMインスタンスがLinuxの場合、シリアルコンソールにログインするためには、事前にVMインスタンス上にローカルパスワードの設定が必要です。ローカルパスワードの設定はSSH接続で行うため、SSH接続ができなくなってからでは遅いのです。SSH接続ができるうちに設定しておきましょう。9を使用していますが他のディストリビューションでも同様です。該当のインスタンスをクリックします。VMインスタンスの詳細画面で「編集」をクリックします。みると、シリアルポート接続が有効になっている事が確認できます。ローカルパスワードを設定する次にVMインスタンスの詳細画面で「SSH接続」をクリックすると、SSH接続画面が表示されます。SSH接続画面が表示され自動的にログインが行われます。文字が緑色になっている個所、@の前の文字列が現在ログインしているユーザ名です。)下記コマンドを入力して現在ログインしているユーザのローカルパスワードを設定します。`whoami`パスワードの入力が求められるので、任意のパスワードを入力します。ここで入力したパスワードは万が一の際に使うパスワードです。利用頻度が低いので忘れないようにして下さい!(入力しても画面に何も表示されませんが気にせず入力します)もう一度、パスワードの入力が求められるので、同じパスワードを入力します。(入力しても画面に何も表示されませんが気にせず入力します)このメッセージが表示されればOKです。SSH接続を終了します。exitもし、パスワードを間違って入力した場合には下記のメッセージが表示されます。コマンド入力からやり直します。シリアルコンソールでログインするVMインスタンスの詳細画面から「シリアルコンソールに接続」をクリックします。インタラクティブシリアルコンソールという、SSH接続と良く似た画面が表示されます。メッセージが色々表示されていますが安心して下さい。この画面でEnterキーを押すと、ログインプロンプトが表示されます。先ほどローカルパスワードを設定したユーザ名(satou)を入力します。次にパスワードを入力します。(入力しても画面に何も表示されませんが気にせず入力します)ユーザ名とパスワードが正しく入力できていれば、シェルプロンプトが表示されます。なれることを確認しておきます。2回入力してシリアルコンソールのログインまで戻った後、画面右上の✖印で終了して下さい。Windows対象のVMインスタンスがWindowsの場合、最初にVMインスタンスを利用する際にユーザとパスワードを設定しているはずです。シリアルコンソール接続の際にはそのユーザ・パスワードを使用してログインします。Datacenterを使用していますが他のバージョンでも同様です。該当のインスタンスをクリックします。VMインスタンスの詳細で「編集」をクリックします。みると、シリアルポート接続が有効になっているのが確認できます。シリアルコンソールでログインするVMインスタンスの詳細画面から、シリアルコンソールに接続の右にある「▼」をクリックして、「シリアルポート2(コンソール)」をクリックします。インタラクティブシリアルコンソールという、SSH接続と良く似た画面が表示されます。Console(SAC)が起動しています。詳細な使い方は公式ドキュメントをご参照下さい。ここではいつもの見慣れたコマンドプロンプトの表示までご案内します。コマンドプロンプトチャンネルを作成するために下記コマンドを入力します。>cmdコマンドプロンプトチャンネルが作成されます。入力するとコマンドプロンプトチャンネルが有効になります。この画面で任意のキーを入力すると、ユーザ名(satou)の入力が求められますので入力します。次にドメイン名を入力します。(必要ない場合はそのままEnter)最後にパスワードを入力します。(入力は*で表示されます。)全てが正しく入力できていれば、いつものコマンドプロンプトの画面が表示されます。入力してシリアルコンソールのログインまで戻った後、画面右上の✖印で終了します。それでもバックアップや冗長化は必須ですここでご紹介した内容は万が一の場合にログを確認したり、インスタンスに接続できなくなった場合の最後のアクセス手段です。シリアルコンソールを使って接続できても復旧できるとは限りませんし、壊れ方によってはシリアルコンソールすら繋がらない場合もあります。ユーザの自由度が高いGCEでは、OSより上のレイヤーについてはユーザの責任にて管理しなければなりません。OS上の操作で不具合が発生した場合はユーザ自身にて対応が必要なのです。最後の手段があるからと安心せず、壊れる前提でバックアップや冗長化は必ず行いましょう。これらに役立つ便利なサービスが揃っていますので、ぜひご活用下さい。まとめシリアルコンソール、いかがでしたでしょうか。通常あまり使用する機能では無いですが、念のため設定しておけば、万が一の際の救世主になってくれるかもしれません。公式ドキュメントに記載されていますので、興味がある方は公式ドキュメントをご参照下さい。※特にシリアルコンソールでの接続はIPホワイトリストなどIPベースのアクセス制限をサポートしません。正しい情報を知っていれば誰でもインスタンスに接続できてしまいます。ファイアウォールルールを使用して、社内ネットワークからの接続のみに限定するなど、ネットワークと特定のポートへのアクセスを制御して下さい。Platformのご利用について様々な技術支援を行っております。