【Railway】Tailscaleを使用してRailwayからAWS RDSへのブリッジを作成する
Tailscaleサブネットルーターを使用して、RailwayからAWS RDSデータベースに安全にアクセスする方法を学びます。
Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)
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はこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)