Amazon RDS の作成ウィザード内で既存 EC2 インスタンスを選択して自動でネットワーク構成をセットアップするオプションが利用出来るようになりました

2022.08.23

いわさです。

本日のアップデートで Amazon RDS の作成ウィザード内に、指定した EC2 からの接続を行えるようにするためのネットワーク構成を自動でセットアップするオプションが追加されました。

本日はどのような使い勝手なのか調べてみましたのでご紹介します。

使い方

従来から RDS を作成する際に構築先の VPC や DB サブネットグループ、セキュリティグループなどを選択していたと思います。
ここに、各ネットワークを選択する変わりにターゲットとなる EC2 インスタンスを選択することで対象の VPC などなどの設定を自動でセットアップすることが出来るようになりました。

このオプションは RDS でも Aurora でも、どのエンジンでも利用出来ます。

従来

「Don't connect to an EC2 compute resource」が従来の設定でデフォルトになっています。
以下のように VPC、サブネットグループ、パブリックアクセス、 VPC セキュリティグループなど、既に作成済みのネットワークコンポーネントを選択する形でした。

新しいオプション

新しいオプションでは以下のように構築済みの EC2 インスタンスを 1 つだけ選択します。
それによって、EC2 と同一の VPC 上 に自動でセットアップされます。
そして、各コンポーネントは AWS 推奨のベストプラクティスに則ってプライベートネットワーク上にセットアップされる形となるようです。

まず、VPC は EC2 と同じ VPC が選択されます。

そして DB サブネットグループについてはいくつかの条件で既存のものを使うか自動で作成してくれます。
また、DB サブネットグループの作成に必要なサブネットが存在していない場合はサブネット自体も自動で追加してくれます。

  • プライベートサブネットで構成されている DB サブネットグループが存在している場合はそれを使う
  • プライベートサブネットで構成されている DB サブネットグループが存在していない場合は自動で作成する
    • 有効なプライベートサブネットがある場合はそれらを使って DB サブネットグループを新規作成する
    • 有効なプライベートサブネットがない場合は、必要なサブネットも作成した上で DB サブネットグループを新規作成する

パブリックアクセスは「なし」のみで「あり」は選択出来ません。
セキュリティグループも自動で作成されます。

ちなみに、自動でセットアップされるのは「接続」部分のみで他のオプションは全て従来のままです。

ためしてみる: パブリックサブネットのみの VPC

まずは以下のようにパブリックサブネットが 2 つある VPC で試してみます。

RDS の接続構成で EC2 を選択します。

プライベートサブネットが自動で 3AZ 分追加され、それらで構成される DB サブネットグループが追加されていました。

また、セキュリティグループが 2 つ追加されています。
RDS のインバウンド用と、どうやら EC2 のアウトバウンド用のものが追加されているようです。

後者のセキュリティグループは上記のように既存 EC2 に追加されていました。

ためしてみる: プライベートサブネットありの VPC - 1

次は以下のようにプライベートサブネットありで試してみます。
CIDR は VPC の自動セットアップウィザードにまかせてデフォルトで行ってみます。

どうやら既存のプライベートサブネットを使わずに、新規でプライベートサブネットを作成しようとしているみたいです。
そして CIDR がコンフリクトして作成に失敗しています。むむ...

さらに、その場合なぜか作成された RDS は デフォルト VPC 上に作成されていました。 こ、これは...

ためしてみる: プライベートサブネットありの VPC - 2

AZ が 2 つだとダメなのかな?と思い 3AZ で試してみました。

既存のプライベートサブネットは無視して新しくプライベートサブネットが 3 つ作成されてしまいました。

ためしてみる: プライベートサブネットありの VPC - 3

まさか名前か?と思ってサブネットに自動生成されるものと似たような名前をつけて見ました。
サブネットのルートテーブルも自動生成される際と同じ名前のルートテーブルを作成しました。

今度は自動生成されずに、既存のプライベートサブネットを利用した上で新しい DB サブネットグループが作成されました。
これは一番期待した動きに近いですね。

さいごに

本日は Amazon RDS の作成ウィザード内で既存 EC2 インスタンスを選択して自動でネットワーク構成をセットアップするオプションが利用出来るようになったので試してみました。

自動生成の際の前提条件などはドキュメントとしては以下に記載があります。
ただし、今回の記事で紹介したようなサブネット周りの詳しい仕様が記載されていなかったので正直ちょっとわからないですね。

Creating an Amazon RDS DB instance - Amazon Relational Database Service

逆にプライベートサブネットを自動生成してもらう前提で使うほうが使いやすいのかなと思いました。
例えば検証用途に VPC と サブネット 1 つに EC2 が 1 台みたいな構成のときに RDS をサッとマネジメントコンソールで追加したいときなどは使いやすいかなという所感です。