はじめに
この記事は、社会人2年目 AWS、python初心者が勉強したことをまとめたものです。
間違っている点、改善点等ございましたご指摘いただけると大変ありがたいです。
この記事について
踏み台サーバを経由してセキュアにRDSに接続する構成は多いのではないでしょうか?
プライベートサブネットに存在するRDSにパブリックサブネットの踏み台経由で
ローカルのプログラムからアクセスする方法がわかります。
似たような記事はたくさんありますが、自身の備忘録として投稿しておきます。
手順
踏み台サーバにポートフォワーディングを設定
ssh -i 踏み台サーバの秘密鍵 踏み台のユーザ名@踏み台のIP -L 任意のポート:RDSエンドポイント:3306
例:
ssh -i sushi.pem sushi@22.22.22.22 -L 13306:dev-rds-endpoint.ap-northeast-1.rds.amazonaws.com:3306
実行プログラム
pythonのpymysqlを使用してRDSに接続します。
rds_access.py
connection = pymysql.connect(host = '127.0.0.1',
user = 'rds_user',
password = 'password',
db = 'sushi',
charset = 'utf8mb4',
port = 13306, # ポートフォワーディングで設定したport
cursorclass=pymysql.cursors.DictCursor)
with connection.cursor() as cursor:
sql = "select * from SushiInfo"
cursor.execute(sql)
result = cursor.fetchall()