【GoogleAppEngineチュートリアル】rubyでHello world!を表示させる

GoogleAppEngineを使えば楽にアプリケーションをネット上に公開することができるのだろうか。 かなり前に同じPaasのHerokuを使ってアップしたことがあるけど、デプロイ自体は難しくはなかった気がする。なんかBootstrapがうまく反映されなくて苦戦した覚えはある。

今回は、GoogleAppEngineを使うと簡単にアプリケーションを公開することができるのかどうかを確かめたい。 簡単だったらいいなあ。とりあえず、チュートリアルをやってみる。

GoogleCloudPlatformに登録する

まずは、GoogleCloidPlatformに登録します。

Google Cloud Platform

使う言語を決める。今回はRubyでいきましょう。

f:id:utr066:20180309150644p:plain f:id:utr066:20180309150636p:plain

無料トライアル期間が終了しても、料金を請求されるようはないようですね、安心した。

f:id:utr066:20180309150640p:plain

東京リージョンがあるみたいなので、それを選択します。

f:id:utr066:20180309151457p:plain

課金を有効にしないと、始められないようなので有効にします。

無料トライアル期間が終了すると、有料アカウントへアップグレードするかどうかを決めることができます。自動的に課金されることはありません。

登録画面が出てくるので、面倒ですが必要情報を入力しましょう。

サンプルデプロイ

どうやらデプロイのチュートリアルを用意してくれているようなので、これに沿ってやってみましょう。

f:id:utr066:20180309152351p:plain

Google Cloud Shell を使用する

チュートリアルでは、Google Cloud Shellというものを使って行うようです。ターミナルですね。 f:id:utr066:20180309153144p:plain

画面に従って、コマンドを入力していきます。

サンプルのプロジェクトはこんなのが入っていますね。

app.rb  app.yaml  Gemfile  Gemfile.lock  spec

app.rbの中身はこれだけ。

require "sinatra"
get "/" do
  "Hello world!"
end

Google App EngineYAML ファイルを使用して、デプロイメントの設定を指定します。app.yaml ファイルには、ランタイム環境、URL、ハンドラーなど、アプリケーションに関する情報が含まれています。

yamlファイルを使ってデプロイメントの設定を行なっているようです。

runtime: ruby
env: flex
entrypoint: bundle exec ruby app.rb

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

アプリが動くか確かめる。

$ bundle install
$ bundle exec ruby app.rb -p 8080

プレビューを見ることができるので、見てみると「HelloWorld」の文字が出力されている。 f:id:utr066:20180309154006p:plain

デプロイする

$ gcloud app deploy --project プロジェクト名

結構時間がかかるので、待ちましょう。

デプロイが終わったら、提示されているURLにアクセスして表示を確認。

f:id:utr066:20180309154927p:plain

ok。

まとめ

チュートリアルは簡単だった。 railsになるとどうだろうか、機会があったら試そう。