'リファレンスアーキテクチャ: Heroku で Amazon Redshift をピアリング'
最終更新日 2022年02月15日(火)
このアーキテクチャは、Heroku Private Space を AWS VPC とピアリングする方法を示します。このピアリングにより、Private Space で実行中のアプリから、Amazon Redshift クラスターや AWS RDS for SQL Server インスタンスなど、VPC で実行されている可能性があるリソースにアクセスする安全な方法が提供されます。
シナリオ
- AWS VPC で実行中の AWS サービス (Amazon RDS や Amazon Redshift など) がある。
- 1 つ以上の Heroku アプリと上記の AWS サービスをプライベート接続を介して通信させたい。
- 接続のトラフィックがパブリックインターネットを経由しないようにしたい。
アーキテクチャ
このリファレンスアーキテクチャでは、Private Space Peering を使用して、Heroku Private Space と AWS VPC の間にプライベートネットワーク接続を確立します。
ピアリングされた VPC 接続を介して Heroku アプリに接続する Amazon Redshift クラスター
このアーキテクチャは、VPC 内部で何らかの AWS サービスを実行している場合に有用です。たとえば、Amazon Redshift クラスターを使用してデータを分析している場合、VPC を Heroku アプリケーションに接続すると、分析のために Heroku Postgres データベースから Redshift クラスターにデータを安全に転送できます。
別の例として、AWS RDS for SQL Server インスタンスにデータを挿入する既存の統合がある場合を考えます。このアーキテクチャによって、Heroku アプリケーションと SQL Server インスタンスを橋渡しし、パブリックインターネットを経由しないデータアクセスを提供できます。
コンポーネント
必須
- お客様の Heroku アプリを Heroku Private Space で実行する必要があり、これには Heroku Enterprise が必要です。
- お客様の AWS アカウントに、VPC ピアリング接続リクエストを実行するためのアクセス許可が必要です。
実装ガイドライン
このアーキテクチャを実装するには、Private Space Peering のガイドラインに従います。
お客様の Private Space を、AWS サービスが稼働している VPC とピアリングした後は、その Private Space の内部の Heroku アプリケーションからサービスに直接アクセスできるようになります。たとえば、アプリで Redshift クラスターへの接続を確立して、データを転送したり分析を開始したりできます。
実装例
この Terraform スクリプトは、このシナリオの単純な実装を提供します。次のことを行います。
- Heroku Private Space を作成する
- Amazon Redshift クラスターと共に Amazon VPC を作成する
- Private Space と VPC をピアリングし、適切なセキュリティグループをセットアップする
- Redshift データベースに接続する Redshift クライアントアプリケーションを Heroku にデプロイする
Heroku での Terraform の使用方法の詳細は、「Heroku で Terraform を使用する」を参照してください。
利点と欠点
利点
- すべての通信のフローをプライベート接続に限定できます。
欠点
- VPC の設定と保守、特に、ネットワーク ACL とルーティングテーブルのセットアップの知識が必要です。
- お客様のプライベートネットワーク上で、Private Space 用にネットワーク空間を割り当てる必要があります。
- AWS Redshift でお客様の資格情報に変更があった場合、Heroku アプリの環境設定を手動で更新する必要があります。
その他の資料
- Private Space Peering
- Heroku で Terraform を使用する
- Amazon Redshift (AWS ドキュメント)