RDS コンソールからも既存の RDS と EC2 間での接続設定を自動で出来るようになりました

2022.10.15

いわさです。

本日のアップデートで EC2 と RDS 間の接続設定(セキュリティグループ周り)を自動構成する機能が登場しました。

実は最近類似の機能が2つほどリリースされていて、また!?という感じの方もいらっしゃるかと思います。
実はちょっと今までのものと違います。そのあたりも確認してみましょう。

類似機能について

まず先に冒頭で挙げた2つの関連機能を軽く振り返ります。

RDS 新規作成時に EC2 への接続を自動構成する機能

こちらは新規 RDS を構築する際に既存 EC2 を選択することでセキュリティグループと DB サブネットグループなどを自動構成してくれる機能です。

こちらは既存インスタンスに対して構成することは出来ませんでした。

EC2 コンソールから RDS への接続を自動構成する機能

こちらは同一 VPC 内に起動済みの EC2 と RDS がある場合に EC2 のコンソールから接続ボタンを押すことでワンクリックでセキュリティグループを自動構成してくれるものでした。

今回のアップデート

結論から言うと今回のアップデートは、先程振り返った「EC2 コンソールから RDS への接続を自動構成する機能」を RDS コンソールでも行えるようになったと解釈して良さそうです。
以下のように対象の RDS インスタンスあるいは Aurora クラスターを選択し「Set up EC2 connection」を選択します。
インスタンスは起動済みである必要があります。

自動構成ウィザードが開かれるので対象の EC2 インスタンスを選択すると、あとは自動で検証と作成が行われます。

同一 VPC 内の 起動済み EC2 インスタンスが前提条件です。
また、操作ユーザーが EC2 の変更やリストアップする権限が必要です。
詳細は以下をご確認ください。

以下は確認画面です。
セキュリティグループの作成例が可視化されていてわかりやすいです。

ただし、本日時点でこの画面では rds-ec2-7 と ec2-rds-7 が作成されると説明されていますが、実際に作成されたセキュリティグループは rds-ec2-1 と ec2-rds-1 でした。修正されそうですね。

上記の自動処理の結果を見る限り、EC2 コンソールから自動構成した場合と同じな感じがしますね。
セキュリティグループの命名も同じです。

では作成されたセキュリティグループ構成を確認してみます。

RDS に新しく追加されたセキュリティグループ

このあたりも EC2 コンソールでの自動構成と同じですね。
RDS 側では EC2 セキュリティグループからのインバウンドが許可されています。

EC2 に新しく追加されたセキュリティグループ

EC2 側では RDS セキュリティグループへのアウトバウンドが許可されています。

接続ポートを変更している場合はそれに従って構成してくれる

前回 EC2 コンソールで確認した際に忘れていたのですが、今回は RDS のカスタムポートを構成した場合の挙動も確認してみました。
結論としては変更した内容でセキュリティグループも対応されるので、カスタムポートの場合は使えませんよという感じではなかったです。

3306 -> 13306 に変更しています。

EC2 RDS ともに作成されたセキュリティグループでは 13306 が使用されていますね。

Aurora クラスターも対象だが Babelfish ポートは未対応

RDS インスタンスだけでなく Aurora クラスターも対応しています。
Aurora の場合はインスタンスではなくクラスターを選択して同じ操作を行います。インスタンスの場合は非活性で操作出来ません。

ただし今回も Babelfish を有効化してみたのですが 1433 は自動構成に含まれていませんでした。
こちらも修正されることを期待しましょう。

さいごに

本日は RDS コンソールからも既存の RDS と EC2 間での接続設定を自動で出来るようになったので確認してみました。

今まで RDS コンソール上で新規作成時に選択できたオプションとは別もので利用シーンが異なる点がわかりました。あちらは新規作成時のみ使う形ですね。

EC2 コンソールからの自動構成との違いは無さそうなので、こちらは EC2 コンソールでも RDS コンソールでも好きなほうを使えば良さそうかなという感じです。
強いて挙げるのであれば EC2 コンソール側は RDS インスタンスを選択して接続ボタンを押すと自動構成処理がすぐに開始されますが、RDS コンソールの場合はどういうリソースが作成されるのかをプレビュー出来るという違いはありますね。