よみがな あり|なし
Wednesday,November 9
GCPでウェブサーバ構築チャレンジ・3【面倒くさがり屋のススメ】 (12 photos)
GCPでウェブサーバ構築チャレンジ、3ログ目です。
前回はGCPにウェブサーバー(Apache)をインストールして、外部からのブラウザアクセスでinde.htmlが表示されることを確認したところまででした。
今回は、いざFTPサーバーを……と考えていたんですが、その前に。
GCPのインスタンスに接続するのに、いちいちブラウザを立ち上げて→Goole Cloud Platformにアクセスして→ログインして→Compute Engineメニューに移動して→インスタンスのSSHをクリックして……。
という回りくどい手順を踏むのがだんだん面倒くさくなってきました。
そんな面倒くさがり屋さんのために、GCPではGoogle Cloud SDKというモノを無料で配布しています。Google Cloud SDKはコマンドラインインターフェース。コマンドラインからGCPを操作するためのgcloudコマンドなどを使えるようにして、ブラウザを経由せずともGCPのサービスを利用できるようにするというものです。
Windowsの場合は、コマンドプロンプトからGCPに直接アクセスしてサービスが使えるようになります。
どれだけ便利かは使ってみないことにはわからないので、とにかくインストールしてみることにしました。
無料だし!(←食いつくところはそこではない)
Google Cloud SDK
https://cloud.google.com/sdk/
Google Cloud SDKのトップページ
Google Cloud SDKでは、クライアントの環境別にLinux用、DebianおよびUbuntu用、MacOS用、Windos用が配布されています。Windows用が欲しいので、Windows用のページにアクセスします。
Google Cloud SDK/Windows用のページ
あーよかった日本語(笑)
GCPのサービスの進化にあわせて、Google Cloud SDKも仕様などがちょこちょこ変更されているようです。gcloudコマンドのなかにはbeta系という開発中のため動作保障の対象外となっているコマンドも存在します。
GCPの限られたサービスだけ使えればいいスタジオムーンリーフにはおそらく無縁だと思いますが、ページの下のほうにはコマンドのリファレンス(英語)も掲載されているので、そちらを見たほうがいいと思います。
《今回のログは2016年11月9日時点におけるGoogle Cloud SDKの仕様です》
さてさて、クイックスタートに書かれているとおりにインストールしてみましょうか。
インストール自体はスクリーンショットを撮る間もなくサクサク進みました。
まあ、ほかのソフトをインストールする要領と一緒です。
インストールが完了すると、デフォルトの状態だとコマンドプロンプトが起動、gcloud init というSDKの初期化処理が自動的に実行され、
To continue, you must log in. Would you like to log in ? Y
でとまります。
「Y」を入力すると、ブラウザが起動してGoogleアカウントのログイン画面が表示されます。ログインすると、Google Cloud SDKのアクセス権限の許可画面へ。
Google Cloud SDKのアクセス権限の許可画面
「許可」をクリックします。
認証完了画面
認証が完了すると、こんな画面に移動し、その背後でこんどはデフォルトのゾーンを選択してくださいというところでとまります。インスタンスを登録しているゾーンを選択しておきました。
gcloud has now been configured!
You can use [gcloud config] to change more gcloud settings.
このメッセージが表示されれば初期化終了です。
これで終わりです。
え、ホント?
よし、やってみよう。
ねんのためGoolgeアカウントからログアウトして、コマンドプロンプトを立ち上げなおして、
gcloud help
リファレンスを表示するコマンド
と入力してみます。
おおっ、動いた!
おおっ、動きましたね。
ではでは。
ブラウザを経由しないでインスタンスにSSHで接続するところまでやってみます。
gcloud compute instances list
GCPのCompute Engineに登録されているインスタンスのリストを表示させるコマンド
gcloud compute instances list
おおっ!
これは紛れもなくGCPに作成したインスタンス!
STATUS が TERMINATED になっているのは停止中ってことですよね。
このインスタンスを起動させるには……こうかな?
gcloud compute instances start [INSTANCE_NAME]
GCPのCompute Engineに登録されているインスタンスを起動させるコマンド
Updatedごにゃごにゃ……
ん…なんか出たけど意味がわからん。
これで動いたのか?
もう一度 list で見れば STATUS に変化があるはずだよね。
STATUS は……おおっ、RUNNING になってる!
STATUS が RUNNING になってますね。
どうやら起動できたようです。
そしてここからさらに、SSHで接続できるハズだよね。
gcloud compute ssh [INSTANCE_NAME]
GCPのCompute Engineに登録されているインスタンスにSSH接続するコマンド
ああっ! なんかいろいろWARNINGが出ちゃった
なんかいろいろ警告文が出て止められた。
なんとなしに見ると「SSHキー(暗号鍵)が見当たらないけどどうする?」と聞いているらしいです。
そうか、やっぱり暗号鍵がないと無理か。
んん?
「Do you want to continue ?」ってなんだろう、続行できるのか?
ためしに続行してみよう、ダメもとで。「Y」と。
ああっ、なんか動いた。
どうやらGoogle Cloud SDK内にSSHキーを生成する機能が内包されており、自動で暗号鍵を生成しているようです。
しばらくすると、また選択でとまりました。
なにこれー?
「SSHキー生成しました。接続先は正しいですか?」という内容だと思います。
ssh-rsaの行に書かれている意味不明の文字列が、その名もfinger print(指紋)とよばれるSSHで接続するサーバを識別するために使われる文字列になっているようです。
問答無用で「y」を入力。
すると、面白いことに別画面が起動してブラウザ経由でSSH接続したときの画面が表示されました!
思わず入力するPerl -v
おおっ! つながった!
なんてラクチンな。
SSHキーは一度生成すればあとはずっと有効です。
gcloud compute ssh [INSTANCE_NAME]
しかし、このコマンド表記だとSSH接続は確立されますが、WARNING がでました。
パソコンのユーザー名と、GCP上のユーザー名が異なるという警告です。
WARNINGを出さずにSSH接続するためには、ユーザー名を付記する必要があるようです。
gcloud compute ssh [USER_NAME]@[INSTANCE_NAME]
[USER_NAME]は、GCPでSSH接続したときに表示されるユーザー名。
一番上のように入力するとWARNINGが。「ローカルとユーザー名が違うけど??」みたいな内容。ならばときっちりユーザー名を付記するとWARNINGなし
さて、今回はGCPにGoogle Cloud SDKを導入しました。
Compute Engineサービスを利用するするためによく使うgcloudコマンドをまとめておきます。
gcloud help [COMMAND]
リファレンスを表示するコマンド。うしろにコマンドを付記することで絞り込みができますが、ブラウザのリファレンスを見たほうが早いです。
gcloud compute instances list
インスタンスをリスト表示して状態を把握できるコマンド
gcloud compute instances start [INSTANCE_NAME]
インスタンスを起動するコマンド
gcloud compute instances stop [INSTANCE_NAME]
インスタンスを停止するコマンド
gcloud compute ssh [INSTANCE_NAME]
インスタンスにSSH接続するコマンド(簡易版)
ローカルとのusername不一致でWARNINGがでるかも
gcloud compute ssh [USER_NAME]@[INSTANCE_NAME]
インスタンスにSSH接続するコマンド。
WARNING出ませんでした。
≫ NEXT_LOG GCPでウェブサーバ構築チャレンジ・4【SCPはあっさり風味】(8 photos)
≪ PREV_LOG GCPでウェブサーバ構築チャレンジ・2【千尋の谷底】(7 photos)
スタジオムーンリーフ(2005年1月開設/Since 2005)
代表者:野口 卓洋(Takuhiro Noguchi)
Add:356-0006 埼玉県ふじみ野市霞ヶ丘3-1-22-504
Twitter:@StudioMoonLeaf
Facebook:facebook.com/noguchi.takuhiro
©2017 STUDIO MOON LEAF ALL RIGHTS RESERVED.