発端
ずいぶん前なのですが、Go言語の公式ブログで「Announcing App Engine’s New Go 1.11 Runtime」という記事がありました。内容は「おまじないコード無しの普通のWebサービスのコードを、そのままApp Engineにデプロイできるようになったよ」というもので、GCPにとても魅力を感じました。
やってみる
素敵だなと感じたら実践せずにはいられないフレンズなので、やってみますʕ◔ϖ◔ʔ
記事によると以下の3ステップでデプロイできるとのこと。
- Create an account with https://cloud.google.com.
- Create a project.
- Install the Cloud SDK on your system.
https://blog.golang.org/appengine-go111
Google Cloud Platformにアカウント登録
ざっくりと以下の流れでGCP用のアカウント登録ができました。- Google Cloud Platformのページで「GCP 無料トライアル」ボタンをクリック
- Googleアカウントでログイン
- クレジットカード情報を入力
無料トライアルで料金が発生することはありますか?
いいえ、トライアルで料金が発生することはありません。トライアルが終了したアカウントは一時停止となり、有料アカウントへアップグレードすることで同じアカウントを従量課金で使うことができます。登録後、Google から $0~$1 の取引が発生する場合があります。これは、Google の請求システムとクレジット カードやデビットカードの発行会社との承認リクエストが保留中であることを示します。承認は、カード発行会社によって現地通貨に換算される場合があり、これらの取引は、保留中の取引として明細書に最大 1 か月間表示されます。この取引は承認手続きによるもので、実際には請求されません。ご質問は、承認状況について取引先の銀行までお問い合わせください。
https://cloud.google.com/free/docs/frequently-asked-questions
「Google Cloud Platform の無料枠」にあるように無料枠を与えてくれますし、登録したクレジットカードに請求が発生するような有料アカウントへの移行は自動で行わない、ということが確認できて安心して始められました。
gcloudコマンドインストール
私はシェルにfish shellを使っていることもあって、「Cloud SDK のインストール - 対話型インストーラ」の方法でインストールするのが一番よかったです。あとは「Cloud SDK の初期化」も参照して初期設定を済ませましょう。なお、リージョンやゾーンについては「リージョンとゾーン」に一覧がありますのでここで確認して設定します。東京リージョンなら
asia-northeast1
を、ゾーンはasia-northeast1-a
などを使えば良さそうです。サーバーサービスのコードと設定ファイル
上記ブログ記事のコードをコピペしてmain.go
ファイルを作ります。// This server can run on App Engine. package main import ( "fmt" "log" "net/http" "os" ) func main() { port := os.Getenv("PORT") if port == "" { port = "8080" } http.HandleFunc("/", hello) log.Fatal(http.ListenAndServe(fmt.Sprintf(":%s", port), nil)) } func hello(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, 世界")) }
さらに
app.yaml
も作って以下の内容を書きます。runtime: go111
デプロイ
デプロイします。gcloud app deploy
なんと、これだけですか。素晴らしいですね(*´ω`*)
なぜ今か
実は、こんなご時世でクラウドサービスの登録や利用を躊躇していたのは、
- AWSでSecret Access Keyを流出させて○○万円不正利用された
- Big Queryで○○万円溶けた
しかし、2年ほど前にGo言語を使い始めてサーバーサービスなどを自分で作るようになり、Dockerコンテナで簡単に各種サービスをデプロイする簡単さを体験し、業務でAlexaのカスタムスキルを作るようになって確信したのでした。「そんなん言うてられへん。やっぱクラウド技術いるわ」と。
まとめ
そんなこんなでGCPに入門しました。
公式のチュートリアルがかなり充実しているので完全に好みの問題ですが、Manningの「Google Cloud Platform in Action」がなかなか楽しく読めてオススメです。各種GCPサービスのコンセプトを、図を使って丁寧に説明してくれるので「なぜ必要か」「どういった用途で使うか」がイメージしやすいです。
0 件のコメント:
コメントを投稿