本記事では、PaaS(Platform as a Service)の一つであるHeroku(ヘロク)について解説します。
Herokuを使えば、アプリケーションの開発やデプロイが簡単にでき、運用の手間も大幅に減らせます。
開発者やスタートアップ企業の方々にとって、Herokuは生産性向上やコスト削減に役立つサービスと言えるでしょう。
Herokuの特徴やメリット、使い方、料金体系などを詳しく見ていきましょう。
目次
Heroku(ヘロク)とは
Heroku(ヘロク)は、アプリケーション開発者のためのクラウドサービスです。
Webアプリケーションの開発、デプロイ、運用をシームレスに行うことができます。Herokuを使えば、インフラストラクチャの管理や設定に煩わされることなく、アプリ開発に専念できるのです。
Herokuは多様なプログラミング言語やフレームワークをサポートしており、開発者は自分の得意な技術スタックを選択できます。また、Herokuには豊富なアドオン(拡張機能)が用意されているため、データベースやメール送信など、アプリに必要な機能を簡単に追加できます。Herokuを使うことで、アプリ開発のスピードアップと運用の効率化を実現できるのです。
Herokuでできること
Herokuでは、Webアプリケーションの開発、デプロイ、運用、スケーリングを簡単に行えます。
対応言語も豊富で、Ruby、Node.js、Python、Java、PHP、Goなど主要な言語をサポートしています。また、データベースやストレージ、メール送信、ログ管理など、アプリケーション開発に必要な各種アドオンが提供されており、これらの追加・利用が簡単にできるのも特徴です。
他にもHerokuの特徴的な機能として、Gitを使ったデプロイの自動化、自動スケーリング、SSL証明書の無料提供などがあります。
これらの機能により、開発者はインフラ管理の負担を減らし、アプリケーション開発に集中できるのです。
AWSとの違い
HerokuとよくAWSが比較されますが、両者には大きな違いがあります。AWSはAmazon Web Servicesの略で、幅広いクラウドサービスを提供しています。一方、Herokuはアプリケーションに特化したPaaSです。
対応言語も、Herokuはメジャーな言語に限定されますが、AWSは幅広い言語に対応しています。価格面では、Herokuは初心者にも扱いやすいシンプルな従量課金制ですが、AWSはリソースごとに細かく料金設定されていて複雑です。サービスの種類は、Herokuがアプリケーション開発・運用に特化しているのに対し、AWSは幅広いサービスを提供しています。
対象者も、HerokuはWeb系エンジニアやスタートアップが中心ですが、AWSは大企業を含む幅広いユーザーが利用しています。
以下の表で両者の違いをまとめました。
Heroku | AWS | |
---|---|---|
対応のプログラミング言語 | メジャー言語に限定 | 幅広い言語に対応 |
価格 | 比較的シンプルな料金体系 | リソースごとに細かく料金設定 |
サービスの種類 | アプリケーション開発・運用に特化 | 幅広いサービスを提供 |
対象者 | Web系エンジニアやスタートアップ | 大企業を含む幅広いユーザー |
Herokuはセットアップが簡単で運用が手軽なため、迅速なプロトタイピングや小規模アプリケーションの開発に適しています。対してAWSは大規模かつ複雑なアプリケーションに対応可能で、スケーラビリティやコスト効率が求められる場合に有利です。小規模プロジェクトや技術リソースが限られている場合はHeroku、大規模で成長を見込むプロジェクトや高度なセキュリティが必要な場合はAWS、というふうに使い分けると良いでしょう。
Herokuを使うメリット
Herokuには多くのメリットがあります。主なメリットは以下の3つです。
- 拡張機能が豊富にある
- スケーリングが簡単にできる
- 運用サポートが充実している
ここからは上記3つのメリットについて詳しく解説します。
拡張機能が豊富にある
最初のメリットは拡張機能が豊富にあることです。Herokuには多数の拡張機能(アドオン)が用意されており、データベース、キャッシング、メール送信、監視、ロギングなど、アプリケーション開発に必要な様々な機能を簡単に追加できます。
例えば、Heroku Postgresを使えば、高可用性と自動バックアップ機能を備えたPostgreSQLデータベースを簡単にプロビジョニングでき、New Relicのアドオンを使えば、アプリケーションのパフォーマンス監視や分析が行えます。
これらの拡張機能を活用することで、開発者は基盤の構築や運用に時間を取られることなく、アプリケーションの開発に集中できるようになるのです。
スケーリングが簡単にできる
Herokuを利用すると、アプリケーションのスケーリングが驚くほど簡単になります。トラフィックが増加してきた場合、ダッシュボードのスライダーを動かすだけでDynoの数を増やすことが可能で、パフォーマンスを最適な状態に維持できるのです。
また、自動スケーリング機能を活用することで、トラフィックの変化に応じてDynoの数が自動的に調整されるため、手動での操作は一切必要ありません。これにより、急激なアクセス増加にも柔軟に対応することができ、ユーザーに快適な体験を提供し続けられるでしょう。
Herokuの大きな利点は、インフラの管理に煩わされることなく、アプリケーションの開発とビジネスの成長に集中できる点だと言えます。スケーリングの簡易性により、開発者はよりコアな部分に注力することが可能となるのです。
運用サポートが充実している
Herokuは24時間365日のサポート体制を整えており、ユーザーからの問い合わせにいつでも対応可能です。障害発生時には即座に調査・復旧作業を行い、ダウンタイムを最小限に抑えます。
また、ユーザーからのフィードバックを積極的に取り入れ、プラットフォームの継続的な改善に努めています。充実した運用サポートにより、ユーザーは安心してアプリケーションを運用できます。
トラブル発生時も迅速に対応してもらえるため、開発者はアプリケーション開発に集中でき、ビジネスの成長につなげやすくなるでしょう。
Herokuの料金体系
Herokuの料金体系は、2024年5月現在、無料枠がなくなり有料プランのみとなっています。以前は無料で利用できる枠がありましたが、2022年11月に廃止されました。
現在の料金プランは、Dyno(コンテナ)の種類によって異なります。お試し段階のアプリや、常に稼働させる必要が無いアプリに最適なEco・Basicプランは月額5ドル、基本的なWebアプリケーションを運用するためのプロダクション・プランは、月額25ドルから利用可能です。より高性能なアドバンスド・プランは月額50ドル、Performance-Mプランは月額250ドルとなっています。
また、これは基本料金であり、拡張機能を利用する場合は別途料金が発生します。従量課金制の拡張機能もあるため、利用状況によってはコストが変動することに注意が必要です。
Eco・Basic | プロダクション | アドバンスド | エンタープライズ | |
---|---|---|---|---|
料金 | $5/月 | 上限$25/月から | $250/月から | 問い合わせ |
主な対象アプリ | お試し段階のアプリや断続的に利用されるアプリ | 顧客向けや内部向け、APIなどのビジネスアプリ | 高可用性や低遅延、高容量、並列処理など、複雑な機能を持つアプリ | 統制・規制準拠が必要なアプリや大規模組織での共同作業での利用 |
Herokuの使い方
Herokuを使ってアプリを稼働させるのは、以下の5つのステップでできます。
- Herokuのアカウント登録
- Heroku CLIのインストール
- Herokuへのログイン
- アプリケーションのデプロイ
- アプリケーションの動作確認
まずHerokuのアカウントを登録します。次にHeroku CLIをインストールし、ターミナルからHerokuにログインします。そしてGitを使ってアプリケーションのソースコードをHerokuにプッシュすることでデプロイを行います。最後にブラウザでアプリケーションのURLにアクセスし、正常に動作していることを確認します。
以上がHerokuでアプリケーションを公開するまでの一連の流れになります。一見手順が多いように見えますが、1つひとつ段階を追って実行していけば簡単です。ここからは各ステップごとに詳しい手順を解説していきます。
1.Herokuのアカウント登録
まずはHerokuにアカウント登録しましょう。
Webブラウザを使ってHerokuの公式サイトにアクセスし、「新規登録」をクリックします。
名字、名前、メールアドレス、役職、国、主な開発言語を入力しましょう。仕事で使う場合は会社名入力することもできます。入力したらreCAPTCHAにチェックを入れて、「アカウント作成」ボタンを押します。
メール認証を行います。
アカウント登録すると認証メールが届きますので、リンクをクリックして認証を完了させます。
メール認証をするとパスワードを設定する画面が出ますので、以下の要件を満たすパスワードを設定しましょう。
- 8文字以上
- アルファベット、数字、記号を含む
- 入力したパスワードと確認のパスワードが一致する
パスワードを設定すると、以下のような画面が出ますので、そのままボタンをクリックして次に進みます。
ガイドの通りに進めていくと、多要素認証の設定画面になります。
使える認証方法は以下の3つです。
- Salesforce Authenticator
- ワンタイムパスワード生成器
- セキュリティキー
お好みで1つを選んで設定しましょう。
規約を読んで同意します。多要素認証を設定すると規約が出てきますので、「Accept」を押しましょう。
規約に同意するとダッシュボードが表示され、Herokuが使えるようになります。
2.Heroku CLIのインストール
続いて、Heroku CLIをインストールします。
Heroku CLIのインストール方法はクライアントのOSによって異なります。Windowsの場合はインストーラーを使ってインストールし、MacやLinuxではターミナルからインストールします。
まずは「ターミナルからインストールする方法」について解説します。
【Mac】ターミナルからインストールする方法
ターミナルからHomebrewを使ってインストールします。
以下のコマンドを実行しましょう。
brew tap heroku/brew && brew install heroku
※Homebrewがインストール済みである必要があります。
インストールされたかどうか確認します
インストールが終わったら、正常にインストールされたかどうかを念のために確認しましょう。Heroku CLIのバージョンを表示させるコマンドを使って確認できます。
heroku --version
「heroku/8.11.5 darwin-arm64 node-v16.20.2」といったバージョン情報が表示されたら正常にインストールできています。
【Windows】インストーラーを使う方法
Herokuの公式サイトから、インストーラーをダウンロードします
アクセスすると以下のようなダウンロードボタンがありますので、64ビット用か32ビット用を選んでダウンロードしましょう。
インストーラーを起動し、インストールします
ダウンロードできたら、インストーラーを起動しましょう。すると以下のようなインストール項目の選択画面が出るので、3つとも選択した状態で「Next」を押します。
次にインストール先フォルダを選ぶ画面が表示されるので「Install」を押します。
あとは自動的にインストールが進むので、インストールが完了したら「Close」を押します。
Macの場合と同じように、インストールできたかどうかをバージョン表示で確認してみましょう。
コマンドプロンプトを起動し、以下のコマンドを入力します。
heroku -v
バージョン情報が表示されたらインストールは正常に完了しています。
3.Herokuへのログイン
Heroku CLIがインストールできたら、CLIを使ってHerokuにログインしてみましょう。
ターミナルかコマンドプロンプトを開き、以下のコマンドを入力します。
heroku login
「heroku: Press any key to open up the browser to login or q to exit:」と表示されるので、エンターキーを押します。
すると、Webブラウザが起動し、ログイン画面が表示されるのでログインボタンをクリックしてログインしましょう。
ログインに成功すると、以下のようにターミナルでもログインされます。
4.アプリケーションのデプロイ
ログインができたら、アプリケーションをデプロイしてみましょう。
ここでは例として「ruby-getting-started」というアプリケーションをデプロイしてみます。
GitHubからアプリのクローンを作成します。
以下のコマンドを実行し、GitHubからアプリのクローンを作成しましょう。
git clone https://github.com/heroku/ruby-getting-started.git
アプリのクローンができたら、そのアプリのディレクトリに移動します。
cd ruby-getting-started
次に以下のコマンドを実行し、アプリを作成します。
heroku create
いよいよアプリをデプロイします。ruby-getting-startedのディレクトリで以下のコマンドを実行しましょう。
git push heroku main
長いメッセージと共にデプロイが始まりますので、終わるのを待ちます。
「Verifying deploy … done.」と表示されたらデプロイは成功です。
5.アプリケーションの動作確認
デプロイが完了したら、アプリのインスタンスが動いているかを調べてみましょう。
ps:scaleコマンドで以下のコマンドで現在稼働しているかどうか調べられます。
heroku ps:scale web=1
「now running web」と表示されたら、webでプロセスが稼働中ということです。
以下のコマンドで簡単にWebからアクセスできます。
heroku open
Webブラウザが立ち上がり、「Getting Started with Ruby on Heroku」と表示されたら正常に動作しています。
Herokuの代替となるPaaSを比較
Herokuは2022年11月に無料プランを廃止しました。Herokuの代替となるPaaSとして、Render、Dokku、Fly.ioなどがあり、いずれも無料プランが用意されています。
それぞれのサービスの概要は以下の表の通りです。
サービス名 | 無料枠 | 料金体系 |
---|---|---|
Render | あり | サブスクリプション(月額) |
Dokku | あり | 無料 |
Fly.io | あり | サブスクリプション(月額) 超過料金は従量課金 |
ここからは各サービスについて詳しく見ていきましょう。
Render
Renderは、Herokuと同じようなクラウドプラットフォームで、Webアプリケーションのデプロイを簡単に行えます。GitHubやGitLabと連携し、自動デプロイやスケーリングが可能です。料金体系は以下の通りです。
プラン | 料金 |
---|---|
Individual | $0/月 |
Team | $19/月 |
Organization | $29/月 |
Enterprise | 要見積もり |
■Renderのメリットとデメリット
Renderの特徴を理解するために、そのメリットとデメリットを以下にまとめます。
- Herokuに比べて料金が安いため、コストパフォーマンスに優れています。
- シンプルなUIと設定方法により、初心者でも簡単に利用できます。
- サポートやコミュニティの情報が少ないため、問題解決に時間がかかる場合があります。
- 細かいチューニングができないため、特定のニーズに応じた最適化が難しいことがあります。
- 対応している言語やデータベースが少ないため、特定の技術スタックには不向きな場合があります。
Renderは、小規模なプロダクトを素早くリリースしたい場合や、標準的な技術しか使わない場合に向いています。
Dokku
Dokkuは、オープンソースのPaaSであり、Herokuと同様の機能を提供します。自身のサーバーにインストールして使用することができ、Gitリポジトリからのデプロイが簡単に行えるのが特徴。オープンソースなので料金は無料です。
■Dokkuのメリットとデメリット
- Dokkuはオープンソースであるため、ソフトウェア自体の使用は無料です。ユーザーは自身のサーバー上で運用するため、クラウドサービスの利用料がかかりません。
- Herokuのビルドパックを使用でき、Herokuに慣れた開発者にとって移行が容易です。
- 自身のサーバーにインストールするため、必要に応じてサーバーやアプリケーションの設定を自由にカスタマイズできます。
- 自身でサーバーを管理する必要があるため、インフラストラクチャの管理やメンテナンスに手間がかかります。
- オープンソースプロジェクトであるため、商用サポートがありません。問題解決にはコミュニティの情報や自身の技術力が必要です。
- 大規模なアプリケーションやトラフィック増加に対してのスケーリングが、クラウドベースのPaaSに比べて難しい場合があります。
Dokkuはインフラ管理まで自分でできる開発者や、開発環境のカスタマイズ性を重視する開発者、オープンソースを好む開発者などに向いています。
Fly.io
Fly.ioは、アプリケーションをデプロイするための先進的なPaaSです。AWSが開発したFirecrackerを用いた高パフォーマンスなコンテナ仮想化を特徴とし、Dockerコンテナを利用して簡単にデプロイできます。グローバルにデータセンターを配置し、自動スケーリング機能を備えることで、低レイテンシかつ効率的なリソース利用が可能です。Herokuの無料プラン廃止後の代替として注目されています。
プラン | 料金 |
---|---|
Hobby | $5/月 |
Lunch | $29/月 |
Scale | $5/月 |
■Fly.ioのメリットとデメリット
- アプリケーションを世界中のデータセンターにデプロイでき、ユーザーに近い場所で実行することでレイテンシを低減します。
- Dockerコンテナを利用し、コマンドラインツールで簡単にデプロイできます。設定もシンプルです。
- トラフィックの変動に応じて自動的にスケールイン・スケールアウトし、効率的にリソースを利用できます。
- 新しいプラットフォームに慣れるまでに時間がかかり、初期設定が難しい場合があります。
- 無料プランにはリソースの制限があり、大規模なプロジェクトには不向きです。
- 他の大手クラウドプロバイダーに比べて、ドキュメントやサポート情報が少ないことがあります。
Fly.ioは、高速なレスポンスが求められるWebアプリケーションや、トラフィックの変動が大きいアプリケーションに適しています。
まとめ
Herokuは、アプリケーションの開発から運用までをシームレスに行えるクラウドプラットフォームです。豊富な拡張機能、簡単なスケーリング、充実した運用サポートなどのメリットがあります。料金体系は従量課金制で、無料プランもあります。
Herokuの代替となるPaaSには、Render、Dokku、Fly.ioなどがあり、各サービスの特徴を比較して、自分のニーズに合ったものを選ぶことが大切です。Herokuは、開発者にとって使いやすく、効率的なアプリケーション開発・運用を可能にするプラットフォームといえるでしょう。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。