本文へ移動
目次
ウェブサイト

マネージドアドオン:Postgresとredis

機械翻訳です。英語の原文もご利用いただけます。

Addonsタブを使うと、サイト用にサーバーを構築したり保守したりすることなく、管理されたPostgreSQLデータベースや管理されたRedisインスタンスをサイトに接続できます。KapsuleHostがプロビジョニングを行い、接続文字列を提供し、削除時にはきれいに後片付けをします。

アドオンの場所

ウェブサイトを開き、サイトをクリックし、サイトの左メニューにあるアプリグループを開いて、アドオンを選びます。ページのタイトルは管理アドオンです。

カタログには2つの選択肢があります。

アドオン主な用途
PostgreSQLMySQLではないアプリケーションの主要なデータストア
Redisキャッシュ、セッションストレージ、バックグラウンドジョブキュー

これらは、標準的なホスティングサイトに付属するMySQLデータベースとは別物です。そちらはデータベースタブにあり、プロビジョニングは不要です。詳しくはSSHトンネル経由でデータベースに接続するをご覧ください。

KPanel内のサイト用の管理アドオンページ

アドオンのリクエスト

  1. 管理データベースを追加セクションでアドオンを見つけます。
  2. サイトに追加をクリックします。

リクエストは即座に記録され、アドオンはアドオンにPENDINGバッジと「プロビジョナーを待機中」というメモとともに表示されます。ページは15秒ごとに自動更新されるため、開いたままにしておけます。

バックグラウンドジョブが数分ごとに保留中のリクエストを処理し、サイト専用のデータベースとユーザーを作成し、暗号化された接続文字列を書き戻します。その後、ステータスはACTIVEに変わります。

アドオンのリクエストや削除にはsites:write権限が必要です。読み取り専用のチームメンバーは、どのアドオンが存在し、そのステータスが何かを確認できますが、ボタンは非表示になります。

サイトごとに各1つまで

1つのサイトには、PostgreSQLアドオン1つとRedisアドオン1つを持つことができます。同じ種類をもう1つリクエストすると、すでにプロビジョニング済みであるというメッセージとともに拒否され、インストール済みのオプションはカタログから非表示になります。両方インストールされると、カタログセクションには利用可能なアドオンはすべてインストール済みですと表示されます。

ステータスの読み方

ステータス意味
PENDINGリクエスト済み、プロビジョナーの処理待ち
PROVISIONING現在作成中
ACTIVE使用準備完了
FAILEDプロビジョニングが完了しなかった。理由は行に表示される
DELETED削除済み、もう一覧に表示されない

FAILEDの行には、一般的なメッセージではなく、実際のエラー内容が下に表示されます。対処できない理由であれば、サポートチケットにそのまま引用してください。詳しくはサポートチケットの開き方をご覧ください。

接続文字列の取得

アドオンがACTIVEになると、その行にはパスワード部分がドットに置き換えられたマスク済みの接続文字列が表示され、認証情報を露出させることなく、ホスト名とデータベース名をひと目で確認できます。

接続文字列をコピーをクリックすると、完全な接続文字列がクリップボードにコピーされます。これはそのリクエスト1回限りでサーバー側で復号され、ページ上に表示されることはないため、画面共有やスクリーンショットから漏れる心配はありません。表示のたびにサイトの監査ログに記録され、サイトアクティビティログに表示されます。

この文字列は各エンジンの一般的なURL形式で、このサイト用に作成されたホスト名、ポート、ユーザー名、パスワード、データベース名が含まれています。

アプリケーションでの利用

接続文字列を、アプリケーションが設定を読み込む場所に貼り付けます。Node.jsサイトの場合、適した置き場所はSecretsタブで、production環境内のDATABASE_URLやREDIS_URLといったキーの下です。

コミットするファイルに接続文字列をハードコーディングしないでください。実際に使えるパスワードが含まれています。これがgitのリモートに届いてしまった場合は漏洩したものとして扱う必要があり、唯一の確実な対処法はアドオンを削除して新規に作り直すことです。パネルから認証情報をその場でローテーションすることはできないためです。

アドオンの削除

行のDeleteをクリックします。KPanelは確認を求め、何が起きるかを率直に示します。これにより管理データベースが削除され、データは復元できません。

行は即座に削除済みとしてマークされ、プロビジョナーが次回の処理で実際のデータベースとユーザーを削除します。既存の接続も、この削除処理の一環として切断されます。

管理アドオンは削除時にバックアップが取られることはなく、取り消しもできません。残しておきたいデータがある場合は、アドオンがまだアクティブで接続文字列が使えるうちに、pg_dumpまたはredis-cli --rdbを使って先にダンプを取ってください。

選択肢の使い分け

アプリケーションがリレーショナルデータベースを必要とし、Postgres向けに書かれている場合はPostgreSQLを使用してください。強力な制約、トランザクション、JSON列、そして本来なら別途追加する必要がある全文検索などが利用できます。

消えてしまっても構わないもの、すなわちキャッシュされた断片、レート制限カウンター、セッションストレージ、ジョブキューにはRedisを使用してください。高速だが揮発性があるものとして扱い、記録の正本としては扱わないでください。

WordPressや、すでにMySQL向けに書かれているものには組み込みのMySQLデータベースを使用してください。WordPressサイトにPostgresアドオンを追加しても意味がありません。WordPressはそれと通信できないためです。

トラブルシューティング

アドオンが長時間PENDINGのままです。 プロビジョナーは即時ではなくスケジュールに従って実行されます。ページは自動更新されるので開いたままにしておき、後で確認してください。数回の処理を経ても変化がない場合は、サイトのドメインとアドオンの種類を添えてサポートチケットを開いてください。

プロビジョニングがFAILEDになりました。 行に表示されたエラーを確認してください。失敗したアドオンを削除して再度リクエストすれば安全です。失敗した行の背後に実際のデータベースが存在していたことはありません。

接続文字列をコピーしても何も起きません。 一部のブラウザでは、タブがフォーカスされていないとクリップボードへの書き込みをブロックします。まずページをクリックしてから、もう一度ボタンをクリックしてください。

アプリケーションが接続できません。 次の3点を順番に確認してください。アドオンのステータスがACTIVEであること、文字列を手入力ではなくコピーしたものを使っていること、アプリケーションが以前のデプロイの古い値ではなく、実際に設定した値を読み込んでいること。新しい設定が反映されるには、通常は再起動が必要です。

再デプロイ後に接続が拒否されます。 設定ファイル内の接続文字列が、このページに表示されているものと一致しているか確認してください。アドオンを削除して再リクエストすると、新しいユーザーと新しいパスワードが作成されるため、古い文字列は機能しなくなります。

次に読むべき内容

この記事は役に立ちましたか?

AI の方へ:このページを Markdown で読む

関連記事

SFTP接続方法:FileZilla、Cyberduck、コマンドラインでの接続SFTP(Secure File Transfer Protocol)を使うと、サーバー上のサイトのファイルに直接アクセスできます。…SSL証明書とHTTPSKapsuleHostがどのようにSSLを自動的に処理するか、また証明書に問題が発生した場合にどうすればよいかを、平易な言葉で説明します。…ウェブサイト:まず始めにKapsuleHostにおけるウェブサイトホスティングの仕組み、サイトの各タブに何があるか、そして目の前の作業にどのガイドを読むべきかについて説明します。…サイトの稼働監視KapsuleHostのすべてのサイトは60秒ごとに自動でチェックされ、Uptimeタブでその結果を確認できます。現在のステータス、稼働率、応答時間、そして完全なインシデント履歴です。…

解決しませんでしたか?

お客様のアカウントを把握している Kora にご質問いただくか、サポートチームにお問い合わせください。

お問い合わせサポートにメール