昨今のアプリケーション開発の流行として、クラウドを利用したウェブサービスが挙げられます。

特に有名なのが、Amazonが提供している「Amazon Web Service(AWS)」でしょう。

AWSといえば以前障害が起こり、多くのアプリケーションの利用が一時的にできなくなったというニュースがありました。

AWSに何かが起きると大きなニュースになるほどに、AWSは多くの企業や開発者に利用されているということです。

今回は、AWSと同じクラウド上で開発環境を提供するアプリケーションサービスである「Heroku(ヘロク)」について紹介いたします。

「Heroku」について

startup, meeting, brainstorming


「Heroku」とは、アプリケーションの開発から実行、運用までをクラウド上で管理できるPaaSPlatform as a Service:サービスとしてのプラットフォーム)です。

PaaSとは、インターネット上でハードウェアやOSなどを提供するサービスのことを指します。

先述したAWSやGoogle App Engine、Microsoft AzureなどもPaaSに当てはまるサービスです。

Microsoft Azureとは?Microsoft Azureの基本を徹底解説!料金制度と無料版サービス内容もご紹介


昨今の開発現場でも利用されているため、使用経験のある人にとっては想像に難くないでしょう。

PaaSでは低コストかつ迅速な開発が可能となるメリットがあります。


Herokuの公式サポート言語

source, code, software


Herokuでは、以下の8種類のプログラミング言語を公式サポート言語としています。

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

人気のJavaからGoogleがリリースしたGoなど、少しマイナーな言語まで対応していることが分かります。

これら以外にも、Linuxで動く言語であれば利用できるような拡張性も持ち合わせています。

幅広い言語に対応できるため、言語に囚われずに開発を進めることができるということです。


Herokuの特徴

簡単かつ高機能

student, typing, keyboard


Herokuは簡単かつ高機能なサービスを提供しています。

詳しいサービスについては後述しますが、開発者にとってシンプルで直感的に操作できるプラットフォームというのがHerokuの特徴です。

スマートコンテナ「dyno」がアプリの調整や管理をしてくれるフルマネージドプラットフォームであり、開発者自身で面倒な設定や管理をせずとも開発ができます。

それにより無駄な時間がかからないため、開発期間の短縮や無駄を省いたスタイリッシュな開発が可能です。


無料で運用できる

Herokuは充実した機能を持ち合わせておきながら、基本的な動作は無料で行うことができます。

さらにアドオンも無料であるため、開発コスト削減にもつながるのです。

有料プランではさらに充実した機能が使用可能となりますが、個人での開発や小規模案件では無料プランでも問題なく開発ができるでしょう。


Herokuを使用するメリット

プラットフォームが優秀

children, win, success


直感的に見やすく操作しやすいUIとなっており、アプリケーションの開発から運用までをストレスなくアシストできます。


構築がとても簡単

ウェブ上で全てが完結するため、インターネットさえあればすぐに使うことが可能です。

そのため面倒な環境構築が必要なく、瞬時に開発に取り組むことができます。

さらには、ワンクリックでコード生成やデプロイが可能なボタン機能が実装済み

充実したアドオンやビルドパックのおかげでカスタマイズ性が高いのも特徴の一つです。

そのため、アプリケーションのアップデートもしやすく、保守性も高くなっています。


Herokuでできること

Herokuプラットフォーム

ux, prototyping, design


先述のように開発のメインとなるプラットフォームが、使いやすく高機能な上に、無料で使うことが可能です。

開発者のことを考えたUI機能を実装しています。

機能の中心となるダッシュボード上で、全てのアプリケーションや組織の管理をすることができます。


Heroku Data Service

HerokuのベータベースはPostgreSQLを使用しており、高機能かつ強力なデータリソースを提供しているサービスです。

Herokuの開発者はPosgreSQLに精通しており、業界でもトップクラスの実力を誇っています。

そのため、豊富な知識と経験により、安心・安全に利用することができます。

またデータの分断もなく、リアルタイムでのログの集積も可能となっており、データベースにおいて不自由なく使用可能です。

<関連記事>
PostgreSQLの使い方や特徴を徹底解説!基本的なコマンドと操作方法・インストールの手順は?MySQLとの違いも紹介

Heroku Enterprise

Heroku Enterpriseでは、個人だけではく大企業でも利用できるようなアプリケーションが利用できます。

例えば、ネットワークから切り離された専用のランタイム環境により、プライバシーや性能、パフォーマンスを高めることなどが可能になるのです。

また、チーム開発がしやすい共通のワークスペースや一元化されたダッシュボードが利用できます。

さらにはSalesforce Success Planにより、ソリューションの設計や問題解決・アプリケーションのスムーズな稼働を補佐。

規模が大きくなるにつれて生じる問題や、チームのコンディションなどを把握しやすいです。

結果的に、安定して高水準な環境で開発ができます。


Herokuに会員登録をする

registration, login, keyboard


公式サイトに新規登録のボタンがあるため、そこをクリックしましょう。

Heroku公式サイト

すると、名前やメールアドレス、会社名と役職、国や使用言語を入力する画面に遷移します。

必要事項を記入し、アカウントを作成しましょう。

次にメールが届いたら、本文内のリンクをクリックすれば登録完了です。

また、Gravatarに登録されているメールアドレスを使用すると、アイコンや名前がGravatarのものが表示されます。

WordPressを使用したことがある人なら、Gravatarでプロフィールを作成している筈なので同じ要領で登録可能です。

Herokuでのデプロイ手順

インストーラを使用する

mobile phone, python, programming language


ダッシュボードの下部にある「Looking for help getting started with your language?」をチェックしてください。

ここからJavaやPythonなどの使用したい言語を選択します。

次に「Set up」をクリック。

WindowsやMacなど自身が使用しているプラットフォームに合わせてインストーラをダウンロードします。

インストーラを起動して諸々の設定をすると、使用が可能になります。


コンソールでのデプロイ方法

business, technology, notebook


コンソールを起動し「$Heroku login」と入力。

メールアドレスとパスワードの入力を求められるので、Herokuに登録したものを入力してください。

「$Heroku create アプリ名」と入力するとアプリが作成できます。

また、ここでアプリ名を入力しないとランダムな文字列のアプリ名となるようです。

管理のしやすさという点でも、アプリ名を入力しておくといいでしょう。

「$Heroku buildpacks.set ビルドパック名」で、使用したいビルドパックを指定可能です。

「git push heroku master」と入力することでデプロイできます。


無料枠の利用法

基本的にメールアドレスとパスワードを入力して会員登録をすることで、ほぼ全ての機能を使用可能です。

登録の際にクレジットカードの情報を入力する必要がありますが、無料枠でも十分開発に使用できるでしょう。

クレジットカード情報を入力し、Herokuアカウントを認証させると、無料でdynoが使用できる時間は1000時間です。

認証を行なっていない場合は500時間となります。

1000時間も使うことができれば、個人での開発には十分ではないでしょうか。

また、無料枠では5人までが使用可能です。

目的によりますが、個人でのアプリケーション開発や小規模な開発をするのであれば、無料枠で問題ないでしょう。


無料枠と有料枠の違い

money, coin, investment


有料枠では、ダッシュボード上でメトリクスの利用ができます。

これによりアプリのスループットや応答時間、エラーとメモリー、CPU負荷などのデータを自動で分析し表示可能。

無料でも十分ですが、有料枠ではさらなる高機能が解放されます。

解放される機能ごとに、4段階の価格設定があります。

  • Free(無料)
  • Hobby(月額7ドル)
  • Standard(月額25~500ドル)
  • Performance(月額25~500ドル)

スリープ状態の有無やSSL証明書、利用時間の制限解除など、価格が上がるほどより多くの機能を制限なく使用可能に。

基本的にはFreeプランでも開発はできます。

しかし企業での開発や大規模案件になってくると、StandardやPerformanceプランも考える必要性が生じてくるでしょう。

予算面を考えるのであれば、案件の規模を考慮し適切なプランを選んでください。

ただしある程度価格が固定されているため、予算からの産出も容易です。


AWSとの違い

little girl, computer, portable


冒頭でも触れましたが、PaaSとして有名なサービスとしてはAWSが挙げられます。

そこでAWSとHerokuの違いについて見ていきましょう。


使用言語について

AWSでは以下の言語を使用することができます。

  • Java
  • C#
  • PHP
  • Python
  • Ruby
  • Go
  • C ++

JavaとPHP、PythonやRuby、Goは共通して使用できます。

AWSではC言語を取り扱っていますが、Node.jsとScala、Clojureは対応していないようです。

AWSの方は主要な言語を中心に取り扱っているように感じられます。


値段設定

wallet, cash, credit card


Herokuは4段階の値段設定でしたが、AWSは3種類の無料枠があります。

  • 無期限無料
  • 12ヶ月無料
  • トライアル

そして、使用方法に応じた支払方法も用意されています。

  • 従量制料金
  • リザーブドキャパシティ料金
  • ボリュームディスカウント

AWSは使用方法に応じて料金体系が変わる方式です。

節約や管理がしやすそうですが、開発初期段階で予算を確定することは難しいです。

かえってコストがかかる恐れがあります。

また無料枠も3種類ありますが、どれがどの機能を使えるのかというのが見えにくいです。

AWSの公式サイトも機能が充実しているのがわかった一方で、どれを使ったら良いかというのがわかりにくい面があります。

それに対しHerokuはわかりやすい値段設定と機能で、使用した際のビジョンが見えやすくなっているといえるでしょう。

価格と機能の見やすさでいうならば、Herokuの方がわかりやすいです。


機能について

typing, computer, desk


AWSはブロックチェーンやビジネスアプリケーション、ARなど実に多くの製品が存在します。

多くの企業が採用するのも頷けます。

しかし選択肢が多いため、開発に見合ったサービスを発見できるか、サービスを正しく利用できるか不安もあるのです。

有識者からすれば適切なサービスを利用することは可能でしょう。

しかし、個人や小グループで開発する際は判断が難しいかもしれません。

また、それについてのセッティングや構築・コントロールも複雑になってきます。

一方でHerokuはアドオンやビルドパックがまとまっており、開発者が使いやすい設計です。

機能の細かさでいえばAWSに劣るかもしれません。

でも、直感的で分かりやすい設計を重視しているHerokuの方が開発しやすい場合があるでしょう。

おそらく、開発のビジョンが立っているのであればAWSは利用しやすいです。

拡張性や保守性の高さを考えるのであればHerokuの方が良いのかもしれません。

いずれにせよ、両者とも高品質なアプリケーションを開発する場を提供してくれています。

あとは予算や開発状況、将来性などを考え、より適切なサービスを選んでみてください。


AWSについては以下の記事でも詳しくご紹介しています。宜しければ、ぜひ併せてご参照ください。

AWSの使い方をわかりやすく解説!料金やサービス内容・できないことは?フリーランスにおすすめのAWS資格も難易度別に紹介

まとめ

ux, design, webdesign


ここまで書いてきたことをまとめると、以下のようになります。

  • HerokuはPaaSと呼ばれるサービスの一つ
  • ウェブ上でアプリケーションの管理から運用までを一貫して行うことができる
  • 無料でも多くの機能が利用できる
  • わかりやすい4段階の価格設定で、予算との都合がつけやすい
  • ダッシュボードとわかりやすいUIのおかげで、スタイリッシュかつスマートに開発ができる
  • 高機能なサービスが利用可能で、高い水準でアプリ開発を行うことができる

PaaSは今後システム開発界隈において大きな位置を占めることになることでしょう。

実際AWSはすでに広く世界中に普及しています。

スマートフォンのゲームや企業のアプリケーションなど、身近なところからビジネスの裏側まで浸透してきています。

これは、ウェブ上で完結できるという手軽さと、カスタマイズ性の高さという大きなアドバンテージを持っているからです。

その上でHerokuは使いやすさや開発のしやすさに重点をおいています。

開発者目線に立って提供されているのが一番の強みといえます。

個人での開発ではもちろん企業の大規模案件にも対応でき、使いやすいHerokuをぜひ一度使ってみてください。

まずは無料で使用できます。

プログラミングとは何かという初学者も、企業で開発を進めているエンジニアも試してみてください。


SHIFTフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。