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 とのインテグレーション
  • データベースとデータ管理
  • Heroku Data For Redis
  • PrivateLink を使用した Private または Shield Space 内の Heroku Data for Redis への接続

PrivateLink を使用した Private または Shield Space 内の Heroku Data for Redis への接続

日本語 — Switch to English

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

最終更新日 2023年09月20日(水)

Table of Contents

  • Heroku の前提条件
  • Heroku エンドポイントのプロビジョニング
  • Amazon VPC エンドポイントのプロビジョニング
  • Heroku と Amazon VPC エンドポイントの接続
  • VPC エンドポイントを使用した EC2 から Heroku Data for Redis への接続
  • 制限

この記事では、AWS PrivateLink​ を使用して、AWS VPC と、Private Space​ または Shield Private Space​ で実行されている Heroku Data for Redis アドオンの間の安全な接続を作成する方法について説明します。このプロセスは、大きく分けて 3 つの手順で構成されます。

  1. Private または Shield Heroku Data for Redis アドオンでのエンドポイントサービスを作成する
  2. エンドポイントネットワークインターフェースを AWS VPC に作成する
  3. 2 つのエンドポイント間に安全な接続を確立する

接続の設定の一部として、承認されたアカウントのリストを指定し、VPC からプライベートアドオンへのアクセスを制限することができます。

この機能を使用するには、作成する Amazon VPC エンドポイントが、Heroku Data for Redis アドオンと同じリージョンにあるサブネットにプロビジョニングされている必要があります。

Heroku の前提条件

PrivateLink エンドポイントを設定するには、次の Heroku リソースが必要です。

  • Private Space または Shield Private Space。Heroku Dashboard か Heroku CLI のどちらかを使用して Private Space​ または Shield Private Space​ を作成します。

  • Heroku Data for Redis アドオンがアタッチされた、Private Space または Shield Private Space で実行されている Heroku アプリ。Private Space で実行されている Heroku Data for Redis インスタンスはすべて、private​ プランタイプのいずれかを使用します。Shield Private Space で実行されている Heroku Shield for Redis インスタンスはすべて、shield​ プランタイプのいずれかを使用します。

Heroku エンドポイントのプロビジョニング

手順 1: PrivateLink CLI プラグインを使用して Heroku Data をインストールする

$ heroku plugins:install data-privatelink

手順 2: AWS アカウント ID を取得する

AWS アカウント ID は、次のように AWS CLI を使用して取得できます。

$ aws sts get-caller-identity --output text --query 'Account'

123456789101

上記のコマンド例では、アカウント ID 123456789101​ が返されています。

アカウント ID は、AWS アカウントの My Account​ (マイアカウント) ページから取得することもできます。アカウント ID​ は、Account Settings​ (アカウント設定) セクションに表示されます。

サンプル AWS アカウントの 「My Account」 (マイアカウント) ウィンドウのスクリーンキャプチャ

手順 3: PrivateLink エンドポイントを作成する

次の Heroku CLI コマンドを使用して、PrivateLink エンドポイントを作成します (後で説明する値の置き換えに注意してください)。

$ heroku data:privatelink:create REDIS_ADDON_NAME --aws-account-id ACCOUNT_ID --app APP_NAME
  • REDIS_ADDON_NAME​ は、Redis アドオンの名前に置き換えます (例: ​redis-sushi-12345​)。
  • APP_NAME​ を自分のアプリ名に置き換えます。
  • ACCOUNT_ID​ は、Redis アドオンへのアクセスを受け取るべき AWS アカウントに置き換えます。次のいずれかのパターンに一致する ID を指定してください。
    • account-id
    • account-id​:user/username
    • account-id​:role/rolename

--aws-account-id​ フラグを複数回指定して、複数のアカウントを含めることができます。

次に示すのは、コマンドとそれに伴う出力の例です。

$ heroku data:privatelink:create redis-sushi-12345 --aws-account-id 123456789101:user/abc.xyz --app privatelink-vpc-endpoint-demo
Creating privatelink... done

Service Name: Provisioning
Status:       Provisioning

The PrivateLink is now being provisioned for redis-sushi-12345.
Run heroku data:privatelink:wait REDIS_URL -a APP to check the creation process.

新しい PrivateLink エンドポイントが利用可能になるまで、通常 5 ~ 10 分かかります。heroku data:privatelink:wait REDIS_URL --app APP_NAME​で進捗状況を追跡できます。

手順 4: エンドポイントのサービス名を取得する

PrivateLink エンドポイントのプロビジョニングが終了したら、次のコマンドを使用してその詳細を表示します。

$ heroku data:privatelink REDIS_ADDON_NAME --app APP_NAME

REDIS_ADDON_NAME​ を Private Redis アドオンの名前に置き換え、APP_NAME​ をアプリの名前に置き換えます。

次に示すのは、コマンドとそれに伴う出力の例です。

$ heroku data:privatelink redis-sushi-12345 --app privatelink-vpc-endpoint-demo
=== privatelinks for redis-sushi-12345
Service Name:         com.amazonaws.vpce.us-east-1.vpce-svc-0410a2e25933fe8ec
Status:               Operational

=== Allowed Accounts
ARN                                    Status
arn:aws:iam::123456789101:user/abc.xyz Active

Your privatelink is now operational.
You must now copy the Service Name and follow the rest of the steps listed in https://devcenter.heroku.com/articles/heroku-redis-via-privatelink.

コマンドの出力から Service Name​ フィールドの値をコピーします (上記の例では、値は com.amazonaws.vpce.us-east-1.vpce-svc-0410a2e25933fe8ec​)。この値は、Amazon VPC エンドポイントをプロビジョニング​するために必要になります。

Amazon VPC エンドポイントのプロビジョニング

このセクションの手順は、Amazon VPC ダッシュボードから実行します。

手順 1: セキュリティグループを作成して設定する

エンドポイントには、適切な ingress セキュリティルールが設定されたセキュリティグループが必要です。VPC ダッシュボードの 「Security Groups」 (セキュリティグループ) タブで Create security group​ (セキュリティグループの作成) をクリックします。

AWS コンソールの 「Create security group」 (セキュリティグループの作成) ウィンドウを示すスクリーンキャプチャ

適切なセキュリティグループ名と説明を指定し、目的の VPC を選択してから Create​ (作成) をクリックします。

AWS コンソールで編集されているセキュリティグループ名と説明を示すスクリーンキャプチャ

一覧から新しく作成されたセキュリティグループを選択し、Actions > Edit inbound rules​ (アクション> インバウンドルールの編集) をクリックします。

選択されているセキュリティグループを示すスクリーンキャプチャ

すべての有効な IP アドレスからポート 6379​ への TCP アクセスを有効にして、Save rules​ (ルールの保存) をクリックします。

手順 2: エンドポイントを作成する

VPC ダッシュボードの 「Endpoints」 (エンドポイント) タブに移動し、Create Endpoint​ (エンドポイントの作成) をクリックします。

AWS コンソールの 「Create Endpoint」 (エンドポイントの作成) ウィンドウを示すスクリーンキャプチャ

表示された 「Create Endpoint」 (エンドポイントの作成) フォームで、Find service by name​ (サービスを名前で検索) オプションを選択して、以前に取得​した Service Name​ の値を貼り付けます。

次に、Verify​ (確認) をクリックして、使用可能なサブネットの一覧を表示します。

作成されているエンドポイントを示すスクリーンキャプチャ

以前に作成したセキュリティグループを VPC エンドポイントにアタッチして Create endpoint​ (エンドポイントの作成) をクリックします。

アタッチされているセキュリティグループ

エンドポイントは pending acceptance​ の初期ステータスで作成され、5 ~ 10 分後に available​ に遷移します。

利用可能な状態の VPC エンドポイント

Heroku と Amazon VPC エンドポイントの接続

Amazon VPC エンドポイントが available​ になったら、VPC が Heroku Data for Redis アドオンと通信できるようにするための URL を取得できます。

まず、PrivateLink エンドポイントのエンドポイント ID​ を取得し、その末尾の 17 文字の文字列を抽出します。この文字列を大文字に変換して​、下記のコマンドで使用します。

たとえば、エンドポイント ID が vpce-01c87ae3c05563935​ である場合、このエンドポイント ID は 01C87AE3C05563935​ になります。

取得した文字列でプレースホルダーを置き換えて、次のコマンドを実行します。

$ heroku config --app your_app_name | grep ENDPOINT_ID_HERE

このコマンドは、AWS VPC エンドポイントの接続 URL と、Redis アドオンの対応する接続文字列を表示します。接続文字列は次の形式です。

redis://user:password@vpc-endpoint-dns-name:6379

これで、この接続文字列を使用して、AWS VPC 内のアプリケーションをプライベートの Heroku Data for Redis アドオンに接続できるようになりました。次に示すのは、コマンドとそれに伴う出力の例です。

$ heroku config --app privatelink-vpc-endpoint-demo | grep 01C87AE3C05563935

REDIS_ENDPOINT_01C87AE3C05563935_URL:           redis://user:password@vpc-endpoint-dns-name:6379

この機能の使用に関して問題または気になる点がある場合は、サポートチケット​を開いてください。

VPC エンドポイントを使用した EC2 から Heroku Data for Redis への接続

VPC エンドポイントを設定したら、AWS VPC 内に Heroku Data for Redis に接続するための EC2 インスタンスを作成できます。

EC2 ダッシュボードで Launch Instance​ (インスタンスの起動) をクリックし、AMI とインスタンスの種類を選択します。この例では、Ubuntu t2.micro インスタンスが作成されます。

EC2 ダッシュボードの AMI のウィンドウ

EC2 ダッシュボードのインスタンスの種類のウィンドウ

インスタンスの詳細を設定するときは、以前に作成した​セキュリティグループがある VPC ネットワークを選択し、適切なサブネットを選択します。Review and Launch​ (確認して起動) をクリックし、EC2 インスタンスを起動します。

EC2 インスタンスの起動

インスタンスのステータスが running​ に移行し、すべてのステータスチェックに合格したら、インスタンスの作成中に指定した SSH キーのペアを使用してそのインスタンスに接続します。

インスタンスに接続されたら、接続文字列を使用して Redis に安全に接続します。ただし、ポート番号は、Stunnel 経由で接続するときの 6380​ ではなく、6379​ であることに注意してください。

次の出力は、Ruby でサンプルの EC2 インスタンス内から Heroku Data for Redis アドオンに接続するために使用されている接続文字列を示しています。

ᐅ ssh ubuntu@ec2-1-2-3-4.compute-1.amazonaws.com
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-1021-aws x86_64)
...<snip>...
ubuntu@ip:~$ sudo apt install ruby && sudo gem install redis
...<snip>...
ubuntu@ip:~$ irb
irb(main)> require "redis"
=> true
irb(main)> url = URI.parse("redis://password@vpce-id-secret.vpce-svc-id.us-east-1.vpce.amazonaws.com:6379")
irb(main)> url.scheme = "rediss"
irb(main)> $redis = Redis.new(url: url, driver: :ruby, ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
irb(main)> $redis.ping
=> "PONG"

制限

  • 作成する Amazon VPC エンドポイントは、Heroku Data for Redis アドオンと同じリージョンにあるサブネットにプロビジョニングされている必要があります。
  • ユーザー独自の VPC と Heroku Data VPC の間で共通のアベイラビリティーゾーン内の Private Redis アドオンにしか接続できません。
  • Heroku Data for Redis アドオンへの完全に安全なアクセスを確保するために VPC のセキュリティを確認することはユーザーの責任です。

関連カテゴリー

  • Heroku Data For Redis
暗号化鍵を使用した Heroku Data for Redis の暗号化 暗号化鍵を使用した Heroku Data for Redis の暗号化

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