Herokuの無料プランの提供は、2022年11月28日で終了しました。
★悩み★
・Herokuとは何?何ができるの?使い方は?
・Herokuの特徴やどういった場面で使われるのかを知りたい。
・今からHerokuを使いたいから、「すぐ実践できる使い方」を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
① Herokuとは?
② Herokuの特徴(メリットとデメリット)
➂ Herokuのユースケース3選
④ Herokuの使い方(アカウント登録からデプロイまで)
これからご紹介する「【要点】Herokuとはを解消!初心者向けに特徴から使い方まで解説」を熟読したことで、1時間以内で「Herokuとは?の理解から簡単なアプリケーションの開発まで」をできるようになりました。
記事の前半では「Herokuで何ができるか」や「特徴(メリット/デメリット)」を解説します。
記事の後半では「どういった場面で利用するのか?」から「アカウント登録/アプリケーションの開発方法」までを紹介します。
この記事を読み終えることで、「Herokuを使う上で最低限必要な知識やユースケースを把握した」状態になります。
Herokuとは?
「Herokuとは?」に関してご紹介します。
★ご紹介事項★
・Herokuとは何か?できることは?
・提供製品および機能
・料金プラン
・AWSとの違い
以降で、上記「ご紹介事項」の各項目に関してご説明します。
Herokuとは何か?できることは?
「Herokuとは何か?できることは?」に関して解説します。
公式サイトや実務経験から「どういったツールなのか?」や「できることは?」に関して簡単に紐解いていきますね。
公式サイトでは、以下のように「Herokuとは?」を説明しています。
少し難しい文言で「Herokuとは何か?」を説明されています。
以下に簡単な文言に置き換えたものを記載しますね。
★Herokuとは何か?★
Heroku(読み方:ヘロク)は、「データとアプリのプラットフォーム」を提供するクラウドサービスです。
本サービスを使用することで、「Pythonを動かす環境」や「データベース」などを難しい操作をすることなく、ボタンクリックだけで、準備できます。
Herokuを使ってできることを簡単に言うと「アプリ動作環境やネットワーク設定などアプリケーション公開に必要な関連機器や資材のセットアップを代行してくれる」です(下図参照)。
ちなみに、図内に記載されているPaaSの定義は以下となります。
★PaaS(Platform as a Service)とは?★
PaaSとは、ソフトウェアの実行環境をインターネット上のサービスとして遠隔から利用できるようにしたもの。
また、そのようなサービスや事業モデル。
参照:PaaSとは?(IT用語辞典)
「アプリケーションをいち早く公開したい!」という方は、PaaSである「Heroku」を利用することで、開発したアプリケーションを短時間で公開できます。
提供製品および機能
「提供製品および機能」に関して解説します。
「どのような機能を提供しているか?」「どういった製品展開をしているか?」に関して簡単に説明しますね。
Herokuは、以下の8つの製品群で構成されるPaaSサービスです。
>> 製品群の一覧(公式サイト)
以降で、各製品の機能に関してご紹介します。
Heroku プラットフォーム
「プラットフォーム」を使うことで、「プログラム実行環境」「実行したプログラムをすぐに公開できる環境」をわずか数クリックの操作で実現できます(下図参照)。
ちなみに、「プラットフォーム」で実行できるプログラム(対応言語)は、以下となります。
★「プラットフォーム」で実行できるプログラム一覧(対応言語)★
Node/Ruby/Java/PHP
Python/Go/Scala/Clojure
参照:実行可能なプログラム(公式サイト)
ちなみに、「プラットフォーム」を今すぐ使いたい方には、以下の記事がオススメです。
>>【使い方】HerokuにPython(FastAPI)アプリをデプロイする手順
Heroku Postgres
「Postgres」を使うことで、Heroku上でデータ管理ができます。
「Postgres」は、OSS(オープンソース)のPostgreSQL採用して実現しています。
>> 「Postgres」の詳細(公式サイト)
「Postgres」を使うことで、「プラットフォーム」で実行されたプログラムからデータベースを簡単に扱うことができます(下図参照)。
ちなみに、「Postgres」を今すぐ使いたい方には、以下の記事がオススメです。
>>【手順】PythonでHeroku Postgresのデータ操作(登録から参照)
Heroku Redis
「Redis」を使うことで、Heroku上でインメモリデータベースを利用できます。
「Redis」は、OSS(オープンソース)のRedisを採用して実現しています。
>> 「Redis」の詳細(公式サイト)
より早くデータを参照したい場合、「Redis」を使います。
「Redis」は、メモリ内にデータを保存する仕組みなため、「Postgres」より早くデータを参照できます(下図参照)。
ちなみに、以下の観点で「Postgres」と使い分けることをオススメします。
★PostgresとRedisの使い分け基準★
・Postgres
データを永続的に保存したい場合に使う
・Redis
データ参照を高速化したい場合に使う。
ただし、揮発性メモリを使うため、データを永続的に保存できない。
Apache Kafka on Heroku
「Apache Kafka」を使うことで、データ流量を調整できます。
データ流量を調整することで、「プラットフォーム機能で実行したプログラムのハングアップ」などを抑止できます。
本機能は、OSS(オープンソース)のApache Kafkaを採用して実現しています。
>> 「Apache Kafka」の詳細(公式サイト)
ちなみに、Apache Kafkaの特徴を知りたい方には、以下の記事がオススメです。
>> AWSのSQSとは?SQSの特徴や用途(使い方)のまとめ
Heroku Connect
「Connect」を使うことで、SalesforceのCRMツールで蓄積した顧客データをHeroku上で使うことができます。
>> 「Connect」の詳細(公式サイト)
Heroku Enterprise
「Enterprise」は、大規模なIT企業向けの製品です。
「セキュリティ」「サポート」「チームによるアプリ開発を促進するための機能」「監査ログの強化」といった企業向け機能が強化され機能を提供しています。
>> 「Enterprise」の詳細(公式サイト)
Heroku Elements
「Elements」には、アプリケーションの「開発」「運用」に役立つツールが揃っています。
>> 「Elements」の詳細(公式サイト)
例えば、「あるコマンドを定期実行する」ことができる「アドオン」といったツールがあります。
>> 【図解】HerokuのSchedulerを使って無料で定期実行する手順
Heroku Teams
「Teams」には、「チームアカウントの管理」「アプリレベルでの細かい権限設定」「請求書を1枚に統合可能」があります。
>> 「Teams」の詳細(公式サイト)
「アプリケーションを公開したいけど、公開するためのネットワーク準備などをしたくない」や「SalesforceのCRMデータを活用したい」といった方は、Herokuの各製品の利用を検討する価値ありです。
料金プラン
「料金プラン」に関して解説します。
8製品中5製品を無料で使うことができます。
各製品に関する料金プランは、以下で確認できます。
>> 価格(公式サイト)
以下のように全体として4つの料金プラン「無料・ホビー」「プロダクション」「アドバンスド」「エンタープライズ」があります。
以下の製品に関しては、無料枠が用意されています。
★無料枠が用意されている製品一覧★
・Heroku プラットフォーム
・Heroku Postgres
・Heroku Redis
・Heroku Elements
・Heroku Teams
小規模なアプリケーションの公開であれば、無料枠を活用することで、簡単にかつ無料でアプリケーションを公開できます。
「大規模なアプリケーションを公開したい」や「Kafka機能、Connect機能、Enterprise機能を使いたい」場合は、有料プランの検討をしましょう。
AWSとの違い
Herokuとよく比較される「AWS(Amazon Web Service)」との違いに関して説明します。
筆者は、AWSとHerokuを使ってアプリケーションを公開した経験があります。その経験から両者の違いに関して説明しますね。
「対応プログラミング言語」「料金体系」「機能面」「操作感」の4観点で違いを説明します。
★対応プログラミング言語での違い★
・Heroku
Node、Ruby、Java、PHP、Python、Go、Scala、Clojure
参照:対応言語一覧(公式サイト)
・AWS
Java、Go、PowerShell、Node.js、C#、Python、Ruby
参照:Lambda対応言語一覧(公式サイト)
・結論
どちらもメジャーな言語をサポートしているため優劣はない。
PowerShell、Node.js、C#を使いたい場合は、AWSを使うこと。
★料金体系での違い★
・Heroku
4段階の月額料金プラン(無料、$25~、$250~、カスタマイズ)
参照:価格一覧(公式サイト)
・AWS
3種類の無料枠(無期限無料、1年間無料、トライアル)
3種類の有料体系(従量制料金、年単位契約、ボリュームディスカウント)
参照:無料枠一覧(公式サイト)
有料体系の一覧(公式サイト)
・結論
永久的に無料でアプリを公開したい場合、Herokuを使うこと。
従量制料金をベースとしているAWSは、料金見積もりがしにくい。
★機能面での違い★
・Heroku
8製品を提供
参照:製品群一覧(公式サイト)
・AWS
227のサービス(製品)を提供
参照:提供サービス一覧(公式サイト)
・結論
提供している製品数が桁違いなためAWSが優っている。
AIやブロックチェーンなどの最先端を使いたい場合は、AWSを使うこと。
★操作感での違い★
HerokuとAWSともに、Webブラウザ操作で製品やサービスを導入できます。
導入時にかかるクリック数には、差はないです。
ただし、AWSの方がメニューなどがごみごみしています。
操作画面の見た目がきれいなのは、Herokuという印象を受けました。
4観点で両者を比較しましたが、「予算」「開発するアプリの将来性」「連携したいCRMは?」「必須サービスがあるか?」などを考え、適切にAWSとHerokuを使い分けましょう。
Herokuでは、アプリケーションの開発や公開に必要な機能が提供されています。
各機能ともに簡単に使うことができ、かつ、料金プランも分かりやすいです。
以降で、メリットとデメリットに関してご紹介しますね。
Herokuの特徴(メリットとデメリット)
今までご紹介した内容を踏まえて、Herokuのメリットとデメリットをご紹介しますね。
実際に使ってみて、「3つのメリット」「2つのデメリット」があると感じました。
早速ですが、メリットは、以下だと考えます。
★メリット★
① 豊富な拡張機能
200種類を超える拡張機能を提供しています。
拡張機能で、公開アプリの異常時にメール通知等を簡単に実現できます。
参照:拡張機能/アドオン一覧(公式サイト)
➁ 簡単にスケールアウトを実現
公開アプリの利用者が増えると、アプリ動作が遅くなることがあります。
遅延抑止の仕組みがHerokuにはあり、簡単に使えます。(下図参照)。
➂ 公開したサービスの運用保守を手助けする機能あり
公開アプリの状態確認ができる「ログ」やデータベースなどの
バックアップ機能など運用に必要な機能が一通り揃っています。
また、デメリットは、以下となります。
★デメリット★
① 使える機能が少ない
例えば、データベースは、PostgreSQLしか使えません。
OracleやMySQLなどの有名なデータベースを利用できません。
➁ 柔軟に機能を使えない
月額料金なため、「10日間だけ有料機能を使いたい」ができません。
メリットとデメリットをしっかり把握することで、コストパフォーマンスが最高なアプリケーションなどを開発し公開できます。
以降で、Herokuをよく利用するユースケースをご紹介しますね。
Herokuのユースケース3選
「Herokuのユースケース3選」に関してご紹介します。
★ご紹介事項★
・個人で開発したWEBアプリケーションの公開
・企業のキャンペーン向けサービスに利用
・Connectを使ったSalesforceデータとのCRM連携
以降で、上記「ご紹介事項」の各項目に関してご説明します。
個人で開発したWEBアプリケーションの公開
「個人で開発したWEBアプリケーションの公開」に関して解説します。
Herokuを使うと、簡単かつ無料で個人開発したWEBアプリケーションを公開できます。
例えば、筆者は、Pythonで作成した以下のWEBアプリケーションを全世界に公開しています。
ちなみに、上記WEBアプリケーションを公開する上で使っているHerokuの機能は、以下となります。
WEBアプリケーション公開に使った各機能の使い方を知りたい方には、以下の記事がオススメです。
>> 【使い方】HerokuにPython(FastAPI)アプリをデプロイする手順
>> 【手順】PythonでHeroku Postgresのデータ操作(登録から参照)
>> 【図解】HerokuのSchedulerを使って無料で定期実行する手順
企業のキャンペーン向けサービスに利用
「企業のキャンペーン向けサービスに利用」に関して説明します。
Herokuを使うことで短納期でアプリケーションを公開できます。
短納期でキャンペーンサイトを作る必要があるなどで使われているケースが多々あります。
以下の事例では、企業向けキャンペーンサービスを「短納期」かつ「低コスト」で開発するために、Herokuを使っていました。
>> 【O2O】Heroku(salesforce.com)を利用したO2Oキャンペーンサイト構築事例
上記の事例から、「短期間でWEBアプリケーションを開発する必要がある」という場合に、Herokuが大活躍しそうですね。
Connectを使ったSalesforceデータとのCRM連携
「Connectを使ったSalesforceデータとのCRM連携」に関して説明します。
Herokuは、Salesforce社に2010年に買収されました。
そのため、SalesforceのCRMツールと容易に連携できます。
Connectを使うことで、SalesforceのCRMで蓄積した顧客データを活用したWEBアプリケーションやデータ分析ができます。
SalesforceのCRMを使っていて、かつ、顧客データ利活用をしたい場合は、Herokuの利用を検討してみましょう。相性抜群です。
事例を見た限りでは、主にWEBアプリケーションに使われているイメージです。
以降で、Herokuを使ったWEBアプリケーションの開発方法を説明しますね。
Herokuの使い方(アカウント登録からデプロイまで)
「Herokuの使い方(アカウント登録からデプロイまで)」に関してご紹介します。
★使い方(アカウント作成からデプロイまで)★
手順1:アカウントを新規作成(登録)
手順2:HerokuにPython(FastAPI)アプリをデプロイ
以降で、上記の各手順に関してご説明します。
手順1:アカウントを新規作成(登録)
「手順1:アカウントを新規作成(登録)」に関して説明します。
Herokuを使うためには、アカウントを作成する必要があります。
約5分でアカウントを作成できます。
アカウントを新規作成する手順は、以下の記事をご覧ください。
>> 迷わない!6枚の図でHerokuアカウントの新規作成方法を解説
以上が、「手順1:アカウントを新規作成(登録)」となります。
手順2:HerokuにPython(FastAPI)アプリをデプロイ
「手順2:HerokuにPython(FastAPI)アプリをデプロイ」に関して説明します。
実際にHerokuを使って、Pythonアプリケーションを公開してみましょう。
最短10分でできます。
Herokuを使ったPythonアプリケーション公開手順は、以下の記事をご覧ください。
>> 【使い方】HerokuにPython(FastAPI)アプリをデプロイする手順
以上が、「手順2:HerokuにPython(FastAPI)アプリをデプロイ」となります。
実際に触ってみたことで、「Herokuの使い方って要点を抑えれば簡単では?」と思いませんでしたか?
是非、その感覚を忘れずに開発現場や個人開発で活用してみてください。
【まとめ】Herokuとはを解消!初心者向けに特徴から使い方まで解説
いかがでしたでしょうか?
上記で紹介した「Herokuとは?」「メリットとデメリット」を理解していただくと、今後Herokuの操作や使い方で悩むことは一切なくなり、Herokuを活用した適切なアプリケーション公開をスムーズに実現できます。
最後にもう一度内容を確認しましょう。
★Herokuとは?のおさらい★
・アプリケーション開発や公開に必要なものを提供してくれるPaaSである
・8製品を月額プランで利用でき、内6製品は無料枠が用意されている
・メリットは、「拡張機能」「容易なスケールアウトと運用保守」である
・デメリットは、「機能が少ない」「柔軟に機能を使えない」である
・使うためにはアカウント作成が必要
さらに体系的に学習したい方は、以下の記事をご覧ください。
>> 【入門】Herokuの基礎と使い方を体系的に学習する手順(初心者用)
コメント