接続
「接続」は、アプリケーションとデータベースが通信するための方法です。以下の2種類があります。
- 外部接続:インターネットを往復することから、内部接続に比べると大幅に低速になります。アプリケーションの場合は、ウェブサーバーを通して行うことができます。
- 内部接続:弊社ネットワーク内に留まるため、より高速かつ安全な接続方法です。フロントエンドとデータベースの両方をアプリケーション&データベースホスティングで運用する場合には、内部接続が推奨されます。
内部接続を追加する
内部接続は、アプリケーションの「設定」画面またはデータベースの「情報」画面で追加することができます(どちらから設定を行なっても同じ結果となります)。
アプリケーションからデータベースへの接続を追加するには、「アプリケーション」>(アプリ名)>「設定」に移動し、「内部接続」セクションにある「接続を追加」をクリックします。表示されるウィンドウで、内部接続を作成するデータベースを選択してください。
環境変数
システムにより、データベース接続情報からアプリケーションの環境変数が自動で入力されます。内部接続の詳細情報を環境変数にコピー&ペーストしないようにご注意ください。「接続を追加」または「アプリケーションを追加」をクリックし、「環境変数の追加」のボックスにチェックを入れます。これにより、接続先のデータベースから環境変数が自動で入力されます。
アプリケーションによっては、環境変数(キー)の名前の変更が求められる場合があります。必要に応じて、接続の追加前にリストの名前を編集するか、後からアプリケーションの「設定」ページで編集することができます。
内部接続とビルドプロセス
内部接続はランタイムでのみ使用可能で、ビルドプロセス中にはご利用いただけません。
ビルド処理中にアプリケーションが内部接続を使用してデータベースに接続しようとすると、データベースが稼動していないというエラーが発生し、ビルドが失敗します。これは、内部接続がビルド中に使用されるのではなく、実行時(ランタイム)にのみ使用される仕様であるためです。
これを回避する方法はいくつかあります。
選択肢1─データベースに接続するロジックを、アプリケーションのビルドコマンドからstartコマンドに移す:例えば、prisma migrate
のようなコマンドがビルドプロセスにあり、そのコマンドをstartコマンドに移動すると、アプリケーションが実行時にのみデータベースにアクセスすることになり、ビルドは成功します。
選択肢2─データベース接続に必要な環境変数を個別に追加し、1つはビルドプロセスで使用し、もう1つはランタイムでのみ使用する:キーは同じでも問題なく(DB_CONNECTION_URL
など)、一方がビルドプロセスでのみ利用可能で、もう一方がランタイムでのみ利用可能であれば成立します。データベースの外部接続情報(「データベース」>(データベース名)>「情報」>「外部接続」)を使用し、ビルド処理で使用する変数の値を指定します。
ポート
アプリケーションへの内部接続用のポートは8080、データベースへの内部接続用のポートは3306です。これらの内部接続用のポートは変更できません。
アプリケーションの場合、自動でPORT
環境変数が設定されます。都度定義したり、アプリケーションでハードコーディングにより記述したりする必要はありません。アプリケーションのデプロイが完了すると、インターネット上でポート80と443を用いてアクセス可能な状態になり、これらからポート8080のコンテナへのルーティングが行われます。
内部接続を削除する
接続を削除するには、アプリケーションの「設定」画面を開き、「内部接続」セクションにある削除(ゴミ箱)アイコンをクリックします。
「接続の削除」画面で「接続を削除」をクリックすると、アプリケーションとデータベース間の接続が削除されます。