Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Working with Node.js
      • Node.js Behavior in Heroku
      • Troubleshooting Node.js Apps
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Working with AI
    • Heroku Inference
      • Inference API
      • Quick Start Guides
      • AI Models
      • Inference Essentials
    • Vector Database
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • セキュリティ
  • Private Space
  • インフラストラクチャネットワーキング
  • Private Space ピアリング

Private Space ピアリング

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2023年06月14日(水)

Table of Contents

  • ピアリングの前提条件
  • Private Space へのピアリング接続の作成
  • ルートの設定
  • セキュリティグループの設定
  • ネットワーク ACL の設定 (上級)
  • ピアリング接続の破棄
  • その他の考慮事項と制限

Private Space ピアリングを使用すると、Heroku Private Space​ で実行されている dyno と、お客様により制御される AWS VPC の間にプライベートネットワーク接続を確立できます。この接続はパブリックインターネットを経由しません。

Private Space ピアリングを介した通信を示す図

ピアリングの前提条件

  • VPC は、そのネットワーク設定において、互換性のある IPv4 CIDR ブロックを使用する必要があります。
  • VPC は RFC1918 CIDR ブロック (10.0.0.0/8​、172.16.0.0/12​、または 192.168.0.0/16​) を使用する必要があります。
  • VPC の CIDR ブロックは Private Space の CIDR 範囲と重複してはなりません。デフォルトの範囲は 10.0.0.0/16​、10.1.0.0/16​、および 172.17.0.0/16​ です。Private Space の CIDR 範囲は、新しい Space を作成​するときに指定できます。
  • お客様の AWS アカウントに、VPC ピアリング接続リクエストを実行するためのアクセス許可が必要です。

リージョン間ピアリングにはいくつかの制限があります。詳細は、VPC ピアリングに関する AWS ドキュメント​を参照してください。

Private Space へのピアリング接続の作成

ピアリングを設定するには、AWS VPC からピアリングリクエストを送信した後、Heroku ダッシュボードまたは CLI でリクエストを確認します。

ピアリングリクエストを送信するには、AWS アカウント ID と、Private Space の VPC ID を知っている必要があります。heroku spaces:peering:info​ コマンドを使用してこの情報を取得できます。

$ heroku spaces:peering:info spaces-peering-example
=== amerine-peering-demo Peering Info
AWS Account ID:    847227832372
AWS Region:        us-east-1
AWS VPC ID:        vpc-e291cc85
AWS VPC CIDR:      10.0.0.0/16
Space CIDRs:        10.0.128.0/20, 10.0.144.0/20, 10.0.0.0/20, 10.0.16.0/20
Unavailable CIDRs: 10.1.0.0/16
  • AWS Account ID​ および AWS VPC ID​ フィールドには、AWS 経由でピアリングリクエストを実行するときに必要な情報が含まれます。

  • AWS VPC CIDR​ フィールドには、ピアリング相手の Private Space VPC によって使用されている CIDR ブロックが含まれます。

  • Space CIDRs​ は、dyno と ELB のアドレスの割り当て元になる CIDR ブロックです。この情報を使用して、(/16​ ブロックである AWS VPC CIDR ではなく) CIDR ブロックを VPC 内でルーティングできます。

ピアリング接続を開始する前に、VPC が AWS VPC CIDR​ または Unavailable CIDRs​ の値と重複していないことを確認してください。

ピアリングリクエストは、AWS CLI または AWS 管理コンソールを使用して開始できます。このガイドでは、AWS コマンドラインユーティリティの create-vpc-peering-connection​ コマンドを使用してピアリングを開始する方法を示します。

$ aws ec2 create-vpc-peering-connection --vpc-id vpc-YOUR_VPC_ID --peer-vpc-id vpc-e291cc85 --peer-owner-id 847227832372
{
    "VpcPeeringConnection": {
        "Status": {
            "Message": "Initiating Request to 847227832372",
            "Code": "initiating-request"
        },
        "Tags": [],
        "RequesterVpcInfo": {
            "OwnerId": "YOUR_AWS_ID",
            "VpcId": "vpc-YOUR_VPC_ID",
            "CidrBlock": "10.100.0.0/16"
        },
        "VpcPeeringConnectionId": "pcx-111aaa111",
        "ExpirationTime": "2016-09-26T22:57:33.000Z",
        "AccepterVpcInfo": {
            "OwnerId": "847227832372",
            "VpcId": "vpc-e291cc85"
        }
    }
}

AWS でピアリングリクエストを実行した後、Heroku CLI の spaces:peerings​ コマンドを使用してリクエストを追跡できます。対象のピアリングリクエストは、Status​ が pending-acceptance​ であるエントリです。

$ heroku spaces:peerings spaces-peering-example
=== spaces-peering-example Peerings
PCX ID        Type            CIDR Block     Status              VPC ID              AWS Region         AWS Account ID  Expires
────────────  ──────────────  ─────────────  ──────────────────  ──────────────────  ─────────────────  ──────────────  ────────────────────
pcx-111aaa111 unknown         10.100.0.0/16  pending-acceptance  vpc-YOUR_VPC_ID     YOUR_AWS_REGION    YOUR_AWS_ID     2016-09-26T22:57:33Z
******        heroku-managed  10.1.0.0/16    active              ******              ******             ******

CLI コマンド spaces:peerings:accept​ を使用してピアリング接続を受け入れることができます。次のように、リクエストの PCX ID​ を含めます。

$ heroku spaces:peerings:accept pcx-111aaa111 --space spaces-peering-example
Accepting and configuring peering connection pcx-111aaa111

ピアリングリクエストを受け入れた後、spaces:peerings​ コマンドを使用して接続の詳細を検査できます。Type​ が customer-managed​ と表示されている接続が対象です。

$ heroku spaces:peerings spaces-peering-example
=== spaces-peering-example Peerings
PCX ID        Type            CIDR Block     Status      VPC ID              AWS Region         AWS Account ID  Expires
────────────  ──────────────  ─────────────  ──────────  ──────────────────  ─────────────────  ──────────────  ────────────────────
pcx-111aaa111 unknown         10.100.0.0/16  active      vpc-YOUR_VPC_ID     YOUR_AWS_REGION    YOUR_AWS_ID     2016-09-26T22:57:33Z
******        heroku-managed  10.1.0.0/16    active      ******              ******             ******

Heroku では、特定のアドオンパートナーへのプライベートネットワーク接続を許可するために、Private Space 内の他のピアリング接続を管理します。これらの接続はタイプが heroku-managed​ または heroku-postgresql​ であり、変更できません。

ルートの設定

ピアリング接続を確立した後、Private Space と VPC の間でパケットをルーティングできるよう、VPC 内のルートテーブルを更新する必要があります。

まず、次の AWS CLI コマンドを使用して VPC のルーティングテーブル ID を取得します。

$ aws ec2 describe-route-tables

使用している VPC と同じ VPC ID を持つルートテーブルを探し、そのルートテーブル ID を取得します。

この時点で、Private Space CIDR 全体に対して 1 つのルートを追加する (こちらを推奨) か、VPC 内のコンポーネントが通信するリソースを含むサブネット用に特定のルートを追加するかを選択できます。

オプション 1: Private Space CIDR ブロック全体に対して 1 つのルートを追加する (推奨)

AWS CLI コマンドの create-route​ で、ルーティングテーブルの ID を指定します。

$ aws ec2 create-route --route-table-id rtb-your-route-table-id --destination-cidr-block 10.0.0.0/16 --vpc-peering-connection-id pcx-111aaa111

destination-cidr-block​ は Private Space の CIDR 範囲である必要があります。

オプション 2: 特定の Private Space サブネット用に複数のルートを追加する

$ aws ec2 create-route --route-table-id rtb-your-route-table-id --destination-cidr-block 10.0.1.0/20 --vpc-peering-connection-id pcx-111aaa111

destination-cidr-block​ 引数は、heroku spaces:peering:info​ コマンドで指定された Space CIDRs​ のいずれかと一致する必要があります。個々の Space CIDRs​ に対して create-route​ コマンドを実行する必要があります。

セキュリティグループの設定

VPC 内のリソースに割り当てられたセキュリティグループで、Private Space からのトラフィックを許可していることを確認する必要があります。

たとえば、EC2 インスタンス上の Web サーバーがポート 8000​ でリッスンしている場合、Private Space 内の dyno IP 範囲 (例: 10.0.144.0/20 および 10.0.128.0/20) のそれぞれからポート 8000​ へのアクセスを許可するインバウンドルールを作成する必要があります。

設定されたインバウンドルールを示すスクリーンショット

ネットワーク ACL の設定 (上級)

すべてのインバウンドおよびアウトバウンドトラフィックを許可するネットワーク ACL がデフォルトで VPC に設定されており、ほとんどのお客様はセキュリティグループによってリソースレベルでトラフィックを制限します。 組織でネットワーク ACL によってサブネットへのトラフィックを制限している場合、Private Space からのインバウンドトラフィックを許可するトラフィックルールを作成する必要があります。

たとえば、EC2 インスタンス上の Web サーバーがポート 8000​ でリッスンしている場合、Private Space 内の dyno IP 範囲 (例: 10.0.144.0/20 および 10.0.128.0/20) のそれぞれからポート 8000​ へのアクセスを許可するインバウンドルールを作成する必要があります。

ACL で制限されたトラフィックに対するインバウンドルールの設定

ピアリング接続の破棄

ピアリング接続を削除する必要がある場合、heroku spaces:peerings:destroy​ コマンドを使用できます。破棄する接続の PCX ID​ を指定します。

$ heroku spaces:peerings:destroy pcx-111aaa111 --space amerine-peering-demo
 ▸    Destructive Action
 ▸    This command will attempt to destroy the peering connection pcx-111aaa111
 ▸    To proceed, type pcx-b3a62eda or re-run this command with --confirm pcx-111aaa111

> pcx-111aaa111
Tearing down peering connection pcx-111aaa111

その他の考慮事項と制限

  • <appname>-<random-identifier>.herokuapp.com​ またはカスタムドメイン名にある Private Space 内の Web プロセスへの接続は、ピアリング接続ではなく​パブリックインターネット経由で行われます (Internal Routing)​ を使用する場合を除く)。
  • VPC 内の IP アドレスのうち、プライマリ CIDR ブロックに含まれるアドレスにしか接続できません。セカンダリ CIDR ブロックを VPC に追加した場合、それらのブロックは Private Space から到達できなくなります。
  • Private Space 内の dyno に VPC から接続することは可能ですが、事前に IP アドレスを知っている必要があります。dyno にはパブリック DNS レコードはありません (Internal Routing)​ を使用する場合を除く)。
  • Private Space 内の Postgres、Kafka、Redis などのデータサービスに、ピアリングされた VPC から直接接続することはできません。
  • dyno は、VPC にピアリングされている他のネットワークに直接接続できません。そのような接続を可能にするためには、代わりに VPC 内でプロキシまたはロードバランシングサービスを実行する必要があります。
  • 最大 5 つの AWS VPC を Private Space にピアリングできます。5 つを超える VPC を Private Space にピアリングする必要がある場合は、サポートチケットを開いて​ください。

関連カテゴリー

  • インフラストラクチャネットワーキング
Private Space VPN 接続 Private Spaces と Salesforce の間の信頼関係接続の確立

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices