Heroku で Java ハンズオン

最近暑いですね。社会復帰したmp_hskです。

今日はこれから仕事で使うことになった Heroku について

公式サイトのハンズオンを行ったので雑感などを少々。

What Heroku??

Herokuとは、Sales Force社が提供している Webアプリケーションを開発・運用するために必要な機能を持つPaaS(Platform as a Service)。ざっくり言うと、

  • 複数の言語をサポートしているコンテナ型の軽量webアプリケーション実行基
  • ソース管理にGitを使っており、デフォルトでgit pushをフックしてデプロイをしてくれる
  • 他にもDevOpsをサポートするためのツールが充実
  • コンテナのスケールアウトも簡単にできる
  • Addonによる拡張機能が充実
  • Sales Forceとの連携が簡単にできる

始めるには?

基本的にはHerokuのアカウントを入手した後で、Getting Startedから公式サイトの手順に従えば、ちょっとしたwebアプリケーションのデプロイ・実行までできる。

Heroku | Sign up

上記のリンクをクリックして、有効なメールアドレスとその他情報を適当に入れ、

送られてきたメールのリンクをクリックすればアカウント作成はOK。

アカウントは無料で利用でき、有料Addonを入れるか、コンテナを複数起動しなければ無料で利用可能。

最初にログインしたらGUIアプリケーションの作成ができ、作成したアプリのアクセスすると対応する言語のハンズオンが出てきてくれる。下記はJavaのハンズオンページ

f:id:mp_hsk:20170704213857p:plain

ハンズオンのざっくり解説

基本的にはページに書いてある通りやればできるが英語なのでざっくり解説しておく

  1. Heroku Toolbelt(コマンドラインツール)をインストールし、コマンドラインからHerokuにログインする
  2. JDK 8, Maven 3,(書いてないけどGitクライアント)をローカルにインストールしておく
  3. Herokuで作成したアプリケーションのソースリポジトリをgit cloneする
  4. heroku createコマンドでアプリを作り、pushするとアプリがデプロイされる。また、heroku ps:scale=1 でコンテナ起動。(heroku openはアプリのURLをブラウザで開くコマンド)
  5. ログをtailしてみる
  6. Procファイルの内容(herokuの実行コマンド)を確認する(だけで修正はなし)
  7. heroku ps:scale=0でコンテナを止めてみる
  8. pom.xmlの内容を修正し、mavenビルドする
  9. アプリをローカルコンテナで動かしてみる
  10. Main.javaを修正してリモートにpushする
  11. papertailアドオンを入れる。(これはクレカをアカウントに登録してないとできなかったので飛ばしたが、情報さえ登録しておけばアドオン自体は無料っぽい)
  12. heroku run bush でリモートのコンテナで作業をしてみる
  13. 環境変数を設定し、アプリから参照してみる
  14. postgresqlのアドオンを入れてDBアクセスしてみる

という感じ。コマンドそのまま打てば大体できるので特に困ることはない

雑感

動きも軽いし、デプロイもgit pushだけでできるので手軽で便利!

また、コマンドラインツールを使えば結構色々できる。

(なお、同じことがweb画面のダッシュボードからGUIでもできるっぽい)

AWSのEC2よりスタートの敷居が低いので初心者にもお勧めできそう。

なお、もう少し詳しいハンズオンがしたい場合は、以下のサイトの動画を視聴すればいろいろ勉強になる。

http://dotinstall.com/lessons/basic_heroku

 

次回はforce.comとの連携もやってみよう。