コラム詳細

Heroku(ヘロク)とは?Web開発や運用のメリットを解説

2023年04月13日

  • Salesforce
  • 使い方

はじめに

セラクCCCのSalesforce推進部のAです。近年では業務効率化のため、ダウンロード不要なWebアプリや、Salesforceのようなクラウドシステムの利用が拡大しています。また、一般提供されているWebアプリを活用するだけでなく、社内や協力企業向けのWebアプリ開発を検討する企業も増えています。
本記事ではWebアプリのスピーディな開発・提供を支援するサービス『Heroku(ヘロク)』をご紹介します。
セールスフォース社が提供するHerokuは、アプリ開発に必要なインフラをセットで用意されています。扱える言語が多く、無料で利用開始できるのが特徴です。これからWebアプリの開発を始める、または他の環境からの移行を考えているエンジニアの方にオススメです。

 

Heroku(ヘロク)とは?

Heroku(ヘロク)とはWebアプリ開発・運用環境を提供するサービスです。サーバやデータベースを提供するだけでなく、テストやデプロイなどを効率的に行えるようサポートし、Webアプリの迅速な開発・提供を支援します。

 

Herokuの提供するサービス種別


<Herokuのサービス内容>

 

Herokuの基本機能

Sales Cloud(セールス クラウド)
実行環境 「Dyno」と呼ばれるLinuxコンテナ
データベース Heroku Postgres、HerokuRedis
対応言語 Ruby、Java、PHP、Python、Node、Go、Scala、Clojure

 

Herokuを構成する基本的な機能として、実行環境・データベース・対応言語をご紹介します。

 

実行環境

Herokuは、コンテナを使用してあらゆる Heroku アプリの実行やスケールを行います。Heroku で使用されるコンテナは「Dyno(ダイノ)」と呼ばれます。DynoはLinuxコンテナであり、個々が相互に隔離された状態で仮想化されています。
Dynoには利用できるリソースの必要量に応じて稼働数を自動で増減させスケールアウトできる拡張性や、24時間に1度は再起動されるためセキュリティ対策適用の随時化を行えるなどのメリットがあります。

 

データベース

Herokuは、オープンソースで実績のあるリレーショナルデータベース管理システム(RDBMS)の『PostgreSQL(ポストグレスキューエル)』と、キーバリュー型データストア『Redis(レーディス)』の2種類のデータベースをクラウドで提供しています。またアドオンを使えば、さらに多くのデータベースを利用できます。

 

対応言語

Herokuは、標準機能としてRuby、Java、PHP、Python、Node、Go、Scala、Clojureの8種類の言語に対応しています。さらにサードパーティ製を含めて7,800以上のBuildpackがあり、これを利用して多種多様なプログラミング言語を使用できます。

 

Herokuのコスト

Herokuには個人開発や小規模案件向けに、無料でほぼ全ての機能を利用できる『Freeプラン』があります。このプランを利用し、手軽にHeroku環境での開発を体験できます。
企業開発や大規模案件などの場合は、導入前にセールスフォース社や詳しいコンサル企業へ相談してコストを見積るのが良いでしょう。大企業向けの機能を追加した『Heroku Enterprise』も用意されています。
Herokuを使えば、インフラ管理を社内で行う場合に比べて人的コストを抑えられます。また使用できる言語が多く、アカウントを取得すればGitコマンドとHeroku CLIコマンドの知識だけで開発を始めることができ、別の開発環境からHeroku環境へ移行する場合にエンジニアの学習コストを抑えられます。

 

Herokuが実現するDevOpsかつアジャイルな開発

HerokuはWebアプリの開発・運用環境を提供し、インフラの管理を担うだけではありません。DevOpsかつアジャイルな開発・運用を実現するため、CI/CD(Continuous integration(継続的インテグレーション)/Continuous Delivery(継続的デリバリー))をサポートする機能を備えています。

 

運用環境に近い開発環境・テスト環境を用意

ローカル開発環境で動作するコードが、本番環境でまったく同じように動作する保証はないため、Herokuでは「本番環境」以外に「テスト環境」と本番同様の設定で実行するための「ステージング環境」を用意し、効率的にCIできるようにサポートします。
パイプライン管理の画面では、動作確認がどの段階まで進んでいるか、それぞれの環境で動作させているアプリのバージョン情報なども合わせて一目で確認できます。また、GitHub統合を使い、テスト環境からステージング環境まで自動デプロイすることも可能です。

 

簡単な操作でデプロイできる

 


<デプロイ時のSlugのイメージ>

 

Herokuでは、作業の一部を自動化し、簡単な操作でデプロイできます。
ソースコードのデプロイ時に、コンパイラが自動でSlugという枠を用意し、ビルドファイル (Gemfile、package.json、requirements.txt、pom.xmlなど)の指定に従って自動で作業を進めます。まず言語を確かめ、次にアプリの実行環境を把握します。サポートされている依存ライブラリなど(Bundler、npm、pip、Maven など)をダウンロード、ビルド、インストールし、最終的にSlugアーカイブをパッケージ化します。
そのため、「使う言語によって、ランタイムのバージョンを確認して更新」といった手間無く、色々な言語で開発できます。

 

$ heroku features: enable preboot -a YOUR_APP_NAME

<Account Engagement(旧:Pardot)機能を有効化するコマンド>

 

他にもHerokuには、コマンド1つでイミュータブルデプロイができるPrebootや、過去のバージョンを指定して再デプロイできるロールバック機能、GitHubへのプッシュのたびに即席のHerokuアプリで自動テストを走らせるHeroku CIなど多くの機能が備わっています。

 

まとめ

本記事では、アプリ開発環境を提供するサービス『Heroku』について簡単にご紹介しました。Freeプランは無料のため、これからWebアプリ開発を始める方や、現在のアプリ開発・運用環境からの移行を考えている方は、一度試してみてはいかがでしょうか。セラクCCCには300名(23年5月時点)以上のSalesforce専門コンサルタントだけでなく、セールスフォース社が提供する『Heroku』や『Account Engagement(旧:Pardot)』、Salesforceと連携できる『Tableau』などに関しても知見を持つコンサルトが多数在籍し、サポートを行っています。

Salesforceでお悩みなら、
まずはお気軽に
お問い合わせください

  • TOP
  • コラム一覧
  • Heroku(ヘロク)とは?Web開発や運用のメリットを解説