ランタイムプロセス

アプリケーションにはランタイムプロセスが必要です。アプリケーション追加の際にウェブプロセスのstartコマンドを指定しないと、Kinstaのシステムにより最初のデプロイ時に必要なstartコマンドの自動検出が試行されます。例えば、Node.jsアプリケーションのstartコマンドは、npm start またはyarn start です。これは削除することができず、アプリケーションごとに1つのウェブプロセスのみ指定可能です。

また、MyKinsta(アプリケーション)内「プロセス」のセクションで、コマンドを編集して定義することもできます。詳しくは、デプロイメントの例をご確認ください。

ウェブプロセスに加えて、バックグラウンドプロセス/ワーカープロセスを追加することができます。追加できるプロセスの数に制限はありませんが、各プロセスの実行に少なくとも1つのポッドを必要とします。

ポッドのサイズを変更したり(垂直スケーリング)、同時に実行するポッドの数を変更したり(水平スケーリング)することができます。

  • 垂直スケーリングは、リソース集約的なタスクを実行するためにポッドの性能を引き上げるのに有用です。
  • 水平スケーリングは、多くのリクエストを処理するアプリケーションにおける安定性とロードバランシングに効果を発揮します。たとえば、同じ性能のポッドを3つ実行することができます。土台にあるシステムで、リクエストが3つのポッドのうちの1つにルーティングされ、効果的な負荷の分散が期待できます。1つのポッドが不安定になると、それが回復するまで、他の2つのポッドにリクエストがルーティングされます。
MyKinstaで確認するアプリケーションのランタイムプロセスとビルドプロセス
MyKinstaで確認するアプリケーションのランタイムプロセスとビルドプロセス

MyKinstaでのプロセスの定義

アプリケーションをデプロイするとき、上記のように、ウェブプロセスのコマンドを設定することも、Kinstaによるデフォルトのコマンド設定を選択することもできます。また、MyKinsta(アプリケーション)内「プロセス」のセクションで、コマンドを編集して定義することもできます。詳しくは、デプロイメントの例をご確認ください。

プロセスを追加するには、「プロセスを作成」をクリックし、次のようにフィールドに情報を入力します。

  • 名前:プロセス名(「Worker」など)
  • タイプ:バックグラウンドジョブ
  • startコマンド:プロセス開始に必要なコマンド(たとえば、npm run [process]など)
  • ポッドサイズ:プロセスに割り当てるCPUとRAMを選択
  • インスタンス:インスタンスの数(最大5つまでです。各インスタンスは1つのポッドを表し、インスタンスにはすべて同じポッドサイズが使用されます。インスタンス毎に異なるポッドサイズを定義することはできません)

ポッドサイズなど、プロセスの中身はいつでも変更することができます。名前を除くすべての変更により、自動でアプリケーションのロールアウトプロセスが開始されます。

ビルドプロセス

ビルドプロセスで使用されているビルドマシンが表示されます。「ビルドの更新」をクリックして、ビルドプロセスで使用するビルドリソースを変更することができます。

Procfileでプロセスを定義する

Procfileは、アプリケーションのコードからプロセスを定義し、リポジトリにコミットする必要があります。Procfileには、次のような形式で1行に1つのプロセスを記述します。

process_name: command

例えば、Laravelアプリケーションを実行する場合、以下のようにします。

web: php artisan serve --host 0.0.0.0 --port 8080

Procfileを使用する時には、コンテナがウェブリクエストを満たすように、webという名前のプロセスを定義する必要があります。