render-private-services について
render-private-services は、パブリック URL を持たず、プライベートネットワークで通信する Render サービスのデプロイ向けスキルです。内部 API、マイクロサービス、非 HTTP サーバーの選択と設定を支援し、ネットワークやディスク、サービス種別の情報も扱います。
主な機能
- 01パブリック URL のないサービスをデプロイ
- 02内部ホスト名とポートでサービスを接続
- 03HTTP、gRPC、TCP などのプロトコルに対応
- 04Blueprints によるサービス設定
- 05ネットワークとディスクの制約を確認
活用シーン
- 01パブリックゲートウェイの背後で内部 API を稼働
- 02他サービス向けに gRPC または TCP サーバーを配置
- 03プライベートネットワークにインフラコンポーネントを配置
- 04プライベートサービスとバックグラウンドワーカーを選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ render-oss/ skills --skill render-private-servicesインストール後、Claude Code で/render-private-servicesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/patterns.mdpersistent-disks.mdprivate-networking.mdservice-types.md詳細
Render プライベートサービス
プライベートサービスは、公開 URL を持たないことを除けばウェブサービスと同じです。同じプライベートネットワーク(同じリージョン+ワークスペース)上の他の Render サービスからのみアクセスできます。内部 API、マイクロサービス、gRPC サーバー、サイドカープロセス、インターネットに公開してはならないあらゆる用途に使用してください。
使用する場面
- 公開ゲートウェイの背後に内部 APIまたはマイクロサービスを構築する場合
- サービスからのみ呼び出される gRPC、TCP、その他の非 HTTP サーバーを実行する場合
- インフラストラクチャコンポーネント(Elasticsearch、ClickHouse、RabbitMQ)をデプロイする場合
- プライベートサービスとバックグラウンドワーカーのどちらを選ぶか判断する場合
HTTP サービスを一般公開する場合は、render-web-servicesを使用してください。トラフィックを受信しないサービスには、render-background-workersを使用してください。
プライベート接続を設定またはトラブルシューティングする前に、references/private-networking.mdをお読みください。
永続ディスクをアタッチまたは変更する前に、references/persistent-disks.mdをお読みください。
プライベートサービス、ウェブサービス、ワーカーのどれを選ぶか判断する際は、references/service-types.mdをお読みください。
プライベートサービスとバックグラウンドワーカーの比較
| 基準 | プライベートサービス | バックグラウンドワーカー |
|---|---|---|
| ポートにバインドする | はい(必須) | いいえ |
| プライベートネットワークのトラフィックを受信する | はい | いいえ |
| アウトバウンドトラフィックを送信する | はい | はい |
| 内部ホスト名を持つ | はい | いいえ |
| 用途 | 内部 API、gRPC、TCP サーバー | キューコンシューマー、非同期プロセッサー |
目安: プロセスがポートをリッスンし、他のサービスから呼び出される場合は、プライベートサービスです。キューから作業を取得し、リクエストを受信しない場合は、バックグラウンドワーカーです。
プライベートサービスの仕組み
onrender.comのサブドメインはなく、インターネットからアクセスできません- 同じリージョンおよびワークスペース内のサービスから、プライベートネットワーク上の
<service-name>:<port>でアクセスできます - (制限されているシステムポートを除き)任意のポートでリッスンできます。HTTP やポート 10000 に限定されません
- 任意のプロトコルをサポートします:HTTP、gRPC、TCP、WebSocket、カスタムバイナリプロトコル
- ウェブサービスと同じビルド/デプロイのライフサイクル(ビルドコマンド、起動コマンド、デプロイ前処理)を使用します
- 永続ディスクと Docker ランタイムをサポートします。ディスクを使用するプライベートサービスは単一インスタンスのままとなり、自動スケーリングやダウンタイムなしのデプロイは利用できません。詳細は
references/persistent-disks.mdをご覧ください。
プライベートサービスへの接続
他のサービスからは、プライベートサービスの内部ホスト名とポートを使用して参照します。
http://<service-name>:<port>
Blueprints では、fromServiceを使ってアドレスを設定します。
- key: INTERNAL_API_URL
fromService:
name: my-api
type: pserv
property: hostport
pservで使用できるfromServiceプロパティ:
| プロパティ | 値 |
|---|---|
host | 内部ホスト名(例:my-api) |
port | サービスがリッスンするポート |
hostport | host:portを結合した値(例:my-api:10000) |
propertyの代わりにenvVarKeyを使用して、プライベートサービスの特定の環境変数を参照することもできます。
ポートのバインド
プライベートサービスは、少なくとも1つのポートにバインドする必要があります。プロセスがトラフィックを受信する必要がない場合は、代わりにバックグラウンドワーカーを作成してください。
127.0.0.1やlocalhostではなく、0.0.0.0にバインドしてくださいPORT環境変数のデフォルトは10000です。別のポートを選択する前に、references/private-networking.mdで現在の制限を確認してください- 非 HTTP プロトコル(gRPC、TCP)の場合は、サーバーを希望のポートに設定し、利用側に
hostportを伝えてください
Blueprint の設定
services:
- type: pserv
name: internal-api
runtime: node
region: oregon
plan: starter
buildCommand: npm ci && npm run build
startCommand: npm start
envVars:
- key: DATABASE_URL
fromDatabase:
name: db
property: connectionString
マイクロサービスのパターン(ゲートウェイ+内部サービス)
services:
- type: web
name: gateway
runtime: node
plan: starter
region: oregon
buildCommand: npm ci && npm run build
startCommand: npm start
envVars:
- key: USER_SERVICE_URL
fromService:
name: user-service
type: pserv
property: hostport
- key: BILLING_SERVICE_URL
fromService:
name: billing-service
type: pserv
property: hostport
- type: pserv
name: user-service
runtime: node
plan: starter
region: oregon
buildCommand: npm ci
startCommand: node server.js
envVars:
- key: DATABASE_URL
fromDatabase:
name: db
property: connectionString
- type: pserv
name: billing-service
runtime: python
plan: starter
region: oregon
buildCommand: pip install -r requirements.txt
startCommand: gunicorn billing:app
envVars:
- key: DATABASE_URL
fromDatabase:
name: db
property: connectionString
参考資料
| ドキュメント | 内容 |
|---|---|
references/private-networking.md | 現在のプライベートネットワークの範囲、アドレス、ポート、サービス検出、分離、トラブルシューティング |
references/patterns.md | マイクロサービスのトポロジー、gRPC の設定、サイドカーのパターン |
references/persistent-disks.md | サービスにアタッチするディスクの制約、設定、サイズ、スナップショット |
references/service-types.md | サービスタイプの選択と実行モデル |
関連スキル
- render-web-services — パブリック HTTP サービス
- render-networking — プライベートネットワーク、DNS、サービスディスカバリー
- render-background-workers — トラフィックを受信しないサービス
- render-blueprints —
render.yamlスキーマ全体、fromServiceによる接続 - render-scaling — プライベートサービス向けのコンピューティングプランとオートスケーリング
最新ドキュメントの取得
このスキルで最新の Render ドキュメントを参照するよう指示された場合は、常に次の手順に従ってください。
curlなど、利用可能な URL 取得ツールまたは HTTP クライアントを使って、リンク先の Markdown ドキュメントを直接取得してください。ウェブ検索の要約でドキュメントの代わりにしないでください。- 取得に成功し、想定したドキュメントが返されたことを確認してから、その内容を読んでください。ファイルを保存したり、そのパスを表示したりするだけでは不十分です。
- リクエストに失敗した場合、またはツールで Markdown の応答を読み取れない場合は、リンク先の HTML 版を開いて読んでください。
- どちらの版も取得できない場合は、最新の参照資料を利用できないことを明示し、スキル内の該当トピック固有の代替手順に従ってください。安定した制約に限って同梱のガイダンスを使用し、変更される可能性のあるプラットフォームの詳細を推測しないでください。
複数の参照資料が必要なタスクでは、それぞれにこの手順を適用し、確認できたドキュメントと取得できなかったドキュメントを区別してください。