LambdaからのRDS Proxyの動作確認用リポジトリ
$ aws ssm get-parameter \
--name /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 \
--region eu-west-1
sam build
を実行。sam deploy --guided
を実行しsamconfig.toml
を作成する。samconfig.toml
内の設定でパラメータを上書きする。 ※ EC2のキーはあらかじめ作成する。
上書き必須のパラメータ
parameter_overrides = [
"RDSRootUserPwd=rootpass",
"RDSLambdaUserPwd=lambdapass",
"EC2KeyName=sample-aws-rds-proxy-ec2-key",
"EC2CidrIp=0.0.0.0/0" # EC2の踏み台サーバーへのアクセスを許可するIP
]
sam deploy
でデプロイを実行
$ ssh -i ".ssh/sample-aws-rds-proxy-ec2-key.pem" {EC2のエンドポイント}
$ mysql -h {RDSのエンドポイント} -P 3306 -u root -p
- ルートユーザーでログインし、データベースとテーブルを作成する。
CREATE DATABASE sample_rds_proxy;
CREATE TABLE sample_rds_proxy.users (
id INT NOT NULL,
name VARCHAR(30),
PRIMARY KEY (id)
);
- 適当なデータを挿入。
USE sample_rds_proxy;
INSERT INTO users (id, name)
VALUES
(1, 'Hoge User'),
(2, 'Fuga User'),
(3, 'Piyo User');
- 現在のユーザーを確認し、lambdaユーザーが存在しないことを確認。
select user, host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| rdsproxyadmin | % |
| root | % |
| mysql.sys | localhost |
| rdsadmin | localhost |
+---------------+-----------+
- lambdaユーザーを登録する。
grant all on sample_rds_proxy.* to lambda@'%' identified by 'lambdapass';
- 踏み台サーバーにアクセス。
- RDS Proxy経由でアクセス。
# rootとlambdaのどちらでもログイン可能
mysql -h {RDS Proxyのエンドポイント} -P 3306 -u root -p