0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Amazon RDS for PostgreSQL のクロスリージョンレプリケーションの通信にネットワークの設定が必要か確認してみた。

Posted at

はじめに

記事をご覧いただきありがとうございます。
本記事ではAmazon RDS for PostgreSQL の(クロスリージョン)レプリケーションの通信について調べています。
レプリケーションの通信のルーティングは自身で行わないといけないのか、AWSの裏側で処理されているのか確認しました。
設計で同じ疑問に悩んでいる人の一助になれば幸いです。

AWSを触り始めたばかりなので誤り等あるかもしれません。
見つけた際は暖かくご指摘いただけますと幸いです。

結論

Amazon RDS for PostgreSQL のクロスリージョンレプリケーションはAWSの裏側で通信されており、自身でVPC ピアリングやルーティングの設定は不要という結論になりました。

設定しなくていい!やったね!

目次

はじめに
目次
検証方法
手順
まとめ

検証方法

以下のような構成を作成し、データベースがレプリケーションされていることを
Cloud9経由で確認しました。
AWS_rds_replication.drawio.png
インターネットゲートウェイはCloud9に接続しターミナルを操作するために配置しています。

検証内容

検証内容について書いていきます。


注意事項

検証の手順を以下に掲載していますが、AWSで同じ構成を作成した場合、
料金の発生する可能性があります。
請求について責任はとれませんのでご了承ください。


VPC・サブネット・ルートテーブルの作成

私の場合、1からひとつづつ作成しましたが、ルートテーブルの設定等で苦戦したので
VPCなどを作成から作ることをおすすめします。

東京リージョンの構成
image.png
大阪リージョンの構成
image.png

ap-northeast-1a のsubnet_rds_replicationにプライマリDBを構築し
ap-northeast-3aのtest_subnet_rds_replication_2にレプリカを作成した

RDSを作成したルートテーブルは以下
外には出られないようになっている

東京リージョン
image.png
大阪リージョン
image.png

RDSの作成

今回はRDS for PostgreSQL を無料利用枠で作成する。
Cloud9からログインできるようパスワードを設定しておく
image.png

バックアップは有効にしないとレプリカの作成ができないらしい
image.png
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.Create
リードレプリカの作成を参照

レプリカの作成

DBサブネットグループに関して
ここですこしハマった

レプリカを作成時DBサブネットグループを選択する箇所があるが、
事前に大阪リージョンでサブネットグループを作成する必要がある。
また、DB サブネットグループを作成する際2つ以上のAZとAZ内のサブネットを選択する必要がある。
無しを選択できるがその場合はデフォルトのVPCに作成される。
image.png
image.png
↑なしを選択して作成できなかった例

レプリケーションの確認

プライマリDBにCloud9からアクセスしてテーブルを以下のように設定
image.png

レプリカDBにアクセスしテーブルを確認
image.png

同期できていることが確認できる

まとめ

  • RDS for PostgreSQLのレプリケーションはAWSの裏側で通信されていてネットワークの設定は不要
  • RDSのレプリカ作成時にDBサブネットグループを作成が必要

最後に

今回記事を初めて書いたので見づらい点があったと思いますが
最後まで見ていただきありがとうございます。

誤りなどがありましたらご指摘いただけますと幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0