Heroku を初めて利用する際のメモ
- 本家の「Getting Started on Heroku with Java」を実施した際のメモ書きとなります。
環境
- 2016/10/22(Sat) 時点
- クラウドのサービスは仕様がよく変わるので後で参照するときは、変更点に気を付ける
- Sign upについては割愛
- アカウントを作成してSign upした状態からスタート
- 開発PC
- Windows 10 64bit
- 開発言語
- 本家を参照する
- 最低限下記が必要
- a free Heroku account.
- Java 8 installed locally.
- Maven 3 installed locally.
- Gradleじゃないのか。。。orz
- 公式には書いていないが、前提としてgitの環境整備はされてる必要がある。
Set up
-
Heroku CLIのインストール
- 本家のページからインストーラをダウンロードする。
- インストールする。
- はい or 進むでOK
- cmd.exeを起動する(環境変数の変更が発生しているので、ここで新規で起動すること)
- 以下のようにコマンドを実行する。(> が入力コマンド、無いものが標準出力)
- ! Add ~ が表示されればインストール完了
cmd.exe
> heroku
heroku-cli: Installing CLI... 17.56MB/17.56MB
Enter your Heroku credentials.
Email: herokuに登録したEmailを入力する
Password (typing will be hidden): パスワードを入力する
Logged in as EmailAdress
! Add apps to this dashboard by favoriting them with heroku apps:favorites:add
See all add-ons with heroku addons
See all apps with heroku apps --all
See other CLI commands with heroku help
Prepare the app
- サンプルアプリを利用したアプリ
- 以下のようにコマンドを実行する。
cmd.exe
> git clone https://github.com/heroku/java-getting-started.git
Cloning into 'java-getting-started'...
remote: Counting objects: 184, done.
Receiving objects: 72% (133/184) 0 (delta 0), pack-reused R184
Receiving objects: 100% (184/184), 81.08 KiB | 0 bytes/s, done.
Resolving deltas: 100% (53/53), done.
Checking connectivity... done.
> cd java-getting-started
Deploy the app
Heroku上にアプリを作成する。
- 以下のようにコマンドを実行する。
- 99999 については、実際時コマンド実行時に任意で採番される番号となる。
cmd.exe
> heroku create
Creating app... done, agile-ravine-99999
https://agile-ravine-99999.herokuapp.com/ | https://git.heroku.com/agile-ravine-99999.git
- コマンド実行後に https://dashboard.heroku.com/apps に接続すると上記のアプリが作成されている。
Herokuにデプロイ
- 次にGitのmaterをherokuにデプロイする。
cmd.exe
> git push heroku master
・・・
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] BUILD SUCCESS
remote: [INFO] ------------------------------------------------------------------------
remote: [INFO] Total time: 11.732 s
remote: [INFO] Finished at: 2016-10-22T07:06:07+00:00
remote: [INFO] Final Memory: 30M/194M
remote: [INFO] ------------------------------------------------------------------------
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 50.7M
remote: -----> Launching...
remote: Released v4
remote: https://agile-ravine-99999.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/agile-ravine-99999.git
* [new branch] master -> master
デプロイ完了。
インスタンスが実行されていることの確認
cmd.exe
> heroku ps:scale web=1
Scaling dynos... done, now running web at 1:Free
1つのアプリが実行されていることが確認できた。
デプロイされたアプリの確認
- URLを入力等々の簡略化のために、herokuからコマンドが提供されている。
cmd.exe
> heroku open
利用するブラウザが選択があり、実際の画面が表示される。
View Logs
- ログを見てみよう
cmd.exe
heroku logs --tail
Define a Procfile
- java-getting-started\Procfileに下記のような記述がされている。
- web: java -jar target/helloworld.jar
- TODO とりあえずおまじないとして覚えておく
Scale the app
- 現在、動いているアプリ情報を確認する
cmd.exe
> heroku ps
=== web (Free): java -jar target/helloworld.jar (1)
web.1: up 2016/10/22 16:06:19 +0900 (~ 40m ago)
- 動いているダイノの変更をしたい場合(この例だと動いているアプリが0となる)
cmd.exe
> heroku ps:scale web=0
-
試しに、前述の ' heroku open ' を実行すると
Application Error
画面が表示される。 -
これで元に戻る
cmd.exe
> heroku ps:scale web=1
Declare app dependencies
- pom.xmlやsystem.properitesを変更した際に、mvn clean install を実行すれば更新されます。
- 手順書どおりに行っているとローカル環境の設定はされていないで、一度は実行しておく。
cmd.exe
> mvn clean install
Run the app locally
- ローカルでアプリを実行する。
- mvn clean install は実行済みであること
cmd.exe
> heroku local web
[OKAY] Loaded ENV .env File as KEY=VALUE Format
・・・
- Ctrl + C で止められる。
- http://localhost:5000/ にアクセスして画面が表示されればOK
Push local changes
ローカルの変更
- ローカルの変更をHerokuに反映する。
- 詳細は本家参照
- 変更後にコマンドを実行、ローカル起動を行う。
cmd.exe
> mvn clean install
・・・
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.366 s
[INFO] Finished at: 2016-10-22T18:13:25+09:00
[INFO] Final Memory: 24M/204M
[INFO] ------------------------------------------------------------------------
cmd.exe
> heroku local web
[OKAY] Loaded ENV .env File as KEY=VALUE Format
・・・
-
http://localhost:5000/hello にアクセスし、下記のように表示されれば更新は成功
- E=mc^2: 12 GeV = (2.139194076302506E-26 ± 1.4E-42) kg
Herokuへの反映
- 下記のコマンドを実行してHerokuへ反映する
cmd.exe
> git add .
・・・
> git commit -m "Demo"
・・・
> git push heroku master
・・・
> heroku open hello
- ローカルで確認と同様に下記のように表示されればOK
- E=mc^2: 12 GeV = (2.139194076302506E-26 ± 1.4E-42) kg
Provision add-ons
- Freeアカウントのため、addonは使えないよとのこと、割愛
Creating papertrail on agile-ravine-99999... !
! Please verify your account to install this add-on plan (please enter a credit card) For more information, see
! https://devcenter.heroku.com/categories/billing Verify now at https://heroku.com/verify
Start a one-off dyno
- one-off dynoを使って、REPLプロセスを起動する。
cmd.exe
> heroku run bash
Running bash on agile-ravine-99999... up, run.4576 (Free)
~ $ java --version
・・・・
- java -versionで動作検証しているが、dir / pwdなどで実験してもよい
- 終了時は exit を入力して、確実にdynoから抜けることに注意。
Define config vars
- config vars という設定にて、暗号化キーや外部ファイルアドレスを管理できる。
- config varsはアプリからは環境変数として取得できる。
- ソースの修正方法は本家 参照。
- mvn clean install , heroku local web と実行する。
-
http://localhost:5000/hello にアクセスする。下記のように表示が変更される
- E=mc^2: 20 GeV = (3.5653234605041761E-26 ± 2.9E-42) kg
- localについては、.envの内容が参照する。
- remoteにも反映する。
cmd.exe
> git add .
> git commit -m "Demo"
> git push heroku master
> heroku open hello
500 Internal Error でエラーとなる。
- cofing varsに設定する。
- コマンドを実行するとconfig varsに登録され、そのままアプリのリスタートが行われる。
- 再度、heroku open hello と実行すると、ローカルと同等の結果が得られる。
cmd.exe
> heroku config:set ENERGY="20 GeV"
Setting ENERGY and restarting agile-ravine-99999... done, v7
ENERGY: 20 GeV
- herokuに登録してある情報を確認する場合は、下記のコマンドを実行する。
cmd.exe
> heroku config
Use a database
- addonの状況を確認
- postgreを利用していることが確認できる。
cmd.exe
> heroku addons
Add-on Plan Price State
─────────────────────────────────────────────── ───────── ───── ───────
heroku-postgresql (postgresql-elliptical-xxxxx) hobby-dev free created
└─ as DATABASE
> heroku pg
===
Plan: Hobby-dev
Status: Available
Connections: 0/20
PG Version: 9.5.4
Created: 2016-10-22 07:06 UTC
Data Size: 7.4 MB
Tables: 0
Rows: 0/10000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
Add-on: postgresql-elliptical-xxxxx
- 現状のアプリでDBは利用する状態になっているので、下記のコマンドで画面を開く
cmd.exe
> heroku open db
Read from DB: 2016-10-22 14:57:43.560289 と表示されればOK
- ここまで!