herokuとは?
アプリ開発を行うにあたり、さまざまな環境が展開されている現代。そのうちの一つとして「heroku」がありますが、具体的にどのようなものなのかがイメージしにくいのではないでしょうか。
herokuは、アプリケーションを開発したり、運用したり、実行したりする際に必要な環境です。アプリケーションの動作に関わる環境はheroku以外にもありますが、独自にサポートしている言語があったり、低コストで開発ができたりするなど、さまざまな特徴があります。
herokuがサポートしている言語
heroku公式がサポートしている言語は、主に以下の通りです。
- PHP
- Go
- Clojure
- Node.js
- Ruby
- Javaf
- Python
- Scala
よく知られている言語はもちろんのこと、まだ誕生して間もない言語など、幅広く対応しています。サポートしている言語が豊富な点はherokuの大きな特徴といえます。また、言語が豊富なだけではなく、拡張性の高さも注目したいところ。Linuxで動作が可能な言語に限り、herokuの拡張が可能です。
使い勝手が良いため、開発作業をサクサク進めていきたい方におすすめできます。
herokuの料金プラン
herokuの料金プランは、大きく4つが展開されています。
- Free/無料
- Hobby/7ドル(月額)
- Standard/25~500ドル(月額)
- Performance/25~500ドル(月額)
herokuは無料プランでも十分に利用できますが、有料プランであれば、ダッシュボード上でシステムのヘルス情報やパフォーマンス情報を取得して自動分析を行い表示させるなど、メトリクス利用が可能です。
月額料金が高いプランになるごとに、利用できる機能が増えていきます。たとえば、SSL証明書や利用時間の制限なし、スリープ状態で放置できるなど、有料プランのみ開放されている機能もあります。
案件の規模や、開発内容などと照らし合わせながら、herokuの利用プランを検討してみてください。
herokuの製品群
herokuは2023年2月現在、8つの製品によって構成されています。どのような製品があるのか、それぞれの特徴やメリットなどについて見ていきましょう。
herokuプラットフォーム
herokuにおいて、サービスの中心核となるのが「herokuプラットフォーム」です。アプリケーションの実行はスマートコンテナ(dyno)によって行われます。herokuで採用されているdynoは、フルマネージド(完全保守運用代行)の実行環境が整っているのが特徴です。自由に種類や数を変更でき、状況に応じたスケーリングも可能。装置やソフトウェアなどのシステムの性能や処理能力を増強・縮減するシーンがあれば便利に使えるプラットフォームでしょう。
heroku Postgres
herokuで利用できるデータベースであるのが「heroku Postgres」です。
heroku Postgresは、PostgreSQLを使用しています。PostgreSQLは、オープンソースソフトウェアであるため優れた機能性が魅力であり、開発はもちろんのことデータの管理もherokuを使うエンジニアに任せることが可能です。
動作させているアプリケーションの負荷に変動があっても、ユーザーのリクエストに応える形(オンデマンド)でスケーリングができます。
仮に、データ収集のプロセスでトラフィックに変化があっても、データベースのスケールができます。
heroku Connect
「heroku Connect」は、Salesforceとherokuとの同期が可能な点が特徴です。Salesforceとherokuといえば、代表的な顧客管理システムであり、取得した顧客情報を適切に活用するためのアプリケーションを作り、運用するためにも重要といえます。
なお、データを同期する際、複雑なコードは一切不要です。操作もシンプルなので、誰でも直感的に操作ができます。
heroku Redis
herokuの拡張機能の一つが「heroku Redis」です。
heroku Redisは、数あるアプリのなかでも、とくに「データ駆動型」に特化した拡張機能であり、開発や運用で便利な機能が豊富に展開されています。
また、パフォーマンスを詳細に把握できるだけでなく、インスタンス管理も高機能CLIで行うことが可能です。
運用の際に重なりがちな工数を削減しやすくなるのが魅力です。
Apache Kafka on heroku
「Apache Kafka on heroku」は、メッセージングサービスのことであり、膨大なデータを処理するアプリを開発する際に便利です。イベントストリームを管理するために開発されたサービスで、開発者・ユーザーの通信をスムーズに行いやすくなります。
また、Apache Kafka on herokuの導入により、アプリケーションそのものを見直す機会にもなります。操作のこと、通信時間のこと、データ関連など、課題を感じていた部分を抽出し、改善するきっかけにもなるのではないでしょうか。
heroku Enterprise
さまざまな言語に対応している点が特徴の「heroku Enterprise」。いくつものプラットフォームを使わなくても、8種類の言語に対応でき、大規模なアプリ開発はもちろんのこと、マイナー言語を使ったアプリ開発の場面でも活用できます。
また、heroku Enterpriseは比較的規模の大きいIT企業向けの製品でもあるので、便利に活用できる機能も豊富です。セキュリティ関連はもちろんのこと、管理やコラボレーション、アクセス制御、など必要な機能が一通り揃っています。
heroku Elements
「heroku Elements」は、プラットフォームを拡張するためのツールや、パッケージ化されたコードなどを用意しています。アプリ開発や運用の現場では、ワークフローの効率化やデプロイがしやすいシステムの構築などが求められています。複数のソリューションを扱っているので、適切な場面で素早く開発作業に取り入れることが可能です。
heroku Teams
コラボレーションや管理に特化した製品が「heroku Teams」です。
アプリ開発において、チームメンバーの管理や、アプリの要件定義などは重要。そのプロセスの中で発生する「チームメンバーの編成や追加、管理」といった設定や、アプリ開発に関する権限付与などについては、細かく管理し、一元管理することが望ましいでしょう。heroku Teamsであれば、上記の機能を揃えているため、アプリ開発をよりスムーズかつ容易にしてくれます。
herokuの特徴
herokuがアプリ開発の現場において、便利な環境であるという点についてご紹介しました。
とはいえ、アプリ開発の環境はheroku以外にも多数存在します。それでもherokuがとくに人気の高い理由は何なのでしょうか。
ここからは、注目したいherokuの特徴をご紹介します。
特徴1:拡張機能が豊富にある
herokuの特徴として、まず挙げられるのが拡張機能の豊富さです。
アプリ開発を進めていくと、導入当初のままでは対応が難しくなったり、開発効率が悪くなったりして、途中で環境を追加しなければならなくなることが少なくありません。
herokuであれば、拡張機能が豊富なので求めている環境をすぐに導入することが可能です。「データの処理ができる環境が必要になった」「メールの配信をするための環境が必要になった」など、シーンに応じた拡張機能がたくさんあるので、アプリ開発の現場では重宝するでしょう。
特徴2:環境増強が簡単
herokuは、環境増強が簡単といった特徴があります。
環境増強とは、いわゆる「スケールアウト」のことであり、開発したアプリのユーザー数に応じて、簡単に最適な環境を整えることができます。
本来であれば、サーバーの台数を増やして環境を増強する必要がありますが、herokuであればダッシュボードの画面上の操作のみで完結するので便利です。そのうえ、操作もシンプルな操作なので、複雑な設定を施す必要もありません。
特徴3:アプリ運用のサポート体制が整っている
アプリ開発の現場にとって、魅力的な特徴ともいえるのが「アプリ運用のサポート体制が整っていること」です。herokuは、アプリ開発が終わった後のサポートも充実していいます。
そもそもアプリ開発は、作っただけで完結するものではありません。開発後、アプリをリリースしてからも、アプリの動作確認が必要です。アプリの状態を把握するための情報となるログや、サーバーが正常であるかを判断するためのパフォーマンスモニターなど、アプリ開発後にも専門的な技術が求められます。
herokuであれば、最初から上記の情報が確認できる機能が完備されているため、専門的な技術は不要です。
特徴4:無料で運用ができる
herokuには「無料プラン」が設けられているため、コストをかけずに運用できる点が特徴です。
メールアドレスとパスワードの入力で会員登録を完了させたら、無料プランのアカウントを使い始めることができます。
無料プランであっても、5人まで使用が可能であるうえに、認証を済ませている場合はdynoを1000時間使うことが可能です。開発するアプリの規模によっては、無料プランで十分対応できるでしょう。ちなみに、認証を行っていない場合であっても、500時間は無料で使用できます。
個人開発や、小規模なアプリ開発であれば500~1000時間の使用時間でも十分であることが多いので、予算の限られた現場であっても導入しやすいのではないでしょうか。
herokuの始め方は?
herokuを始めたいけれど、具体的にどのような流れでアカウントの開設を進めていけばいいのかイメージできない…と悩む方は少なくないと思います。
そこで、ここからは、herokuの始め方をご紹介します。アカウントの登録から、動作確認に至るまで、一連の流れを分かりやすく説明していくので参考にしてみてください。
始め方1:アカウントを登録する
herokuを使うためには、まずはアカウントの登録が必要となります。
アカウントを登録する際には、以下の手順で進めていきましょう。
- herokuの公式サイトへアクセス
- 「無料で新規登録」を選択
- 必要情報を入力して「無料アカウント作成」を選択
- 上記で登録したメールアドレス宛の受信boxを開く
- herokuからのメールを開いて、本文内にあるリンクをクリックする
- パスワードを入力する
- 「パスワードを設定しログインする」を選んでサインイン
- 「ここをクリックして次に進んでください」を選択する
上記の流れでアカウントの登録は完了します。なお、パスワードを設定する際には「8文字以上」「アルファベット、数字、記号を含む必要がある」など、一定の条件が設けられているので注意してください。
始め方2:ログインする
ログインする際には、デブロイするための環境が必要となるので、それも踏まえてログイン方法を確認しておきましょう。
- Windowsユーザーは「コマンドプロンプト」、Macユーザーは「ターミナル」を用意しておく
- heroku Dev Centerから、heroku CLIをインストールする
- インストール後に、heroku CLIにアクセスする
- 「ダウンロードとインストール」を選択する
- 使用する端末に合ったものを選択してインストールする
- Windowsユーザーは「コマンドプロンプト」、Macユーザーは「ターミナル」を開く
- 「heroku loguin」を入力してエンターキーを押す
- 「Q」以外のキーを押してログイン画面を開き、エンターキーを押す
正常にログインできれば、アカウント登録の際に入力したメールアドレスが下から2行目に表示されます。
始め方3:デプロイを行う
ここからは、実際にデプロイを行う方法を解説していきます。どのようなディレクトリは以下で作業を行うかによって若干操作方法に違いが生じる場合はありますが、主な流れに大きな違いはないので以下を参考にしながら進めてみてください。
アプリケーションを取得する
デプロイを行うために、まずはアプリケーションを取得します。
- 任意の場所にディレクトリを用意する
- 用意したディレクトリに移動し、デプロイ用のアプリケーションを取得(GitHubから取得可能)
- git cloneを使ってリポジトリからクローンを行う(リポジトリは任意のもの)
なお、開発のシーンでは、ローカルリポジトリは最新化しておきましょう。
デプロイを実施する
アプリケーションが取得できたら、デプロイの実施へと移ります。
- クローンしたアプリケーションは以下へ移動
- 「heroku create」とコマンドを入力
- コマンドラインに表示されるURLをメモ帳などへ控える
- 「git push heroku master」と入力
- heroku上へのデプロイが開始される
ちなみに、「XXXX-ZZZZ……」といったアプリケーション名はランダムで割り振られますが、「heroku create」のコマンドで指定が可能です。
始め方4:動作確認をする
最後に動作確認を行います。
- 前項でメモ帳などに控えたURLをブラウザーの入力バーに入力
- 入力したURLを開く
- 「Getteing Started with Java on heroku」と大きく表示されていることを確認
控えておいたURL先を開いたときに、上記の画面が表示されていれば、デプロイが正常に完了しています。
まとめ
今回は、アプリ開発や運用で便利な「heroku」についてご紹介しました。
サポート言語が幅広い上に、操作感もシンプルなので使い勝手のいい環境といえます。また、開発するアプリの規模によっては、無料プランでも十分使えるのが魅力。コストを抑えつつ、最適な環境の中で、アプリの開発を進めることが可能です。
ぜひherokuの導入が初めての方は、今回ご紹介した「herokuの始め方」も参考にしながら、さっそく試しに使ってみてはいかがでしょうか。