AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Lambda関数からData APIを使い、RDS(Aurora)のDBへアクセスしたい

0

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)
}
1回答
0
承認された回答

ドキュメントではLambdaをRDSと同じVPCに接続しているようですが、このネットワーク設定の場合はData APIを実行するためにNAT GatewayかVPCエンドポイントを作成してRDSのAWSサービスエンドポイントにアクセスできるようにする必要があります。
おそらくこれらの設定が無くてタイムアウトになっていると予想しています。
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/data-api.html#data-api.vpc-endpoint

profile picture
エキスパート
回答済み 24日前
  • ご回答ありがとうございます。

    おっしゃる通り、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を使用してデータベースへ接続できました。 ご教示頂きありがとうございました。

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ