プロセス
「プロセス」ページには、アプリケーションのランタイムとビルドのプロセスが表示されます。ここで独自のランタイムコマンドを編集、定義することもできます。
ウェブプロセス
ウェブプロセスがアプリケーションを実行します。アプリケーション追加の際にstartコマンドを指定しないと、Kinstaのシステムにより最初のデプロイ時に自動での検出が試みられます。たとえば、Node.jsアプリケーションのstartコマンドはnpm start
またはyarn start
です。
ウェブプロセスを削除することはできず、1つのアプリケーションにつき1つのウェブプロセスのみ保持することができます。
ウェブプロセスの編集
ウェブプロセスは、「プロセス」画面で横にある3つの点をクリックし、「プロセスの変更」で編集できます。

以下の各フィールドの設定を行います。
- 名前:ウェブプロセスの名前を入力します。
- カスタムstartコマンド:ウェブプロセスのstartコマンドを入力します。アプリケーションを追加する際にこのコマンドを空欄にした場合、アプリケーションを実行するために自動的に検出されたコマンドが表示されます。
- ヘルスチェックパス:ヘルスチェックのパスを入力します。アプリケーションにヘルスチェックが含まれていると、デプロイ間もアプリが稼働した状態を維持することができます。アプリケーションがデプロイまたは再デプロイされると、新たなPodの準備が整うまで、古いPodが実行されます。10秒ごとにヘルスチェックパスを確認し、3回連続して応答しない場合はPodを再起動します。
- 水平オートスケーリング:水平オートスケーリングを有効にする場合は、ウェブプロセスが使用できるインスタンスの最小数と最大数を定義します。現在のPodのCPU使用率がCPUリソース上限の80%に達すると、ウェブプロセスが自動的に1つ増加します。その後CPU使用率が低下し、現在のPod数が不要になると、ポッド数は必要な数に減らされます。インスタンス数が設定した最小数より少なくなることはありません。
- インスタンス数:必要なインスタンスの数を設定します(最大20まで)。各インスタンスは1つのPodを意味し、インスタンスはすべて同じPodサイズを使用します。インスタンスごとに異なるPodサイズを定義することはできません。
- インスタンスのサイズ:プロセス専用のCPUとRAMの上限を決定します。
バックグラウンドワーカー
バックグラウンドプロセスは、メインアプリケーションとは別にバックグラウンドで実行され、インターネットからはアクセスできません。大規模データの処理のような継続的なタスクにバックグラウンドプロセスを使用することで、このタスクをメインアプリケーションから切り離し、良好なユーザーエクスペリエンスを維持することができます。
この種のプロセスは、一定時間後に終了する一回限りのジョブとして実行するものではありません。バックグラウンドプロセスがジョブの完了を経て終了しても、Podはシャットダウン、再起動し、プロセスが繰り返されます。ジョブ完了後に終了するプロセスには、cronジョブプロセスを使用するようにしてください。
バックグラウンドワーカーの追加
バックグラウンドワーカーは、「プロセス」画面で追加可能です。追加できる数に上限はありませんが、各プロセスを実行するには少なくとも1つのPodが必要です。
「プロセスを作成」>「バックグラウンドワーカー」をクリックします。

- 名前:プロセス名を入力します。デフォルトでは、ランダムな名前が自動入力されます。
- カスタムstartコマンド:プロセスの起動に必要なコマンドを入力します(例:npm run [process])。
- 水平オートスケーリング:水平オートスケーリングを有効にする場合は、バックグラウンドワーカーが使用できるインスタンスの最小数と最大数を定義します。現在のPodのCPU使用率がCPUリソース上限の80%に達すると、バックグラウンドワーカーが自動的に1つ増加します。その後CPU使用率が低下し、現在のPod数が不要になると、ポッド数は必要な数に減らされます。インスタンス数が設定した最小数より少なくなることはありません。
- インスタンス数:必要なインスタンスの数を設定します(最大20まで)。各インスタンスは1つのPodを意味し、インスタンスはすべて同じPodサイズを使用します。インスタンスごとに異なるPodサイズを定義することはできません。
- インスタンスのサイズ:プロセス専用のCPUとRAMの上限を決定します。
Important
アプリケーションのバックグラウンドワーカーに永続ストレージを追加する場合、インスタンスは1つに制限されます。永続ストレージを持つプロセスには、水平オートスケーリングはありませんが、プロセスのインスタンスサイズを増やすことで垂直方向にスケーリング可能です。永続ストレージや水平スケーリングをcronジョブやジョブに追加することはできません。
インスタンスサイズ(垂直方向のスケーリング)や同時に実行するインスタンス数(水平方向のスケーリング)など、プロセスの詳細はいつでも変更できます。アプリケーションリソースのスケーリングの詳細はこちらをご覧ください。
cronジョブプロセス
cronジョブを使用すると、アプリケーションのプロセス実行を特定の間隔で設定することができます。これにより、継続的に実行されるPodなしで、レポートの送信やメンテナンスタスクの実行などの反復タスクを時間指定で自動化できます。
cronジョブプロセスはバックグラウンドワーカーに似ていますが、設定されたタイミングでのみ起動し、必要な処理を終えるとシャットダウンします。
Important
Laravelのcronジョブは、startコマンド php artisan schedule:work
でバックグラウンドワーカーとして実行する必要があります。
cronジョブプロセスの追加
cronジョブは、「プロセス」画面で追加可能です。追加できる数に上限はありませんが、各プロセスを実行するには少なくとも1つのPodが必要です。
「プロセスを作成」>「cron」をクリックします。

- 名前:プロセス名を入力します。デフォルトでは、ランダムな名前が自動入力されます。
- カスタムstartコマンド:プロセスを開始するために必要なコマンド(例えば、npm run [process])
- cron式:The cron expression determines when and how often the cron job runs. It is made up of the following five fields:
*
分(0〜59)*
時間(0〜23)*
日(1〜31)*
月(1〜12)*
曜日(0〜6)
Cronitorなど、cron式の書き方に関するリソースはオンラインで多数見つけることができます。以下は一般的な書式例です。
- 1分毎に実行する場合:
* * * * *
- 30分毎に実行する場合:
*/30 * * * *
(30
を*/
なしで使用すると、30分(12:30、13:30など)にしか実行されないため、30分毎に実行する場合(12:00、12:30など)は*/30
を使用します) - 1時間毎に実行する場合:
0 * * * *
- 毎日午前0時に実行する場合:
0 0 * * *
- 金曜日午前0時に実行する場合:
0 0 * * 5
- 毎月1日の午前0時に実行する場合:
0 0 1 * *
- タイムゾーンを設定する:デフォルトのタイムゾーンは協定世界時(UTC)です。お客様のタイムゾーンで特定の時間に実行したい場合は、チェックを入れてタイムゾーンを指定します。これはIANAのタイムゾーン識別子使用するため、タイムゾーンを東京(日本)に設定する場合は、「Asia/Tokyo」と入力してください。
- インスタンスのサイズ:プロセス専用のCPUとRAMの上限を決定します。
設定を終えたら「作成する」をクリックします。追加したプロセスの料金は、プロセスが実行されている時間分のみ毎月のお支払い額に加算されます。例えば、S1インスタンス(0.5 CPU/1 GB RAM)でcronジョブを追加し、月に60分間実行した場合は、3,600秒 × 0.0000076104(秒単価) = 0.03ドルとなります。
インスタンスサイズ(垂直スケーリング)を含め、プロセスの詳細はいつでも変更可能です。永続ストレージや水平スケーリングをcronジョブに追加することはできません。
cronジョブの手動実行
手動でcronジョブを実行するには、「アプリケーション」>(アプリ名)>「プロセス」で実行したいcronジョブの横にある3つの点をクリックして、「実行」をクリックします。

ジョブプロセス
ジョブを使用すると、デプロイ前、デプロイ完了後、またはデプロイ失敗後のいずれかに、アプリケー ションに対して1回限りのプロセスを実行することができます。ウェブプロセスのstartコマンドに移行スクリプトを追加するのではなく、別のプロセスで警告を送信したり、データベースの移行を実行したりするのに便利です。
ジョブは、設定された開始ポリシーに基づいてのみ起動し、必要な処理を終えるとシャットダウンします。
ジョブプロセスの追加
cronジョブは、「プロセス」画面で追加可能です。追加できる数に上限はありませんが、各プロセスを実行するには少なくとも1つのPodが必要です。
「プロセスを作成」>「ジョブ」をクリックします。

- 名前:プロセス名を入力します。デフォルトでは、ランダムな名前が自動入力されます。
- カスタムstartコマンド:プロセスの起動に必要なコマンドを入力します(例:npm run [process])。
- 開始ポリシー:処理を開始するタイミングを「デプロイ前」「デプロイ成功後」「デプロイ失敗後」のいずれかから選択します。
- インスタンスのサイズ:プロセス専用のCPUとRAMの上限を決定します。
設定を終えたら「作成する」をクリックします。追加したプロセスの料金は、プロセスが実行されている時間分のみ毎月のお支払い額に加算されます。例えば、S1インスタンス(0.5 CPU/1 GB RAM)でジョブを追加し、月に60分間実行した場合は、3,600秒 × 0.0000076104(秒単価) = 0.03ドルとなります。
インスタンスサイズ(垂直スケーリング)を含め、プロセスの詳細はいつでも変更可能です。永続ストレージや水平スケーリングをcronジョブに追加することはできません。
Procfileでのプロセスの定義
Procfileはアプリケーションのコードからプロセスを定義し、リポジトリにコミットする必要があります。Procfileには、以下の形式で1行に1つのプロセスが含まれます。
process_name: command
例えば、Laravelアプリケーションを実行するには、次のようにします。
web: php artisan serve --host 0.0.0.0 --port 8080
Procfileを使用するには、コンテナがウェブリクエストに対応するように「web」という名前のプロセスを定義する必要があります。
Info
JSONファイルやYMLファイルで可能な、より標準化されたデプロイメントの記述方法が望ましいため、将来的にはProcfileの使用を廃止する予定です。
アプリケーションリソースのスケーリング
任意のプロセスのPodサイズを変更したり(垂直方向のスケーリング)、同時に実行するPod数を変更したり(水平方向のスケーリング)できます。名前の変更以外の処理に伴い、アプリケーションのロールアウトが自動でトリガーされます。
Important
アプリケーションのウェブプロセスまたはバックグラウンドプロセスに永続ストレージを追加した場合、そのプロセスはそれぞれ1つのインスタンスに制限されます。永続ストレージを持つウェブプロセスまたはバックグラウンドプロセスには水平方向のスケーリングはありませんが、プロセスのPodサイズを大きくすることで垂直方向にスケーリング可能です。永続ストレージをcronジョブに追加することはできません。
- 垂直スケーリングは、リソース集約的なタスク向けにより多くのパワーをPodにもたらします。
- 水平スケーリングは、多くのリクエストを処理するアプリケーションの柔軟性を高め負荷を分散するのに効果的です。たとえば、同じPodの3つのバージョンを実行できます。基礎となるテクノロジーがリクエストを3つのPodのいずれかにルーティングし、負荷を効果的に分散します。1つのPodが不安定になると、それが健全になるまでリクエストが他の2つにルーティングされます。
「Podサイズ」を含め、プロセスの詳細情報はいつでも変更できます。アプリケーションがステートレス(永続ストレージなし)の場合、「ウェブプロセス」の水平オートスケーリングを有効にできます。これにより、プロセスが必要に応じてスケールできるインスタンスの最小数と最大数(最大10)を設定可能です。Podサイズの変更やその他のスケーリングオプションの詳細については、スケーラビリティをご参照ください。
ビルドプロセスリソースの更新
ビルドプロセスに使用するリソースを変更するには「ビルドプランの更新」を押し、必要な「ビルドリソース」を選択して「ビルドを更新」をクリックします。