プロセス
「プロセス」ページには、アプリケーションのランタイムとビルドのプロセスが表示されます。ここで独自のランタイムコマンドを編集、定義することもできます。
- ランタイムプロセス:アプリケーションに必要なプロセスです。
- ビルドプロセス: ビルドプロセスで使用するビルドマシンが表示されます。
ウェブプロセス
ウェブプロセスがアプリケーションを実行します。アプリケーション追加の際にstartコマンドを指定しないと、Kinstaのシステムにより最初のデプロイ時に自動での検出が試みられます。たとえば、Node.jsアプリケーションのstartコマンドはnpm start
またはyarn start
です。
ウェブプロセスを削除することはできず、1つのアプリケーションにつき1つのウェブプロセスのみ保持することができます。
バックグラウンドプロセス
バックグラウンドプロセスは、メインアプリケーションとは別にバックグラウンドで実行され、インターネットからはアクセスできません。大規模データの処理のような継続的なタスクにバックグラウンドプロセスを使用することで、このタスクをメインアプリケーションから切り離し、良好なユーザーエクスペリエンスを維持することができます。
この種のプロセスは、一定時間後に終了する一回限りのジョブとして実行するものではありません。バックグラウンドプロセスがジョブの完了を経て終了しても、Podはシャットダウン、再起動し、プロセスが繰り返されます。ジョブ完了後に終了するプロセスには、cronジョブプロセスを使用するようにしてください。
バックグラウンドプロセスの追加
バックグラウンドプロセスは、アプリケーション追加に際して、あるいは「プロセス」 でいつでも追加できます。追加できるバックグラウンドプロセスの数に制限はありませんが、各プロセスの実行には少なくとも1つのPodが必要です。
新しいバックグラウンドプロセスを追加するには、「プロセスを作成」をクリックし、次のようにフィールドに情報を入力します。
- 名前:プロセス名(例えば「Price calculation」)
- タイプ:「バックグラウンドプロセス」を選択
- startコマンド:プロセスの起動に必要なコマンド(例えば、npm run [process])
- Podサイズ:プロセス専用のCPUとRAMを決定
- インスタンス:必要なインスタンスの数で、最大50まで(各インスタンスは1つのPodを表し、インスタンスはすべて同じPodサイズを使用します。インスタンスごとに異なるPodサイズを定義することはできません)
Podサイズ(垂直方向のスケーリング)や同時に実行するPod数(水平方向のスケーリング)など、プロセスの詳細はいつでも変更できます。Podサイズの変更やその他のスケーリングオプションの詳細については、アプリケーションリソースのスケーリングをご参照ください。
「続行」をクリックし、概要とお支払い方法を確認してから「確定」をクリックするとプロセスの作成が完了します。
cronジョブプロセス
cronジョブを使用すると、アプリケーションのプロセス実行を特定の間隔で設定することができます。これにより、継続的に実行されるPodなしで、レポートの送信やメンテナンスタスクの実行などの反復タスクを時間指定で自動化できます。
cronジョブプロセスはバックグラウンドプロセスに似ていますが、設定されたタイミングでのみ起動し、必要な処理を終えるとシャットダウンします。
cronジョブプロセスの追加
cronジョブは、アプリケーションを追加するとき、または「プロセス」でいつでも追加できます。追加できるcronジョブプロセスの数に制限はありませんが、各プロセスを実行するには少なくとも1つのPodが必要です。
新しいcronジョブを追加するには、「プロセスを作成」をクリックし、以下のようにフィールドに情報を入力します。
- 名前:プロセス名(例えば「Marketing email scheduler」)
- タイプ:「cronジョブ」を選択
- startコマンド:プロセスを開始するために必要なコマンド(例えば、npm run [process])
- 繰り返し:プロセスを実行する頻度(分、時間、日、曜日、月、年)を選択(プロセス実行頻度を選択すると、その選択に応じて、特定の分、時間、日、曜日または月を選択できます)
- Podサイズ:プロセス専用のCPUとRAMを決定
- インスタンス:必要なインスタンスの数で、最大50まで(各インスタンスは1つのPodを表し、インスタンスはすべて同じPodサイズを使用します。インスタンスごとに異なるPodサイズを定義することはできません)
Podサイズ(垂直方向のスケーリング)や同時に実行するPod数(水平方向のスケーリング)など、プロセスの詳細はいつでも変更できます。Podサイズの変更やその他のスケーリングオプションの詳細については、アプリケーションリソースのスケーリングをご参照ください。
「続行」をクリックし、概要とお支払い方法を確認してから「確定」をクリックするとプロセスの作成が完了します。
Procfileでのプロセスの定義
Procfileはアプリケーションのコードからプロセスを定義し、リポジトリにコミットする必要があります。Procfileには、以下の形式で1行に1つのプロセスが含まれます。
process_name: command
例えば、Laravelアプリケーションを実行するには、次のようにします。
web: php artisan serve --host 0.0.0.0 --port 8080
Procfileを使用するには、コンテナがウェブリクエストに対応するように「web」という名前のプロセスを定義する必要があります。
アプリケーションリソースのスケーリング
任意のプロセスのPodサイズを変更したり(垂直方向のスケーリング)、同時に実行するPod数を変更したり(水平方向のスケーリング)できます。名前の変更以外の処理に伴い、アプリケーションのロールアウトが自動でトリガーされます。
- 垂直スケーリングは、リソース集約的なタスク向けにより多くのパワーをPodにもたらします。
- 水平スケーリングは、多くのリクエストを処理するアプリケーションの柔軟性を高め負荷を分散するのに効果的です。たとえば、同じPodの3つのバージョンを実行できます。基礎となるテクノロジーがリクエストを3つのPodのいずれかにルーティングし、負荷を効果的に分散します。1つのPodが不安定になると、それが健全になるまでリクエストが他の2つにルーティングされます。
「Podサイズ」を含め、プロセスの詳細情報はいつでも変更できます。アプリケーションがステートレス(永続ストレージなし)の場合、「ウェブプロセス」の自動水平スケーリングを有効にできます。これにより、プロセスが必要に応じてスケールできるインスタンスの最小数と最大数(最大10)を設定可能です。Podサイズの変更やその他のスケーリングオプションの詳細については、スケーラビリティをご参照ください。
ビルドプロセスリソースの更新
ビルドプロセスに使用するリソースを変更するには「ビルドプランの更新」を押し、必要な「ビルドリソース」を選択して「ビルドを更新」をクリックします。