Amazon RDS Proxy(MySQL)にTLSで接続する。
RDS ProxyでTLS接続を試した。 TLSを有効にすると、証明書を設定する必要がある。
Lambdaの場合は以下のようなコードになるかな。
const fs = require('fs'); const mysql('mysql2/promise'); exports.handler = async (event) => { let con; try { con = await mysql.createConnection({ host: '...rds.amazonaws.com', user: 'admin', password: '....', database: 'db', ssl: { ca: fs.readFileSync('AmazonRootCA1.pem') } }); return { statusCode: 200, body: 'OK' }; } catch (err) { return { statusCode: 500, body: JSON.stringify({e}); }; } finally { if (con) con.end(); } };
ちなみにRDS Proxyの場合、ca
には上記のようにAmazonRootCA1.pem
を設定すればよいが、RDSの場合には、ca
には、global-bundle.pem
などを設定する必要がある。
RDSとRDS Proxyの切り替えは設定にもよるけど、基本はhostのURLを変更するだけ済む。