Heroku 用語集
最終更新日 2023年11月08日(水)
Table of Contents
この記事では、Heroku プラットフォーム固有の用語と、Heroku プラットフォームで特別な意味を持つ用語の定義を紹介します。これは Heroku の製品と機能をすべて網羅した一覧ではありません。
アドオン
Heroku アプリにアタッチできるコンポーネント。データストレージ、モニタリング、ログ管理などの支援サービスを提供します。Heroku およびサードパーティプロバイダーが管理するアドオンは、Elements Marketplace から入手できます。
アプリ
Heroku の Web アプリケーション。アプリケーションのソースコードを実行する dyno のセットを持ちます。固有の .herokuapp.com
URL とリリース履歴を持ちます。
Buildpack
Heroku アプリのコードを実行可能なバンドル (slug) と呼ばれます) に変換するスクリプトのコレクション。このバンドルがアプリの dyno によって実行されます。
Heroku では、さまざまなプログラミング言語用に公式の buildpack を提供しています。それ以外の言語やフレームワーク用のサードパーティ製 buildpack は、Elements Marketplace で入手できます。
環境設定
Heroku アプリのすべての dyno で利用可能な環境変数。この値は、すべてのリリースで保持され、dyno を再起動しても変わりません。
dyno
Heroku アプリのコードを実行するコンテナ。dyno が起動すると、通常はアプリの Procfile で指定されている 1 つのコマンドを実行します。たとえば、基本的な Node.js Web アプリの dyno は、ほとんどの場合で node app.js
というコマンドを実行し、Web サーバーを起動します。
Dyno formation
Heroku アプリのすべてのプロセスタイプで現在実行されている dyno のセット。各プロセスタイプで実行する dyno の数は、個別にスケールして増減できます。
アプリの dyno formation のスケーリングに関する詳細
dyno 時間プール
詳細は、「Eco dyno」を参照してください。
dyno のスリープ
dyno はスリープすると、0 にスケールダウンされます。この動作は Eco dyno にのみ存在し、dyno 時間のプールを保持しやすくします。
この dyno タイプで dyno のスリープがどのように動作するかについての詳細は、「Eco dyno」を参照してください。
Eco dyno
Eco dyno タイプを使用すると、小規模な Heroku アプリを少額のフラットな月額料金でホストできます。1 か月あたり 5 ドルで、Eco dyno を使用しているすべてのアプリの間で共有される 1,000 dyno 時間の月単位のプールが入手できます。Eco dyno には、次の機能と制限事項があります。
- アプリに Eco Web dyno があり、その dyno が 30 分間 Web トラフィックを受信しない場合、この dyno はスリープします (0 にスケーリングされます)。Web dyno のスリープに加えて、Worker Eco dyno がある場合は、それもスリープします。
- Eco Worker dyno のみを使用するアプリは Web リクエストに応答しないため、スリープしません。
- Eco dyno 時間のプールが消費されると、アカウント内のすべての Eco dyno がその月の残りの期間スリープします。
Heroku CLI
Heroku アプリを操作するためのコマンドラインインターフェース。
Heroku Dashboard
Heroku アプリを操作するための Web インターフェース。dashboard.heroku.com で利用できます。
ログドレイン
Logplex サービスが Heroku アプリのすべてのログを送信するルーティング先 (URL)。アプリでは複数のログドレインを指定して、ログを複数のルーティング先に送信できます。
Logplex
Heroku アプリで生成されたログを指定されたログドレインに送信するサービス。拠点は米国にあります。
メンテナンスモード
Heroku アプリで、外部からのすべての Web トラフィックを遮断できるモード。データベースの移行など、メンテナンス作業時に便利です。
One-off dyno
データベースの移行など、Heroku アプリで 1 回限りの作業を行うために使用できる dyno。
パイプライン
同じコードベースを共有する Heroku アプリのコレクション。通常は、アプリの開発、ステージング、プロダクションバージョンを表すのに使用します。
Preboot
Heroku アプリで Preboot が有効になっていると、すべてのリリースについて、前のリリースの dyno が終了する前に新しいリリースの Web dyno が起動し、トラフィックの受信を始めることが保証されます。
Preboot を使うことで、リリース中のアプリのレイテンシーを削減できますが、有効にする場合は確認が必要な注意事項があります。
プロセスタイプ
Heroku アプリでは、1 つ以上のプロセスタイプを宣言して、起動時に dyno が実行するコマンドを指定します。dyno はそれぞれ 1 つのプロセスタイプ (web
など) に属し、そのプロセスタイプに関連付けられたコマンド (node app.js
など) を実行します。
web
は特別なプロセスタイプで、dyno でインターネットからのトラフィックを受信できる、唯一のプロセスタイプです。
プロセスタイプはアプリの Procfile で宣言します。
Procfile
アプリの dyno が起動時に実行するコマンドを宣言した、プレーンテキスト形式のファイル。Procfile は常に拡張子のない Procfile
という名前で、アプリケーションのルートディレクトリに格納されます。
基本的な Procfile は次のようなファイルです。
web: node app.js
この Procfile 例では、web
という名前のプロセスタイプが 1 つ定義されています。web
プロセスタイプに属する dyno が、起動時に node app.js
というコマンドを実行します。
Web dyno、Worker dyno も参照してください。
リージョン
Heroku アプリの dyno が実行されているデータセンターがある地域。Heroku では、エンタープライズ以外のお客様に、us
と eu
の 2 つのリージョンを提供しています。
リリース
デプロイされた Heroku アプリの具体的なバージョン。次のイベントにより、アプリの新しいリリースが毎回作成されます。
- アプリのビルドの成功
- 環境設定の値の変更 (環境設定をアドオン)で管理している場合は除く)
- パイプラインのステージ変更
- ロールバック
- Platform API によるリリース
- 新しいアドオンのプロビジョニング
リリースフェーズ
新しいアプリのリリースがデプロイされる直前に発生するオプションのフェーズ。データベースの移行など、新しいコードを稼働する前に必ず実行が必要なコマンドがある場合に便利です。
ロールバック
Heroku アプリを前のリリースの状態に戻すプロセス。ロールバックすると新しいリリースが作成されます。
Slug
Heroku アプリのソースコードから buildpack を使って作成された実行可能なバンドル。
スタック
dyno で実行されるオペレーティングシステム (通常は Ubuntu のリリース) のイメージ。
Twelve-Factor App
最近の Web アプリケーションのアーキテクチャに使用されている設計論。Heroku プラットフォームの規約でも、この設計論を幅広く取り入れています。
Web dyno
HTTP トラフィックを受信できる dyno。この dyno は、アプリの Procfile にある web
プロセスタイプに関連付けられているコマンドを実行します。
Worker dyno
HTTP トラフィックを受信できない dyno。この dyno は、アプリの Procfile にある任意のプロセスタイプ (web
プロセスタイプを除く) に関連付けられているコマンドを実行します。