2019年1月31日木曜日

プログラマのためのGoogle Cloud Platform入門3章

さて、本書の3章に進みました。

いきなり挫折です。
2章が成功していないと3章が出来ません。
正常に動作する前提でスクリプトが作られていたのでログも無いし、原因不明のままです。仕方ないので動かない部分には目をつむって進みます。

とりあえず、インスタンスを停止させて、スナップショット取って、それからイメージ作って、インスタンステンプレートを作成して、インスタンスグループでイメージを元に異なるリージョンに三つずつインスタンスを作成する流れです。

とりあえずリージョンは本の通り北東アジアと東海岸のどこか。

で、本を読んでて思ったのだけれど、これおかしくないかな?
停止させてイメージ作ってるんだから作成時点では停止している状態の筈。
なのに本では稼働している事を確認してください、とある。
インスタンスを開始させるようには書いてないのに。



いつの間に起動したのかよくわからない・・・。
当然ながら2章がうまく言っていないのでLBの設定をしてもURLはnot foundで404エラー。

次の項目も独自のドメイン取得している前提なのでスルー。
名前やUI変わっていてなぞれない項目も多いし残念な感じ。

なんとなくこんな事が出来るんだっていう感覚だけのふわふわしてるところで今日は終了。


2019年1月30日水曜日

プログラマのためのGoogle Cloud Platform入門2章②

やっぱり本に載っているものとは大分更新されている。

本ではCloudSQLAPIなるものがあるらしいが、検索しても出てこない。
どれが正解かな?
とりあえずAdminAPIを選んでみよう。

その後本の通りに進めてv2の掲示板の起動をしたところで詰まった。

● dengonban.service - Message Board Application
   Loaded: loaded (/etc/systemd/system/dengonban.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2019-01-30 13:47:00 UTC; 5s ago
  Process: 9223 ExecStop=/bin/kill -TERM $MAINPID (code=exited, status=1/FAILURE)
  Process: 9220 ExecStart=/opt/dengonban/v2/app.py (code=exited, status=1/FAILURE)
 Main PID: 9220 (code=exited, status=1/FAILURE)
Jan 30 13:47:00 webserver kill[9223]:  -<signal>, -s, --signal <signal>
Jan 30 13:47:00 webserver kill[9223]:                         specify the <signal> to be sent
Jan 30 13:47:00 webserver kill[9223]:  -l, --list=[<signal>]  list all signal names, or convert one to a name
Jan 30 13:47:00 webserver kill[9223]:  -L, --table            list all signal names in a nice table
Jan 30 13:47:00 webserver kill[9223]:  -h, --help     display this help and exit
Jan 30 13:47:00 webserver kill[9223]:  -V, --version  output version information and exit
Jan 30 13:47:00 webserver kill[9223]: For more details see kill(1).
Jan 30 13:47:00 webserver systemd[1]: dengonban.service: Control process exited, code=exited status=1
Jan 30 13:47:00 webserver systemd[1]: dengonban.service: Unit entered failed state.
Jan 30 13:47:00 webserver systemd[1]: dengonban.service: Failed with result 'exit-code'.

ステータスでこんなメッセージが出てしまう。
台湾にゾーンを変えてもう一つインスタンスを作成していちからやり直しても同じ結果。
もう駄目だ・・・。二時間試行錯誤しても何処でトラブルが起きてるのかさっぱりわからない。

諦めてv3の画像付きの掲示板も試してみたけど同じようなメッセージが出て駄目だった。

何処が駄目なのか・・・。DBへの接続が駄目とか、何かメッセージ出してくれないかな・・・

プログラマのためのGoogle Cloud Platform入門2章

昨日は忙しかったので今日こそ第二章を読む。

いちおう昼休憩にスマホにGoogleConsoleをダウンロードしてVMインスタンスから掲示板を作る所までは実施済み。

ここで一番の問題はスマホでSSH接続してコマンドを打ち込む時、どうやっても打ち込めずスマホのデフォルトのキーパッドで入力した文字が表示されずに消えてしまう。
変換機能か何かが余計な事をしているような挙動に見えたので、別のアプリを入れて入力を差し替えました。
インストールしたのはせっかくだからGoogleの"Gboard"。
インストールして設定する際にクレジットカードなどの情報が外部に送信されるという警告が出てくる。
吃驚して拒否したものの、調べるとAndroidの機能で警告メッセージが表示されるだけで、別にキーパッドで入力したものが外部に送信される事は無いらしい。

紛らわしい・・・あんなメッセージ出てきたらインストール出来ないよ。

何はともあれ無事にコマンドが打ち込めるようになり、本に書いてある通りにやって掲示板を作成。


まあ、こんな単純なものです。

どうやってここに辿り着くのかが分かりにくかった。
GCPの自分のホーム画面?からプロジェクトを切り替えて左側の[GoogleComputeEngine]を選択して[VMインスタンス]から[外部IP]をクリックするとここのURLに転送される。

★余談
本に書いてあるままとりあえず進めようとしていたものの、VMインスタンス画面で警告メッセージがあり、現在の環境ではスペックが十分に使われていないのでもっと性能落とした方がお安くなりますよと推奨があった。
ヘルプページよりも日本語化が進んでいて微妙に違ったけれども、警告に従ってVMインスタンスを停止しておすすめを押下
メモリが3.5GB⇒1.7GBに減りました。


停止が完了しておすすめから推奨スペックが消えたら再び開始させる。
掲示板も元通り普通に表示されましたね。







2019年1月28日月曜日

Cloud Shellを起動してみる

とりあえず本の流れに従ってCloud Shellなるものを起動してみる。
デモ画面らしきものが表示されたけど、しばらく起動中なのかと勘違いしていた。
ウィンドウの右下に起動の文字があったのでそこをクリック・・・何も起きない。


もう一度起動を試そうにもグレーアウトしていて触れない。
しばらく悩んでいると、気がついたら勝手に別のタブが立ち上がっていた。
そっちの画面は上のようにグレーアウトされていないのでもう一度Shellを起動する。

今度はうまく言った。画面の下にコンソールが表示された。
普通のLinux環境みたいだ。
正確にはよくわからない。

とりあえず"pwd"と打ち込んでみると/エイリアス/homeにいてreadme.txtが置いてあったのでcatしてみる。

Welcome to Google Cloud Shell, a tool for managing resources hosted on Google Cloud Platform!
The machine comes pre-installed with the Google Cloud SDK and other popular developer tools.
Your 5GB home directory will persist across sessions, but the VM is ephemeral and will be reset
approximately 20 minutes after your session ends. No system-wide change will persist beyond that.
Type "gcloud help" to get help on using Cloud SDK. For more examples, visit
https://cloud.google.com/shell/docs/quickstart and https://cloud.google.com/shell/docs/examples
Type "cloudshell help" to get help on using the "cloudshell" utility.  Common functionality is
aliased to short commands in your shell, for example, you can type "dl <filename>" at Bash prompt to
download a file. Type "cloudshell aliases" to see these commands.
Type "help" to see this message any time. Type "builtin help" to see Bash interpreter help.

・・・google先生が誇る機械学習で高度に日本語化される翻訳機能に頼ろう。

Google Cloud Platformは、Google Cloud Platformでホストされているリソースを管理するためのツールです。
このマシンには、Google Cloud SDKとその他の一般的な開発者ツールがプレインストールされています。
5GBのホームディレクトリはセッションをまたいで持続しますが、VMは一時的でリセットされます
セッション終了後約20分です。それ以外にシステム全体の変更はありません。
Cloud SDKの使用方法については、「gcloud help」と入力してください。他の例については、をご覧ください。
https://cloud.google.com/shell/docs/quickstartおよびhttps://cloud.google.com/shell/docs/examples
"cloudshell"ユーティリティを使用してヘルプを取得するには、 "cloudshell help"と入力します。共通の機能は
シェル内の短いコマンドにエイリアス化されています。たとえば、Bashプロンプトで "dl <filename>"と入力すると、次のように入力できます。
ファイルをダウンロードしてください。これらのコマンドを表示するには、 "cloudshell aliases"と入力してください。
このメッセージを表示するには、「help」と入力してください。 Bashインタプリタのヘルプを見るには "builtin help"とタイプしてください。
『VMは一時的でリセットされます』
どういうことだろう。
無くなってしまうのだろうか。よくわからない。先に進もう。

と思ったらすぐ後ろのページに解説が載っていた・・・。
ホームは永続的で”リセット”というのは操作しないと勝手に終了するよってだけだった。

その後の一章はアプリケーションのデバッグツールやらなんやらの説明で終わる。
アプリの事はよくわからない・・・

"cloud launcher"なるものの説明もされているが、検索しても出てこない。
無くなってしまったのだろうか。

最後は何書いてあるのかよくわからないまま終わってしまった。
これで初日完。
一、二週間じゃ勉強終わりそうにないなあ・・・。

一章は30Pだったが2章は倍ある。
やばし!

GCPを始めてみよう


最近世間でクラウドクラウドいわれているけれどもなんだかよくわからない。
バズワードって奴ですかね。

オラクルのラリー・エリソンはもともとあった概念を言い換えただけとかなんとか、他にもいろんな人が同じような事をいってはいるものの、世の中こうも広まってはついていかないとと思って勉強してみる事にしました。

でも相変わらずぼんやりしてるし(クラウドだけに!)
目標としては資格取得するまでを目途に始めてみましょうか。

で、いくつか資格があるみたいですが、

・Associate Cloud Engineer
・Professional Cloud Architect
・Professional Data Engineer

目標になりそうなのは上二つ。
Data Engineerはデータ処理とか機械学習とからしいのでいきなり素人が目指すようなものじゃなさそう。

適当に”GCP 資格”でググってみましたが、受験記書いてる皆さん大体実務経験ありとか、既にAWSの資格持っているとかで1,2週間の勉強ですんなり合格されていらっしゃる。(当方、azureってなんかスマホゲームで聞くゲームの事?AWSってアマゾン?本屋さんじゃないの?ってレベル)

素人には参考にならないので、とりあえず本屋さんで参考書を立ち読みしてみました。

Google Cloud Platform エンタープライズ設計ガイド
⇒2018年5月発行だったので、たぶんこちらの方が良さそう
プログラマのためのGoogle Cloud Platform入門
⇒2017年6月発行なのでもう古い。画面デザインやURLも変わっている可能性あり

結局『プログラマのためのGoogle Cloud Platform入門』(3000円)を買いました。
電子書籍版もあるみたいですけど、数百円しか変わらないし。
(kindle版?kindle持ってないと使えないの?っていう状態なので紙の本)
こちらはコマンドとか掲載して手を動かしながら勉強できる本でした。
でもそんなのなくてもWebの向こう側の親切な人達が解説しているサイトたくさんあると思うので、エンタープライズ設計ガイドの方がいいかも。私の場合はより素人向けっぽい方を選びました。(両方買う予算は無い)

とりあえず読みながらアカウント作ってスタートガイド画面まで来ました。
まあ一日一章くらいは読み進めながら手を動かしたいなっと。



追記:
メモメモ。
・プロジェクト名は後からでも変更できる(本では変更できないとあった)
・プロジェクトIDは勝手に小文字になる
・プロジェクトの下にシステムが管理される
・プロジェクト毎にコンソールを切り替える