squadbase.yml
squadbase.yml の設定方法について学びます。
Squadbaseでは、アプリをデプロイする時の設定ファイルとしてYAML形式のファイルを使用します。 アプリのビルド方法とクラウド環境の設定を記述するとデプロイ時に設定が自動的に反映されます。
YAMLは通常はsquadbase.yml
という名前で保存されます。デプロイ時にSetting file pathを変更することでファイル名を変更することも可能です。
使用するランタイムやフレームワークによって設定する必要のある項目が異なります。
Build
アプリのビルドに関する設定は、build:
以下に記述します。
Squadbaseでは、アプリのビルドにDockerをしています。framework
で利用可能なフレームワークに関しては、開発者が自分でDockerfileを用意する必要はありません。
公式サポート以外のフレームワークを利用する場合や、パッケージのインストールなど環境のカスタマイズをしたい場合は用意したDockerfileを使用することもできます。
公式サポートのフレームワークを使用する
公式サポートのフレームワークを使用する場合には、以下の値を設定してビルドを行います。
カラム | 値 | 説明 |
---|---|---|
framework | streamlit nextjs morph | フレームワーク |
runtime | python3.9 python3.10 python3.11 python3.12 node18 node20 node22 | ランタイム |
package_manager | pip poetry uv npm yarn pnpm | パッケージマネージャー |
entrypoint | src/app.py src/main.py src/index.py | アプリのエントリーポイント |
entrypoint
は、Streamlitを使用する場合にデプロイする対象のPythonファイルのパスを使用するために使用します。その他のフレームワークでは指定をしても使用されません。
カスタムDockerfileを使用する
アプリのルートにDockerfile
が設定されている場合、Squadbaseはbuild:
以下のフレームワークの設定値は使用せずに、Dockerfile
を使用してビルドを行います。
context
とbuild_args
は自前のDockerfile
を使用してビルドする時にのみ使用されます。
Deployment
アプリのデプロイに関する設定は、deployment:
以下に記述します。
provider
で使用するクラウドプロバイダーを指定します。特に指定をしない場合は、gcp
が使用されます。
AWS
カラム | 値 | 説明 |
---|---|---|
memory | number | メモリ(MB) |
timeout | number | タイムアウト(秒), 最大値は900秒 |
provisioned_concurrency | number | プロビジョンドコンカレンシー |
ephemeral_storage | number | エフェメラルストレージ(MB) |
GCP
カラム | 値 | 説明 |
---|---|---|
memory | string (例: 1Gi, 512Mi) | メモリ |
cpu | number | CPU |
timeout | number | タイムアウト(秒), 最大値は900秒 |
concurrency | number | 並列実行数 |
min_instances | number | 最小インスタンス数 |
ephemeral_storage | string (例: 1Gi, 512Mi) | エフェメラルストレージ |
課金体系
アプリの実行には、メモリベース、リクエストベース、CPUベースの3つの課金体系があります。 deploymentの項目で定義するコンピューティングのスペックに応じて実行時に課金がされます。
GB-秒,vCPU-秒は、メモリ,CPUをそれぞれ1GB,1vCPUで1秒間使用したときの課金額です。
メモリベース($/GB-秒) | リクエストベース($/100万件) | CPUベース($/vCPU-秒) | |
---|---|---|---|
1. 課金体系(AWS) | $0.0000200000 | $0.25 | - |
2. 課金体系(AWS - 待機サーバー) | $0.0000050000 | - | - |
3. 課金体系(GCP) | $0.0000030000 | $0.50 | $0.0000270 |
4. 課金体系(GCP - 待機サーバー) | $0.0000030000 | - | $0.0000270 |
待機サーバーはそれぞれ、AWSではprovisioned_concurrency、GCPではmin_instancesを設定することで使用できます。 待機サーバーを設定することで、サーバーがアイドル状態であってもサーバーが常時起動しているため、実行速度を早くすることができます。