3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Heroku Javaで始め方(Getting Started on Heroku with Java)

Last updated at Posted at 2016-10-22

Heroku を初めて利用する際のメモ

環境

  • 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

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

ローカルの変更

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

  • ここまで!
3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?