AWS Lambda関数からData APIを使って、以下のRDS(Aurora)のDBへアクセスし、データ検索を実行したいのですが、クエリ実行結果は「タイムアウト(Timed OUT)」となります。
構築の際、下記ドキュメントを参照しております
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/lambda-rds-connect.html
原因究明にお力添え頂きたいです。
原因究明にあたり、以下情報に加え、不足があれば教えてください。
★Aurora 情報
・エンジンバージョン:PostgreSQL 15.4
・インスタンスタイプ:Serverless v2
・Data API:有効化
★Lambda関数
・ランタイム:Pyhton 3.9
・ハンドラー:lambda_function.lambda_handler
・アーキテクチャ:arm64
・実行コード
import boto3
import json
client = boto3.client("rds-data")
def lambda_handler(event, context):
# Data API リクエスト用の設定
database_name = "DB名"
db_cluster_arn = "ライターインスタンスのARN"
secret_arn = "Secrets Manager ARN"
# クエリの実行
response = client.execute_statement(
secretArn=secret_arn,
database=database_name,
resourceArn=db_cluster_arn,
sql="SELECT * FROM phone_numbers"
)
# レスポンスの処理
records = response['records']
return {
"statusCode": 200,
"body": json.dumps(records)
}
ご回答ありがとうございます。
おっしゃる通り、LambdaはRDSと同じVPCで設定しております。 添付頂いたドキュメント内の「RDS Data API の Amazon VPC エンドポイント (AWS PrivateLink) の作成」通りにVPCエンドポイントを作成しました。 作成後、再度Python アプリケーションを使用してSELECT ステートメントを実行しましたが、結果は変わらず「タイムアウト」となりました。 エンドポイント作成後、RDSやLambdaに対して別途なにかしらの設定が必要でしょうか。 ※エンドポイント作成のみ実施しました ※タイムアウト秒数は30秒です
VPCエンドポイントのセキュリティグループでHTTPSは許可されていますでしょうか?
>VPCエンドポイントのセキュリティグループでHTTPSは許可されていますでしょうか?
ご回答ありがとうございます。 HTTPSの許可設定が不足しており、許可すると問題なくLambda関数からRDS Data APIを使用してデータベースへ接続できました。 ご教示頂きありがとうございました。