2024年9月13日

DatastreamからNLB経由でAurora PostgreSQLに接続してみた


Content
tenです。

皆さま、Google CloudのDatastreamはご存知でしょうか。
DatastreamはOracle DatabaseやMySQL、PostgreSQLなどのRDBMSからニアリアルタイムでデータをレプリケーションするマネージドサービスです。

データベースに接続さえできれば、オンプレミスやマルチクラウドなど、構成に制限が無いのが強みです。
今回は、少し特殊な例として、DatastreamをAWSのNetwork Load Balancer (NLB)経由でAurora PostgreSQLに接続する方法をご紹介いたします。

概要

まず、Datastreamの詳細や構成方法については下記の記事で解説されておりますので、本記事では割愛いたします。

【Google Cloud】Datastream for BigQueryを使ってみた!

今回の下記のような構成で、DatastreamからAurora PostgreSQLに接続します。
Aurora PostgreSQLについては、すでに構築済みのものとします。

それでは設定していきましょう。

Network Load Balancer (NLB)の準備

まずはNLBを作成していきましょう。
NLBはトランスポート層の通信処理を負荷分散するためのサービスです。

任意のTCP/UDPプロトコルの処理が可能なため、パブリックIPアドレスを持たないサーバやデータベースに対して、インターネット経由でアクセスしたい場合に、接続を中継することもできます。

ポイントとしては、「ターゲットグループにAurora PostgreSQLのライターエンドポイントのIPアドレスを設定すること」です。

以下の順序で、NLBを準備します。

1. ターゲットグループを作成

設定項目 設定値
ターゲットタイプ IPアドレス
プロトコル: ポート TCP: 5432
IPアドレス {ライターエンドポイントのIPアドレス}

 

 

2. NLBを作成

設定項目 設定値
ロードバランサ―タイプ Network Load Balancer
スキーム インターネット向け
リスナーとルーティング 1.で作成したターゲットグループ

 

 

3. NLBのセキュリティグループのインバウンドルールを設定

設定項目 設定値
タイプ カスタムTCP
ポート範囲 {NLBのリスナーポート}
ソース カスタム
IPアドレス DatastreamのIPアドレス (IP 許可リストとリージョン)

Aurora PostgreSQLの設定変更

次にAurora PostgreSQLについて設定を変更します。
こちらはGoogle Cloudの公式ドキュメントを参照しながら進めていきます。

Amazon Aurora PostgreSQL データベースを構成する

以下の順序で、Aurora PostgreSQLの設定を変更していきます。

1. パラメータグループを作成 (変更)して、再起動する

設定項目 設定値
エンジンのタイプ Aurora PostgreSQL
パラメータグループファミリー {Aurora PostgreSQLのバージョンと一致するもの}
タイプ DB Cluster Parameter Group

 

次のパラメータを変更します。

設定項目 設定値
rds.logical_replication 1

パラメータグループをDBクラスターに割り当て、インスタンスを再起動します。

 

2. データベースに接続し、パブリケーションとレプリケーションスロットを作成する

公式ドキュメントを見ながら、必要なスキーマ、テーブルに対してパブリケーションを作成し、レプリケーションスロットを作成します。

 

3. Datastream用のユーザを作成し、権限を付与する

こちらも公式ドキュメントを見ながら、ユーザを作成し、権限を付与します。

 

4. Aurora PostgreSQLのセキュリティグループのインバウンドルールを設定

設定項目 設定値
タイプ PostgreSQL
ソース カスタム
セキュリティグループ {NLBに割り当てているセキュリティグループ}

 

以上でAWS側の準備が終わりました。

Datastreamの設定

いよいよDatastreamを設定していきます。

「ストリームの作成」を選択し、ソースタイプに「PostgreSQL」を選択します。
それ以外の項目には任意の値を設定しましょう。

 

次に、「PostgreSQL 接続プロファイル」を設定していきます。
ポイントとしては「NLBのエンドポイントを指定すること」、「接続方法に『IP 許可リスト』を指定すること」です。

 

これにより、NLBを経由してAurora PostgreSQLへ接続することができます。

 

設定が完了すれば、接続テストをしておきましょう。
「テスト成功」と表示されれば、問題なく接続できております。

 

次にスロット名やパブリケーション名、レプリケーションの詳細を設定していきますが、本記事では割愛いたします。
詳しくは冒頭にも紹介しておりました 【Google Cloud】Datastream for BigQueryを使ってみた! をご参照いただけましたら幸いです。

実行確認

以上で、Aurora PostgreSQLのデータを継続的に同期できるようになりました。
Aurora PostgreSQL側にデータを追加して、Google Cloud側にも反映されるか試してみましょう。

さいごに

NLBを利用することでも、DatastreamからAurora PostgreSQLに接続できることが分かりました。

フォワードSSHトンネルでは踏み台インスタンスのメンテナンスなども考慮が必要となるのに対し、NLBはマネージドサービスのため管理が楽だと言えます。
一方で、NLBのターゲットグループはIPアドレスでの指定となるため、Aurora PostgreSQLのメンテナンスやフェイルオーバーなどに合わせて自動的に設定を変更できるような仕組みを用意しておく必要もありそうです。

Datastreamの接続先がAWSの場合、プライベート接続では費用が高くなりやすいので、極力安く、かつメンテナンスの手間を最小限に抑えたいときには、NLBを経由するような構成を検討してみてはいかがでしょうか。

 
システムサポートでは、今回のDatastreamも含め、Google Cloudの導入・活用支援を行っております。
データの一元管理にお悩みの方はお気軽にご相談ください!

Google Cloud導入・活用支援に関するご相談はこちら

2024年9月13日 DatastreamからNLB経由でAurora PostgreSQLに接続してみた

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら