Auroraのカスタムエンドポイントを確認してみた


Auroraにカスタムエンドポイントが…!
バックグラウンドジョブや解析用とwebを振り分けるのが簡単になりそうなので確認してみました。

TL;DR>Auroraのカスタムエンドポイントを使うと…

  • 特定のインスタンスをまとめたエンドポイントを作成できる!
  • 特定のインスタンスを除外した読み込みエンドポイントを作成出来る!
    • フェイルオーバーでのマスタースレーブ入れ替わりにも対応している!

実行イメージ

こんな構成が

こうなりました

コマンド例

カスタムエンドポイントA

$ aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \
  --endpoint-type reader \
  --db-cluster-identifier cluster_id \
  --excluded-members custom-endpoint-demo-09 custom-endpoint-demo-10 \
  --region $REGION

カスタムエンドポイントB

$ aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \
  --endpoint-type reader \
  --db-cluster-identifier cluster_id \
  --static-members custom-endpoint-demo-09 \
  --region $REGION

カスタムエンドポイントC

$ aws rds create-db-cluster-endpoint --db-cluster-endpoint-identifier custom-endpoint-doc-sample \
  --endpoint-type reader \
  --db-cluster-identifier cluster_id \
  --static-members custom-endpoint-demo-10 \
  --region $REGION

軽く解説

公式の通り実行するだけなのですが、現在(2018/11/13)はマネジメントコンソールからは制限があるので、CLIで実行するといろいろ出来ます
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html

重要パラメータ

  • endpoint_type
    • anyかreaderを選びます。anyにすると全インスタンスが対象、readerにすると読み込みインスタンスのみが対象になります。anyの場合だと、読み込みエンドポイントにしたつもりがフェイルオーバーでwriterが紛れ込んでくるので注意が必要です。
    • マネジメントコンソールからは現状anyのみの模様(やり方知ってたら教えてください)
  • excluded-members
    • 除外するインスタンスを指定します。この指定の場合はオートスケーリングで増加した場合もこのエンドポイントに追加されます
  • static-members
    • インスタンスを直接指定します
    • excluded-membersと共存は出来ません

マネジメントコンソールでの操作

パターン1: --static-members test-2 test-sidekiq --endpoint_type any

パターン2: --excluded-members test-sidekiq --endpoint_type any

Fin

※動作を確認したのみでまだ本番には投入しておりません!
本番導入から1週間経過し、全く問題なく快適に使えております!!