この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える
Clouds with binary code floating aboveCloud with binary code floating above

No Results

Search Tips:

  • Please consider misspellings
  • Try different search keywords

Heroku クイックスタート

このセクションでは、Heroku への最初のアプリケーションのリリースを開始する方法について説明します。説明のために Ruby アプリケーションを例として使用します。アプリケーションをリリースするプロセスは、Heroku でサポートされているどの言語 (Ruby、Python、Node.js、Java) でもほとんど同じです。ただし、言語の標準や構造による若干の違いがある場合があります。言語に固有の詳細は、https://devcenter.heroku.com/quickstart を参照してください。

ステップ 1: サインアップする

まず、Heroku.com に移動して [サインアップ] をクリックし、無料の Heroku アカウントを取得します。無料のアカウントと共に、開始するための無料の dyno 時間を得られます。

ステップ 2: Heroku Toolbelt をインストールする

Heroku Toolbelt には、Heroku クライアント (Heroku アプリケーションを作成および管理するためのコマンドラインツール)、Foreman (アプリケーションをローカルで実行するための簡単なオプション)、および Git (Heroku にアプリケーションを転送するために必要なリビジョン管理システム) が含まれています。

Heroku Toolbelt には、スタンドアロンパッケージのほかに、Mac OS X、Windows、および Debian/Ubuntu 用のパッケージが用意されています。

ステップ 3: コマンドラインからログインする

Toolbelt をインストールしたら、コマンドシェルから heroku コマンドにアクセスできます。

Heroku アカウントの作成時に使用したメールアドレスとパスワードを使用して認証します。以前にキーを Heroku にアップロードしている場合、そのキーを使用し続けると想定されるため、ログイン中に新しいキーを作成するように求められることはありません。

プロンプトで Enter キーを押して、既存の ssh キーをアップロードするか、新しいキーを作成します。このキーは、後でコードを転送するときに使用します。

1$ heroku login
2Enter your Heroku credentials.
3Email: adam@example.com
4Password:
5Could not find an existing public key.
6Would you like to generate one? [Yn]
7Generating new SSH public key.
8Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

ログイン後に新しいキーを作成してアップロードする場合、単に heroku keys:add を実行します。

ステップ 4: アプリケーションのリリースの準備をする

これで、Heroku にアプリケーションをリリースする準備が整いました。既存のアプリケーションがない場合、オンラインの開発センターにある「Hello World!」サンプルを利用できます。

Heroku は、Gemfile が存在していれば、アプリケーションが Ruby で記述されていると判断します。Heroku が、pom.xml ファイル (Java)、requirements.txt (Python)、および package.json (Node.js) を検索します。

アプリケーションを Heroku にリリースする前に、あといくつかの作業 (連動関係の宣言、プロセスタイプの宣言、ローカルでのアプリケーションのテスト、Git へのコードのコミット) を行う必要があります。

まず、連動関係 (システムレベルの連動関係は除く) を宣言する必要があります。アプリケーションをローカルでテストし、アプリケーションと連動するすべての gem が Gemfile にあることを確認します。使用する Ruby のバージョンを忘れずに指定してください。Heroku では、デフォルトで Ruby 2.0 がサポートされていますが、整合性を確保するためにすべてのアプリケーションでバージョンを指定する必要があります。

次に、Procfile でプロセスタイプを宣言する必要があります。Procfile は、dyno を起動するために実行する必要のあるコマンドを明示的に宣言するテキストファイルで、アプリケーションのルートにあります。このファイルには、web、worker、またはその他のプロセスが含まれます。この例では、web dyno を開始します。

1web: bundle exec ruby web.rb -p $PORT

これは、単一プロセスタイプ web と、web を実行するために必要なコマンドを宣言しています。ここでは、「web」という名前が重要です。これは、このプロセスタイプが Heroku の HTTP ルーティングスタックに関連付けられ、リリース時に Web トラフィックを受信することを宣言しています。

この時点で、Foreman (Procfile 対応アプリケーションを実行するためのコマンドラインツール) を使用して、ローカルでアプリケーションを実行できます。Foreman は、Heroku Toolbelt と共にインストールされています。

foreman start を実行するだけでポート 5000 でアプリケーションが起動されるため、確認します。

最後に、アプリケーションファイルをローカルの Git リポジトリにコミットします。

1$ git init
2$ git add
3$ git commit -m "init"

ステップ 5: リリースする

これで、Heroku にアプリケーションをリリースする準備が整いました (負荷の高い作業は完了しました)。

まず、heroku create コマンドを使用して Heroku にアプリケーションを作成します。

1$ heroku create
2Creating blazing-galaxy-997... done, stack is cedar
3http://blazing-galaxy-997.herokuapp.com/ | git@heroku.com:blazing-galaxy-997.git
4Git remote heroku added

次に、git push heroku master コマンドを使用して、Git でアプリケーションをリリースします。

1$ git push heroku master
2Counting objects: 6, done.
3Delta compression using up to 4 threads.
4Compressing objects: 100% (5/5), done.
5Writing objects: 100% (6/6), 660 bytes, done.
6Total 6 (delta 0), reused 0 (delta 0)
7
8-----> Ruby/Rack app detected
9-----> Using Ruby version: ruby-2.1.2
10-----> Installing dependencies using Bundler version 1.3.2
11       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment
12       Fetching gem metadata from https://rubygems.org/..........
13       Fetching gem metadata from https://rubygems.org/..
14       Installing rack (1.2.2)
15       Installing tilt (1.3)
16       Installing sinatra (1.1.0)
17       Using bundler (1.3.2)
18       Your bundle is complete! It was installed into ./vendor/bundle
19       Cleaning up the bundler cache.
20-----> Discovering process types
21       Procfile declares types     -> web
22       Default types for Ruby/Rack -> console, rake
23-----> Compiled slug size: 25.1MB
24-----> Launching... done, v3
25       http://blazing-galaxy-997.herokuapp.com deployed to Heroku
26
27To git@heroku.com:blazing-galaxy-997.git
28 * [new branch]      master -> master

この例では、http://blazing-galaxy-997.herokuapp.com で Web ブラウザにアプリケーションを表示したり、curl を使用してテストしたりできるようになります。

これで、最初のアプリケーションを Heroku にリリースできました。

ステップ 6: CLI を使用する

Heroku CLI を使用して、アプリケーションの操作 (統合ログの表示、アプリケーションの拡張、アドオンサービスの追���) を行うことができます。  

Web トラフィックをスケールアップする場合、web dyno の数を調整するように Heroku に通知するだけですみます。

1$ heroku ps:scale web=2
2Scaling web dynos... done, now running 2

実行されている dyno の数を確認します。

1$ heroku ps
2git:master
3=== web (1X): `bundle exec ruby web.rb -p $PORT`
4web.1: up 2013/10/15 11:28:17 (~ 5m ago)
5web.2: up 2013/10/15 11:33:24 (~ 1s ago)

発生したすべての新規ログイベントが表示されるように tail を指定して、統合ログストリームを表示します。

1$ heroku logs --tail
22013-10-15T10:24:25.602652+00:00 app[web.1]: Started GET "/articles/getting-started-with-nodejs" for 84.32.143.141 at 2013-10-15 10:24:25 +0000
32013-10-15T10:24:25.885004+00:00 heroku[router]: at=info method=GET path=/assets/public/feed-icon-sprite.png host=devcenter.heroku.com request_id=fd511f6195f52e8e58f58cccbc07109c fwd="77.252.246.255" dyno=web.12 connect=0ms service=15ms status=200 bytes=4867
42013-10-15T10:24:26.563176+00:00 heroku[web.1]: source=web.1 dyno=heroku.12227120.90edce79-b91e-403e-be3f-2f2ba11aa5af sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.00
5

重大なイベントに関するログを保持してアラートを送信する必要がある場合、多数のログ記録アドオン (Papertrail など) のいずれかを追加します。

1$ heroku addons:add papertrail
2Adding papertrail on blazing-galaxy-997... done, v6 (free)
3Use `heroku addons:docs papertrail` to view documentation.

効率性と生産性の高い開発者ワークフローを設定する必要がある場合、Heroku では、アプリケーション全体に fork を実行できるため、同一のステージング環境を簡単に構築できます。

1$ heroku fork staging-galaxy
2Creating fork blazing-galaxy-997... done
3Copying slug... done
4Copying config vars... done
5Fork complete, view it at http://staging-galaxy.herokuapp.com/

これで、ソースの新しいブランチをこの新規アプリケーションにリリースできます。

1$ heroku git:remote -a staging-galaxy -r staging                                                                                                                 git:master
2Git remote staging added
3$ git push staging newbranch:master

カスタムドメインで起動する準備はできましたか。DNS および CNAME を設定すれば、簡単に実行できます。

1$ heroku domains:add www.mydomain.com
2Adding www.mydomain.com to blazing-galaxy-997... done

Heroku では、設定とコードが分離されているため、アプリケーションに影響する可能性のある値 (秘密鍵など) を簡単に変更できます。

1$ heroku config:set SECRET_KEY=2342434434343433555422
2Setting config vars and restarting blazing-galaxy-997….done, v8

リリース履歴にドリルダウンして、ベロシティ、最新の変更、またはトラブルシューティングの問題に関する詳細情報を取得する必要がある場合、これに対応するコマンドも用意されています。

1$ heroku releases
2=== demo-for-james Releases
3v6  Add SECRET_KEY config                      jon@heroku.com            2013/10/15 12:00:10 (~ 59s ago)
4v5  Add papertrail:choklad add-on     jon@heroku.com            2013/10/15 11:26:59 (~ 34m ago)
5v4  Deploy 9579f23                    jon@heroku.com            2013/10/15 10:23:32 (~ 1h ago)
6v3  Deploy 0eb78aa                    jon@heroku.com            2013/10/15 10:21:33 (~ 1h ago)
7v2  Enable Logplex                    heroku@herokumanager.com  2013/10/15 09:58:21 (~ 2h ago)
8v1  Initial release                   heroku@herokumanager.com  2013/10/15 09:58:20 (~ 2h ago)

問題を修正するために以前のリリースにロールバックします。

1$ heroku rollback v6
2Rolling back blazing-galaxy-997... done, v6
3 !    Warning: rollback affects code and config vars; it doesn't add or remove addons. To undo, run: heroku rollback v7