squadbase.yml
squadbase.yml の設定方法について学びます。
Squadbaseでは、アプリをデプロイする時の設定ファイルとしてYAML形式のファイルを使用します。 アプリのビルド方法とクラウド環境の設定を記述するとデプロイ時に設定が自動的に反映されます。
YAMLは通常はsquadbase.ymlという名前で保存されます。デプロイ時にSetting file pathを変更することでファイル名を変更することも可能です。
使用するランタイムやフレームワークによって設定する必要のある項目が異なります。
version: '1'
# Build Settings
build:
  framework: streamlit # streamlit | nextjs | fastapi | django | morph
  runtime: python3.9 # python3.9, python3.10, python3.11, python3.12, python3.13, node18, node20, node22
  package_manager: pip # pip, poetry, uv, npm, yarn, pnpm
  entrypoint: src/app.py # src/app.py
  # Custom dockerfile settings
  dockerfile: Dockerfile # カスタムDockerfileのパス(オプション)
  context: .
  build_args:
    ARG1: value1
    ARG2: value2
# Deployment Settings
deployment:
  provider: gcp
  aws:
    memory: 512
    timeout: 30
    provisioned_concurrency: 0
    ephemeral_storage: 512
  gcp:
    memory: 1Gi
    cpu: 1
    timeout: 300
    concurrency: 80
    min_instances: 0
    max_instances: 0
    ephemeral_storage: 10Gi
    region: us-central1Build
アプリのビルドに関する設定は、build: 以下に記述します。
Squadbaseでは、アプリのビルドにDockerをしています。frameworkで利用可能なフレームワークに関しては、開発者が自分でDockerfileを用意する必要はありません。
公式サポート以外のフレームワークを利用する場合や、パッケージのインストールなど環境のカスタマイズをしたい場合は用意したDockerfileを使用することもできます。
公式サポートのフレームワークを使用する
公式サポートのフレームワークを使用する場合には、以下の値を設定してビルドを行います。
| カラム | 値 | 説明 | 
|---|---|---|
| framework | streamlitnextjsfastapidjangomorph | フレームワーク | 
| runtime | python3.9python3.10python3.11python3.12node18node20node22 | ランタイム | 
| package_manager | pippoetryuvnpmyarnpnpm | パッケージマネージャー | 
| entrypoint | src/app.pysrc/main.pysrc/index.py | アプリのエントリーポイント | 
entrypointは、Streamlitを使用する場合にデプロイする対象のPythonファイルのパスを使用するために使用します。その他のフレームワークでは指定をしても使用されません。
カスタムDockerfileを使用する
アプリのルートにDockerfileが設定されている場合、Squadbaseはbuild:以下のフレームワークの設定値は使用せずに、Dockerfileを使用してビルドを行います。
dockerfileキーを使用してカスタムDockerfileのパスを指定することもできます。
| カラム | 値 | 説明 | 
|---|---|---|
| dockerfile | string | カスタムDockerfileのパス(例: docker/Dockerfile.prod) | 
| context | string | ビルドコンテキストディレクトリ(デフォルト: .) | 
| build_args | object | Dockerビルドに渡すビルド引数 | 
例:
build:
  dockerfile: docker/Dockerfile.prod
  context: .
  build_args:
    NODE_ENV: production
    API_KEY: ${API_KEY}カスタムDockerfileを使用する場合、framework、runtime、package_manager、entrypointのキーは無視されます。
Deployment
アプリのデプロイに関する設定は、deployment: 以下に記述します。
providerで使用するクラウドプロバイダーを指定します。特に指定をしない場合は、awsが使用されます。
2025年10月以降、新規プロジェクトのデフォルトプロバイダーはgcpからawsに変更されています。既存のプロジェクトには影響しません。 また、streamlitプロジェクトはWebSocket接続に大きく依存しており、AWSデプロイメントがWebSocket接続をサポートしていないため、引き続き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 | タイムアウト(秒), 最大値は7日(604800秒) | 
| concurrency | number | 並列実行数 | 
| min_instances | number | 最小インスタンス数 | 
| max_instances | number | 最大インスタンス数 | 
| ephemeral_storage | string (例: 1Gi, 512Mi) | エフェメラルストレージ | 
| region | string | GCPリージョン。現在は us-central1、asia-northeast1、europe-west1をサポートしています。 | 
技術的な理由により、現在AWSデプロイメントではリージョン選択をサポートしていません。今後この機能を追加する予定です。
課金体系
アプリの実行には、メモリベース、リクエストベース、CPUベースの3つの課金体系があります。 deploymentの項目で定義するコンピューティングのスペックに応じて実行時に課金がされます。
GB-秒,vCPU-秒は、メモリ,CPUをそれぞれ1GB,1vCPUで1秒間使用したときの課金額です。
| メモリベース($/GB-秒) | リクエストベース($/100万件) | CPUベース($/vCPU-秒) | |
|---|---|---|---|
| 1. 課金体系(AWS) | ¥0.00266 | ¥33.25 | - | 
| 2. 課金体系(AWS - 待機サーバー) | ¥0.000665 | - | - | 
| 3. 課金体系(GCP) | ¥0.000399 | ¥66.5 | ¥0.003591 | 
| 4. 課金体系(GCP - 待機サーバー) | ¥0.000399 | - | ¥0.003591 | 
待機サーバーはそれぞれ、AWSではprovisioned_concurrency、GCPではmin_instancesを設定することで使用できます。 待機サーバーを設定することで、サーバーがアイドル状態であってもサーバーが常時起動しているため、実行速度を早くすることができます。