ウェブサイト
管理対象アドオン: PostgresとRedis
The Addons tab lets you attach a managed PostgreSQL database or a managed Redis instance to a site without building or maintaining a server for it. Kapsule provisions it, gives you a connection…
Addonsタブを使うと、サーバーを構築または保守することなく、管理されたPostgreSQLデータベースまたは管理されたRedisインスタンスをサイトにアタッチできます。Kapsuleがこれをプロビジョニングし、接続文字列を提供し、削除時にクリーンアップします。
Addonsの場所
Websitesを開き、サイトをクリックして、サイトタブストリップのSettingsメニューを開き、Addonsを選択します。ページのタイトルはManaged addonsです。
カタログには2つのオプションがあります:
| Addon | 一般的な用途 |
|---|---|
| PostgreSQL | MySQLではないアプリケーションの主要なデータストア |
| Redis | キャッシング、セッションストレージ、バックグラウンドジョブキュー |
これらは標準ホスティングサイトに付属するMySQLデータベースとは別です。そちらはFilesタブのDatabaseタブにあり、プロビジョニングは不要です: SSHトンネル経由でデータベースに接続するを参照してください。

Addonのリクエスト
- Add a managed databaseセクションでアドオンを見つけます。
- Add to siteをクリックします。
リクエストは直ちに記録され、アドオンはYour addonsにPENDINGバッジとWaiting for provisionerというメモ付きで表示されます。ページは15秒ごとに自動更新されるため、開いたままにできます。
バックグラウンドジョブは数分ごとに保留中のリクエストを取得し、サイト用の専用データベースと専用ユーザーを作成し、暗号化された接続文字列を書き込みます。その後、ステータスはACTIVEに移行します。
アドオンのリクエストまたは削除にはsites:write権限が必要です。読み取り専用のチームメンバーは、どのアドオンが存在するか、そのステータスを確認できますが、ボタンは非表示です。
サイトごとに1つずつ
サイトは1つのPostgresqlアドオンと1つのRedisアドオンを保持できます。同じタイプの2番目をリクエストすると、既にプロビジョニング済みであるというメッセージで拒否され、インストール後、カタログからオプションが非表示になります。両方がインストールされている場合、カタログセクションはAll available addons are installedと表示されます。
ステータスの確認
| ステータス | 意味 |
|---|---|
| PENDING | リクエスト済み、プロビジョナー用キュー内 |
| PROVISIONING | 現在作成中 |
| ACTIVE | 使用可能 |
| FAILED | プロビジョニングが完了しませんでした。理由は行に表示されます |
| DELETED | 削除済み、リストに表示されなくなりました |
FAILED行は、汎用メッセージではなく、その下に実際のエラーテキストを表示します。理由が対応できるものでない場合は、サポートチケットで逐語的に引用してください: サポートチケットを開くを参照してください。
接続文字列の取得
アドオンがACTIVEになると、その行にはパスワードをドットで置き換えたマスク済み接続文字列が表示されるため、認証情報を公開することなく、ホストとデータベース名を一目で確認できます。
Copy connectionをクリックして、完全な接続文字列をクリップボードにコピーします。これはそのリクエストのためにサーバー側で復号化され、ページに出力されることはないため、画面共有やスクリーンショットでは漏えいしません。すべての表示はサイトの監査証跡に書き込まれ、サイトアクティビティログに表示されます。
文字列は各エンジンの通常のURL形式で、このサイト用に作成されたホスト、ポート、ユーザー、パスワード、データベース名を含みます。
アプリケーションで使用する
接続文字列をアプリケーションが設定を読み取る場所に貼り付けます。Node.jsサイトでは、適切な場所はSecretsタブで、DATABASE_URLやREDIS_URLなどのキーの下で、production環境です。
接続文字列をコミットするファイルにハードコードしないでください。ライブパスワードが含まれています。gitリモートに到達した場合は、漏えいとして扱われ、唯一の本当の修正方法はアドオンを削除して新しいものをリクエストすることです。理由は、パネルから認証情報を適切に回転できないためです。
アドオンの削除
行のDeleteをクリックします。KPanelは確認を求め、何が起こるかについて率直に説明します: これは管理されたデータベースを削除し、データは回復不可能です。
行は直ちに削除済みとしてマークされ、プロビジョナーは次のパスで基盤となるデータベースとユーザーをティアダウンします。既存の接続はそのティアダウンの一部として終了します。
管理アドオンの削除時にはバックアップが取得されず、取り消しもありません。アドオンがまだアクティブで接続文字列がまだ機能している間に、pg_dumpまたはredis-cli --rdbでダンプしたいものがあれば、最初にダンプしてください。
オプション間の選択
PostgreSQLを使用する、アプリケーションがリレーショナルデータベースを必要とし、Postgresに対して記述されている場合: 強力な制約、トランザクション、JSONカラム、そして通常ボルトオンしなければならなかった全文検索。
Redisを使用する、消えることが許可されているもの用: キャッシュされたフラグメント、レート制限カウンター、セッションストレージ、ジョブキュー。これを高速で不揮発性として扱い、記録のシステムではなく扱ってください。
組み込みMySQLデータベースを使用する、WordPressおよび既にMySQLに対して記述されているもの用。WordPressサイトにPostgres addonを追加することは、WordPressがそれと通信できないため、何も有用なことを行いません。
トラブルシューティング
**アドオンが長時間PENDINGのままです。**プロビジョナーは即座ではなくスケジュールに基づいて実行されます。ページを開いたままにします。自動更新されるため、確認してください。数回のパス後に移動していない場合は、サイトドメインとアドオンタイプを含むサポートチケットを開いてください。
**プロビジョニングが失敗しました。**行のエラーを読んでください。失敗したアドオンを削除し、再度リクエストしてください。これは安全です: 失敗した行の背後にはライブデータベースがないためです。
**Copy connectionが何もしません。**一部のブラウザは、タブがフォーカスされていない場合、クリップボード書き込みをブロックします。最初にページをクリックしてから、ボタンをもう一度クリックしてください。
アプリケーションが接続できません。3つのものを順番に確認してください: アドオンステータスがACTIVE、文字列を再入力ではなくコピーした、およびアプリケーションが以前のデプロイから古いものではなく、実際に設定した値を読み取っているかどうか。新しい設定が取得される前に、通常、再起動が必要です。
**再デプロイ後、接続が拒否されます。**設定の接続文字列がこのページのものと一致することを確認してください。アドオンの削除と再リクエストは新しいユーザーと新しいパスワードを作成するため、古い文字列は機能しません。
次に確認すること
- サイトのアプリシークレットの保存、接続文字列を保持するための適切な場所。
- SSHトンネル経由でデータベースに接続する、組み込みMySQLデータベース用。
- サイト設定、サイトレベルの設定の残り。