LoginSignup
64
60

More than 5 years have passed since last update.

Google App EngineでRailsを動かしてみる

Posted at

Google App EngineでRubyが使えるようになったと聞いたので、HelloWorldしてみます。

基本的にはこちらのRuby Starterにそって進めます。

1. ウェブコンソールからプロジェクトを作る

「プロジェクトを作成」からプロジェクトを作ります。
あと、以下からプロジェクトの課金を有効にしないと最後deployのところでエラーが出たので有効にしました。

プロジェクト.png

2. Google Cloud SDKを入れる

以下で簡単に入ります。

curl https://sdk.cloud.google.com | bash

3. Railsのプロジェクトを作る

普通にRailsプロジェクトを作って、

mkdir app-engine-hello-world
cd app-engine-hello-world
rails new .

律儀にHelloWorldという文字が表示されるようにします。

# /app/controllers/hello_world_controller.rb

class HelloWorldController < ApplicationController
  def index
    # Say hello!
    render text: "Hello, world!"
  end
end

# /config/routes.rb

root 'hello_world#index'

4. Google Cloud SDKで初期化する

Railsのプロジェクトディレクトリでコマンドを叩きます。

gcloud init

Googleアカウントの認証とか、プロジェクト名など選びます。

5. Deploy

おもむろにそのまま勢いでdeployしようとしてみます。

gcloud preview app deploy

app.yamlがないから作るとか言われるので、作ってもらいます。
そしてそのままdeployが進もうとするのですが、app.yamlの中身が微妙だったので、最後だけcontinueせずにapp.yamlを修正します。

  • entrypointの環境をproductionにします
  • env_variablesというキーで環境変数を渡せるようなのでSECRET_KEY_BASEを書きます。
app.yaml
runtime: ruby
vm: true
entrypoint: bundle exec rackup -p 8080 -E production config.ru
env_variables:
  SECRET_KEY_BASE: 'hogehoge'

SECRET_KEY_BASEはここに書くならsecrets.ymlに書いてもいいんじゃないの?という気になります。

再度、deployします。deployはちょっと待ちます。

gcloud preview app deploy

6. 完成!

deploy完了時にurlが表示されるので、開いてみましょう。
Hello Worldと表示されることでしょう。

7. おまけ

公式にもうすこし色々やるチュートリアルが用意されています。

datastoreやcloud_storage、workerまでサンプルがあります。
コード自体は以下にあるようです。

あと、これがdeploy後のconsoleなのですが、App EngineではなくCompute Engineのインスタンスが立ち上がっています。

ホーム_-_ruby-hello-world.png

Managed VMだからだと思うんですが、料金はどうなるんでしょうね?無料期間が3ヶ月あるようなので様子をみてみます。

以上です。

64
60
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
60