プロジェクト
Kisenon における分離の単位 — 命名、ライフサイクル、カスケードのセマンティクス。
プロジェクト は、Kisenon における最上位のコンテナです。すべてのブランチ、エンドポイント、 ロール、データベースは、正確に 1 つのプロジェクトの下に存在します。
プロジェクトが所有するもの
- プロジェクト作成時に自動作成される
mainブランチ。 - このプロジェクトにスコープされたコピーオンライトストレージ。他のどのプロジェクトもそのペー ジを読めません。
- 作成時に固定された Postgres メジャーバージョン。
- リージョン。作成時に選び、プロジェクトの生涯にわたって固定されます。 選べるリージョンはカタログに一覧されています。
プロジェクトの分離
ストレージ、WAL、キャッシュはプロジェクトごとに分割され、プロジェクト間に共有の書き込み パスはありません。異なるプロジェクトのエンドポイントは、たとえそれらのコンピュートポッドが 同じノードにスケジュールされていても、互いのストレージに到達できません。プロジェクトごとの ネットワークポリシーとストレージ認証トークンが、すべてのページリクエストをゲートします。
これは、コンプライアンスと騒がしい隣人の分離のために頼れる境界です。プロジェクト内のブランチ 境界はより緩やかです。ブランチはストレージを共有し、分岐するまで親のページを継承します。
命名
プロジェクト名はユーザーに見えるラベルです。次のとおりです。
- 1〜63 文字でなければなりません。
^[a-zA-Z][a-zA-Z0-9_-]*$に一致します。英字、数字、_、-。英字で始まらなければなりませ ん。- グローバルに一意である必要はありません。組織内で一意であれば十分です。
内部のプロジェクト id(3f2c8a1e-5b7d-4c90-9e12-6a4b8d0f1c23 のような UUID)が、他のすべてのリソースが参照するものです。ラベルは
人間向けです。
Postgres バージョン
作成時にメジャーバージョンを選びます。対応バージョンは 17 と 18 で、デフォルトは 18 です。いったん設定すると、その場で変更
することはできません。メジャーバージョンのアップグレードは帯域外のマイグレーションであり、導入
されたときに文書化します。現時点では、バージョンは不変として扱ってください。
作成
Web コンソールから、New project をクリックし、名前を入力し、Postgres メジャーバージョンを 選び、リージョン を選びます(ドロップダウンはデフォルトで Auto (nearest))。 Create をクリックします。CLI から:
keon projects create --name my-app --pg-version 18コントロールプレーンはストレージをプロビジョニングし、main ブランチを作成し、プロジェクト
id を返します。エンドツーエンドで通常 2 秒未満です。
削除
プロジェクトを削除すると、それが所有するすべてのリソースにカスケードします。
- すべてのブランチ上のすべてのエンドポイントが停止・削除されます。
- すべてのブランチが取り壊されます。
- プロジェクトのストレージはアンロードされ、そのデータは非同期のコンパクションとオブジェクト ストレージからの最終的な削除のためにキューに入れられます。
カスケードは不可逆です。アンデリートはなく、カスケードが始まった後はストレージのアーティファ
クトをコンソールから復元できません。データが重要なら、削除前に論理ダンプ(pg_dump)を取って
ください。
keon projects delete <project-id> --cascade確認プロンプトはなく、コマンドは即座に削除します。--cascade なしでは、main 以外のブランチが残っているか main にスナップショットがある場合、
409 has_branches で拒否されます。ブランチが main だけのプロジェクトは main ごと削除され
ます。