mcpField
R
render-private-services

render-private-services

github.com/render-ossクラウド・DevOps90346 回インストール今日更新
リポジトリ

render-private-services について

render-private-services は、パブリック URL を持たず、プライベートネットワークで通信する Render サービスのデプロイ向けスキルです。内部 API、マイクロサービス、非 HTTP サーバーの選択と設定を支援し、ネットワークやディスク、サービス種別の情報も扱います。

主な機能

  1. 01パブリック URL のないサービスをデプロイ
  2. 02内部ホスト名とポートでサービスを接続
  3. 03HTTP、gRPC、TCP などのプロトコルに対応
  4. 04Blueprints によるサービス設定
  5. 05ネットワークとディスクの制約を確認

活用シーン

  1. 01パブリックゲートウェイの背後で内部 API を稼働
  2. 02他サービス向けに gRPC または TCP サーバーを配置
  3. 03プライベートネットワークにインフラコンポーネントを配置
  4. 04プライベートサービスとバックグラウンドワーカーを選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/render-oss/skills --skill render-private-services

インストール後、Claude Code で/render-private-servicesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
patterns.md
persistent-disks.md
private-networking.md
service-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サービスがリッスンするポート
hostporthost: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 ドキュメントを参照するよう指示された場合は、常に次の手順に従ってください。

  1. curl など、利用可能な URL 取得ツールまたは HTTP クライアントを使って、リンク先の Markdown ドキュメントを直接取得してください。ウェブ検索の要約でドキュメントの代わりにしないでください。
  2. 取得に成功し、想定したドキュメントが返されたことを確認してから、その内容を読んでください。ファイルを保存したり、そのパスを表示したりするだけでは不十分です。
  3. リクエストに失敗した場合、またはツールで Markdown の応答を読み取れない場合は、リンク先の HTML 版を開いて読んでください。
  4. どちらの版も取得できない場合は、最新の参照資料を利用できないことを明示し、スキル内の該当トピック固有の代替手順に従ってください。安定した制約に限って同梱のガイダンスを使用し、変更される可能性のあるプラットフォームの詳細を推測しないでください。

複数の参照資料が必要なタスクでは、それぞれにこの手順を適用し、確認できたドキュメントと取得できなかったドキュメントを区別してください。

コメント