コンテンツにスキップ

6. ネットワーク

アプリがトラフィックを確実に処理するために必要なネットワークインフラは、Build.ioが管理します。対象となるのは、ドメインの管理、TLS証明書、リクエストのルーティング、ロードバランシングです。この章では、トラフィックがアプリに届くまでの流れと、ネットワーク層の設定方法を説明します。

Build.ioのすべてのアプリには、build.ioドメイン上のデフォルトURL(例:my-app.onbld.com)が割り当てられます。本番運用するアプリでは、独自のドメインを使用するのが一般的です。

ダッシュボードから、アプリのSettingsタブに移動し、Domainsセクションを開きます。ドメインを追加すると、DNSレコードの設定先となるDNSターゲットが表示されます。

より細かいドメイン設定は、Host詳細ページで行います。このページは、アプリのOverviewタブにあるHostsセクションから開きます:

ドメイン名をクリックすると、管理ページが開きます。このページでは、ステータスの確認やDNS設定の変更、ワイルドカードドメインの設定ができます。ACM証明書と手動SSL証明書の管理も、ここから行います。

Build.ioアプリへのトラフィックは、すべてTLSで暗号化されます。証明書の管理は自動化されているため、調達、更新、インストールを手動で行う必要はありません。

カスタムドメインを追加すると、ACMがそのドメイン用のTLS証明書を自動でプロビジョニングします。DNSレコードがBuild.ioを指し、ドメインの所有権を確認できた時点で証明書が発行されます。更新も自動で行われ、証明書は有効期限が切れる前に差し替わります。手動での対応は不要です。

ACMのステータスは、アプリのメインページにあるOverviewタブのHostsセクションで確認できます。証明書のプロビジョニングに失敗した場合は、ステータスにその内容が表示されます。多くの場合、原因はDNSが未設定であることです。

6.3 ルーティングとロードバランシング

Section titled “6.3 ルーティングとロードバランシング”

ルーティング層は、インターネットとDynoの間に位置します。リクエストを受け取り、TLSを終端し(パススルーが有効な場合を除く)、実行中のDynoにトラフィックを分散します。

リクエストにはタイムアウトがあり、アプリのSettingsタブのPoliciesセクションで設定します。タイムアウト時間内にレスポンスの最初のバイトが返らない場合、ルーターはリクエストを打ち切り、クライアントには503エラーを返します。

大半のWebアプリケーションでは、デフォルトのタイムアウトで十分です。大きなファイルのアップロードや複雑なレポート生成のように時間のかかるリクエストを扱う場合は、タイムアウトの延長を検討してください。ただし、リクエストが完了するまでDyno 1つが占有され続けます。

特に時間のかかる処理には、別のパターンが適しています。リクエストはすぐに受け付け、実際の処理はバックグラウンドジョブにキューイングします。クライアントは結果をポーリングするか、ジョブの完了時にWebhookを受け取ります。