AIイノベーションズ
Railway/Tutorials

Tailscaleを使用してRailwayからAWS RDSへのブリッジを作成する

Tailscaleサブネットルーターを使用して、RailwayからAWS RDSデータベースに安全にアクセスする方法を学びます。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

Tailscaleを使用してRailwayからAWS RDSへのブリッジを作成する

このチュートリアルでは、Tailscaleサブネットルーターを使用して、RailwayプロジェクトからAWS Virtual Private Cloud (VPC)内にあるAWS RDSデータベースへ、安全なプライベート接続を確立する方法を説明します。

目標

  • Railwayアプリケーションが、パブリックインターネットを経由せずに、プライベートにAWS RDSデータベースと通信できるようにする。
  • Tailscaleをセキュアなネットワークブリッジとして設定する。

前提条件

  • Railwayアカウント
  • AWSアカウント(RDSデータベースがVPC内で実行中であること)
  • Tailscaleアカウント

RailwayからRDSへプライベートにトラフィックを送信する方法

TailscaleサブネットルーターをRailwayプロジェクト内にデプロイし、AWS VPC内のEC2インスタンスなどをTailscale出口ノードとして設定します。これにより、RailwayサービスからのトラフィックはTailscaleネットワークを通り、VPC内の出口ノードを経由してRDSデータベースに到達します。

サンプルプロジェクトのクローン

このチュートリアル用のサンプルプロジェクトを git clone します。

TailscaleでスプリットDNSを設定する

Tailscale管理コンソールで、VPCのプライベートDNS解決に使用するネームサーバーを設定します(スプリットDNS)。

Tailscale認証キーの生成

RailwayのTailscaleクライアントがTailscaleネットワークに参加するために、再利用可能でエフェメラルな認証キーを生成します。

terraform.tfvarsの作成

AWSリソース(VPC、サブネット、EC2インスタンスなど)をプロビジョニングするためのTerraform変数を定義します。

デプロイ

Terraformを使用して、AWSインフラストラクチャをデプロイします。

アドバタイズされたサブネットルートの承認および/またはデバイスでのルート受け入れの有効化

Tailscale管理コンソールで、EC2出口ノードがアドバタイズするVPCのサブネットルートを承認します。

接続の確認

RailwayサービスからTailscaleネットワークを経由して、VPC内のリソースにpingを送信し、接続を確認します。

RDSインスタンスへの接続

アプリケーションのデータベース接続文字列を、RDSのエンドポイントを指すように設定します。

Railtailをプロジェクトにデプロイ

Tailscaleサブネットルーターとして機能するRailtailサービスをRailwayプロジェクトにデプロイします。

RDSへのトラフィックのブリッジ

これで、Railwayアプリケーションは、Railtailサービスを介して、プライベートにRDSデータベースと通信できるようになります。

クリーンアップ

チュートリアル完了後、不要なリソース(EC2インスタンスなど)を削除して、コストが発生しないようにします。

トラブルシューティング

接続の問題が発生した場合は、TailscaleのACL、AWSのセキュリティグループ、およびネットワークACLの設定を確認してください。

追加リソース

Railwayはこちら

PR