はじめに
Amazon RDS(Aurora含む)のデータベース作成時にEC2との接続を自動でセットアップできる機能があります。
(以下のUpdateの内容です。)
この機能により、EC2からRDSへつなぐ際のネットワーク設定などがスキップできるようです。
これにより、VPC、セキュリティグループ、サブネット、Ingress/Egress ルールの手動セットアップなど、ネットワーク関連の追加のタスクを行うことなく、アプリケーションとデータベース間の接続を確立できます。
という記載がありますが、どのような挙動になるのか確認してみます。
注意事項
ドキュメントにも記載がありますが、利用する場合はRDS以外に以下のアクセス権限が必要です。
必要なアクセス権限
- ec2:AssociateRouteTable
- ec2:AuthorizeSecurityGroupEgress
- ec2:CreateRouteTable
- ec2:CreateSubnet
- ec2:CreateSecurityGroup
- ec2:DescribeInstances
- ec2:DescribeNetworkInterfaces
- ec2:DescribeRouteTables
- ec2:DescribeSecurityGroups
- ec2:DescribeSubnets
- ec2:ModifyNetworkInterfaceAttribute
- ec2:RevokeSecurityGroupEgress
また、同一リージョンにEC2インスタンスがrunning状態で存在する必要があります。
挙動確認
セットアップ方法はRDSインスタンス作成時に対象EC2を選択するだけです。
この状態でインスタンスを作成すると以下のリソースが作成されるようです。
作成されるリソース | リソース名 | 説明 |
---|---|---|
セキュリティグループ | ec2-rds-1 | ec2にアタッチされる。 RDSのセキュリティグループへのアウトバウンド通信を許可 |
セキュリティグループ | rds-ec2-1 | rdsにアタッチされる。ec2のセキュリティグループからのインバウンド通信を許可 |
サブネットグループ | rds-ec2-db-subnet-group-1 | 下記サブネットをまとめたもの。vpcはec2が存在するものを選択。 |
サブネット | RDS-Pvt-subnet-1,RDS-Pvt-subnet-2,RDS-Pvt-subnet-3 | rds インスタンスが配置されるサブネット。azごとに作成される模様。 |
ルートテーブル | RDS-Pvt-rt | 上記3つのサブネットに関連づけされたルートテーブル。 |
作成されたセキュリティグループ(EC2にアタッチされているもの)
作成されたサブネット(vpcのip Cidrブロックは10.0.0.0/16で作成)
セットアップ後、ec2からRDSへつなげられることを確認しました。
EC2アクセス権がないとどうなるの?
describe権限が無いとそもそもEC2を選択できませんでした。
その他権限が無いとリソース作成時にエラーが発生すると思われます。
まとめ
ワンクリックセットアップにより、EC2からRDSへの接続のセットアップが簡単にできるようです。
VPC内にEC2が存在する状態で、RDSインスタンスを利用したい場合は使うとよいと思います。