Fargate用にRDS Ploxyを作成


はじめに

FargateにRDS Ploxyを使用する機会があったため、手順をまとめます。
RDS Ploxyについてはこちら↓

Amazon RDS Proxy を使用すると、アプリケーションでデータベース接続をプールおよび共有して、アプリケーションのスケーリング能力を向上させることができます。RDS Proxy は、アプリケーション接続を維持しながらスタンバイ DB インスタンスに自動的に接続することで、データベースの障害に対するアプリケーションの耐障害性を高めます。RDS プロキシを使用すると、データベースにAWS Identity and Access Management(IAM)認証を適用し、クレデンシャルをAWS Secrets Managerに安全に保存することもできます。

コネクションプーリングはこちらがわかりやすいです↓

現在のPloxy対象のDB

  • RDS for MySQL- MySQL 5.6、5.7 および 8.0
  • RDS for PostgreSQL –バージョン 10.10 以降のマイナーバージョン、バージョン 11.5 以降のマイナーバージョン、およびバージョン 12.5 以降のマイナーバージョン
  • 上記のAuroraも対象です。

事前構築

  • Aurora MySQL 5.6
  • fargate

構築は、ALB→fargate→Auroraという流れになります。
Ploxyを導入すると、ALB→fargate→Ploxy→Auroaという構築になります。

下記記事を参考にしました。

Secrets Managerを作成

RDSのデータベース認証情報のSecretsを作成します。
Auroraのマスターユーザーマスターパスワードを入力します。
暗号キーは、デフォルトのDefaultEncryptionKeyでよいです。



自動ローテーションを設定は、しなくてよいです。

Ploxyのセキュリティーグループを作成

PloxyとAuroraのSGのを設定します。
基本的に、ALB→fargate→Ploxy→Auroaという流れですので、PloxyとAuroraのインバウンド設定が必要です。
fargate(サーバー)のSGは、ELBのみ許可しています。

設定 タイプ ポート ソース
fargate カスタムTCP 80 ALBのSG
Ploxy MySQL/Aurora 3306 fargateのSG
Aurora MySQL/Aurora 3306 PloxyのSG

Ploxyを作成

Ploxyを作成します

- データベース作成済みのAurora
- リーダーエンドポイント含める
- Secrets Manager シークレット先程作成したSecrets
- IAM ロールIAM ロールを作成(Secretsが使えるように、Ploxy用のIAMロールを作成してくれる)
- IAM 認証無効(IAMロールのみの認証になる)
- VPC セキュリティグループ先程作成したSG


ライターとリーダーエンドポイントが作成されるため、fargateの接続先エンドポイントを修正し、デプロイすると、Ploxyに接続できます!

CloudWatchメトリクス

Ploxyのメトリクス一覧はこちら↓

参考