【初心者向け】heroku(ヘロク)とは?メリット、できること、特徴を3分解説

2020年は人工知能(AI)やRPAなどの実用化がガンガン進む年と言われています。企業が働き方改革をがんばって進めていくから!というのもありますが、一方で、テクノロジーが進んでいっている、そして、環境系コストが落ちてきているから、というのもあると思います。要は、開発環境が、時短で、低コストで用意しやすくなってきているのです。

そんな開発環境の低コスト化をけん引しているのが、heroku(ヘロク)なんです。

でも、heroku(ヘロク)って、初めて聞いた、ググってみたけど、開発者(エンジニア)ではないから、あんまりよくわからない。。。そんな方に向けて、heroku(ヘロク)について、ざっくり解説したいと思います。

heroku(ヘロク)とは?

heroku(ヘロク) 日本公式サイト
https://jp.heroku.com/

heroku(ヘロク)は、アプリケーションの開発から実行、運用までのすべてが、このheroku(ヘロク)の中でできるクラウドサービスなんです。

すごく簡単に言うと、便利なレンタルサーバです。

heroku(ヘロク)が、どう便利なのかというと、

  • webサーバ、SSLなどのインフラが用意されている
  • DBのセットアップが完了している
  • いろいろなAPI連携ができている
  • デプロイもできる
  • 独自ドメインをあててサービス公開もできる
  • セキュリティ対策もされている

ということで、インフラのセットアップの手間暇が不要になるサービスなんです。

それもすべて、クラウドで。

ちなみにこういうサービスのことをPaaSといいます。PaaS(パース)については、あとで、説明もしますね。

heroku(ヘロク)は、もともとは2007年にアメリカで創業した企業であり、サービス名でした。たった3年で、このheroku(ヘロク)は、バイアウトに成功しています。
なんと、2010年にセールスフォース・ドットコムが買収したサービスなんです。

heroku(ヘロク)のアメリカの公式サイト(英語版)
https://devcenter.heroku.com/

heroku(ヘロク)とは、アプリケーションを実行するためのプラットフォームなので、さまざまな開発言語が使えるようになっています。

具体的には、

  1. Ruby
  2. PHP
  3. JAVA
  4. Python(パイソン)
  5. Node
  6. Go
  7. Scala
  8. Clojure

といった開発言語が使えます。

ちょっとわかる人なら、web系のメイン開発言語に、さらに、アプリ系の開発言語まで、あらゆる言語に対応しているな!というイメージを持つことでしょう。

Heroku では、Ruby、Java、PHP、Python、Node、Go、Scala、Clojure など、さまざまなプログラミング言語で書かれたアプリを簡単に実行できます。

引用 heroku公式サイト
https://jp.heroku.com/languages

プログラミングの学習やWEBシステムの開発、ネイティブアプリの制作をしている方なら、このHerokuのありがたみは、痛感できるはずです。

なぜなら、環境を作るという地味な作業が軽減されるからです。heroku(ヘロク)は、WEBアプリやネイティブアプリの開発時間を作ってくれるサービスなんですよね。

これは、本当に便利だし、画期的なサービスですよね。

heroku(ヘロク)で最初にできること

最初の登録(Getting Started)が、heroku(ヘロク)で完了すると、以下のことがheroku(ヘロク)でできるようになります。

  • 無料でWebアプリの公開ができる(制限あり※)
  • 無料でDB(ポストグレス)が使えるようになる

※webアプリの無料公開時間は、550時間/月となっています。

さて、根本となる、PaaSについて解説していきます!!

PaaS(Platform as a Service)とは?

PaaS(Platform as a Service)は、サービスを提供できるプラットフォームの総称です。SaaSなんかが、ビジネス用語で、身近ですが、似たようなものですね。ある意味。

PaaSは、プラットフォーム構築(アプリケーション公開)を代行してくれるので、純粋にアプリケーションの開発までの時間や工数が短くなります。

もっというと、PaaSを利用すると、インフラや開発環境の運用や保守にかかるコストの大幅削減にもつながってきます。

2020年の開発トレンドになってくるのが、サーバレスです。

クラウドで、開発する環境を活用して、サーバをもたずに、webサービスを展開していく、そんなイメージですね。

これは、エンジニアだけが知っているでは、もったいないですよね。

事業責任者などが把握することで、事業のコスト削減にもつながっていくのですから。

PaaSとしてのheroku(ヘロク)のメリット

heroku(ヘロク)のメリットは、時短です。

WEBアプリケーションを簡単に公開可能なんです。

独自のドメインを割り当てれば、herokuでサービスを公開、運用も可能です。

heroku(ヘロク)の利用メリットのもう1つはメール配信などの機能がアドオン(拡張機能)として提供されていることです。

これによって、システムを一から作らないといけない

webアプリの開発を再検討しないといけない

アプリケーション連携のAPIを別途用意していかないといけない

こんなことがなくなるんですよね。

さらに言うと、サーバ、インフラ環境のスケールアウトが簡単にできることも魅力のひとつです。AWS(アマゾンウェブサービス)などのクラウドサービスでも、スケールアウトは実行しやすいですが、heroku(ヘロク)でも、スケールアウトが可能です。

さらにいえば、heroku(ヘロク)なら、コマンドラインやターミナルからも、スケールアウトの実行が可能なのもうれしいサービスですね。

もともと、そこまでのアクセスは検討などしておらず、webアプリケーション、ホームページが重くなるなどを想定していなかった。

こういうときに、急遽で、サーバのスペックや台数を増やせれば、機会損失を防げます。また、そして、ダウングレードも簡単なので、そのときだけのスケールアウトも可能です。急遽、ヤフーニュースで取り上げられて・・・とか、人気の漫才師などが、急に、その漫才のネタで商品について、言及をしてくれたとか。webへのアクセスが増加する可能性は常にあります。

そして、スケールアウトが簡単ということは、webアプリの設計時に、そこを考える必要性がなくなります。考慮、検討がなくなる分、時短で、webサービスやネイティブアプリの開発を行えるわけです。

heroku(ヘロク)は、アプリ運用、保守も便利!コスト削減につながる!?

heroku(ヘロク)の提供機能には、以下の機能もあります。
これによって、heroku(ヘロク)があれば、webアプリケーションの運用が行われ始めても、レポート情報などがあるから、対応施策なども検討できます。

  • ログ閲覧機能
  • パフォーマンスのモニタリング機能

また、heroku(ヘロク)から、DB(データベース)のバックアップも可能なので、自動化するようにすれば、バックアップも簡単。

そうなんです。heroku(ヘロク)でwebアプリ提供をすることで、運用コストの削減につながるわけなんです。サーバレスは、コスト削減にもつながるわけですね。

heroku(ヘロク)の類似サービスを比較して、いくつかご紹介

heroku(ヘロク)が、買収をされたり、これだけ、便利なサービスなので、当然のように類似サービスが登場しています。ここでは、heroku(ヘロク)の類似サービスをいくつかご紹介していきます。

GMOペパボが運営しているsqale

Sqale 公式サイト
http://sqale.jp/

OpenShift

OpenShift公式サイト
https://www.redhat.com/ja/technologies/cloud-computing/openshift

海外のものですが、こちらも大きいサービスになってきています。

ただ、HEROKU(ヘロク)と比較すると、
HEROKU(ヘロク)は、日本国内でも、汎用的に普及してきているので、
インターネット上での情報、事例、実績が多いので、
まだまだ、HEROKU(ヘロク)を活用した方が利便性は高そうです。

ちなみに、類似サービスではないですが、

dokku
http://dokku.viewdocs.io/dokku/

というサービスもあります。

これは、さくらインターネットやkonohaなどのVPSサーバにインストールすることで、擬似的に、Heroku(ヘロク)環境が作れるんだとか。。

HEROKUの感想、ネット上の声

では、実際に、いくつか、インターネットにあがっているHEROKU(ヘロク)を使用した感想、ネット上の声を紹介していきますね。

設定からデプロイまでが VPS や AWS と比べると圧倒的に楽

引用:Findyブログ
https://findy-code.io/engineer-lab/b2b-startup-heroku

ちょっとした検証用のWebアプリケーションであれば、Herokuで十分な事もあるかもしれません。
ただ、DBは無料で使用できるレコード件数に上限があったり、重めのバッチ処理を走らせると課金されてたり、意外と制約が多いな、、、という印象です。というより、少し課金体系がわかりにくいです。

引用:不格好エンジニア (引っ越しました)
http://tjnet555.hatenablog.com/entry/2014/12/08/002948

Herokuからの移行を決めたのには色々理由があるのですが、Herokuがだめだからというわけではなく、作ってるサービスとの相性が大きいです。

トーナメントだとデータ構造がほぼjsonで、フロントでうにょうにょ動かすのがメインになることを考えたときに、Heroku/Railsである必然性がなくてですね。。(気付くのが遅い)

個人的にいまでもHerokuは大好きです。

引用:NOT SO BADなブログ
https://blog.notsobad.jp/entry/2018/02/04/170844

まとめ:heroku(ヘロク)は2020年以降も普及が増えていく!?

heroku(ヘロク)への理解は、進みましたでしょうか?

ざっくり、パワーアップ版のレンタルサーバ、というかんじのheroku(ヘロク)。

heroku(ヘロク)を使えば、サービスの公開も、さくっとできそう!とかんじるエンジニアの方もいるでしょうね。

また、PM(プロマネ)など、コストを管理されるマネージャーの方も、heroku(ヘロク)の魅力である、開発コスト、運用コスト削減につながる、というのを理解していただけたのではないでしょうか。

VR体験で、購入意欲が高まる人は4割!