API(API Gateway)に統合したLambda関数からRDSへのアクセスができず、データが送れません。

0

Lambda関数からRDSにアクセス可能な状態にするための手順や確認すべきポイントを教えてください。

以下前提です。 ・iPhoneアプリを開発中です。 ・ユーザーの初回ログイン時に認証プロバイダー(Apple,Google)から送られてきたユーザー情報をDB内のテーブルに格納するフローを開発中です。 ・使用している技術はSwift、Pyhton、API Gateway、Lambda、RDSです。

Lambda関数からRDSにアクセスし、RDSで作成したDB内のテーブルにデータを格納するフローにおいて、RDSにデータを送信する段階でタイムアウトしてしまいます。以下のコードの後にエラーハンドリングも設けていますが、そこには到達していません。

環境変数に設定されているエンドポイントやIAMロールのポリシー、 VPCやサブネット、セキュリティグループやそれらのインバウンドアウトバウンドルールまで確認しましたが、特段おかしい箇所は見当たりません。 どなたかご教授いただけますでしょうか。 ※AWSの障害が原因であれば良いのですが…

before_rds_time = time.time() print("RDSにデータを送ろうとしています") try: response = rds.execute_statement( resourceArn=cluster_arn, secretArn=secret_arn, database=database_name, sql=sql_query, parameters=parameters )

1개 답변
0
수락된 답변

タイムアウトエラーなのでLambdaのネットワーク周り (VPC、サブネット、セキュリティグループ) が怪しいと思いました。
設定自体はこちらのドキュメントが参考になると思います。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/services-rds-tutorial.html

確認項目
https://repost.aws/ja/knowledge-center/lambda-rds-connection-timeouts

  • Lambdaに設定しているサブネットからRDSへのアクセスが可能か (ルートテーブルなどを確認してください)
  • RDSのセキュリティグループのインバウンドルールでLambdaのセキュリティグループから許可する設定を行っているか
  • ネットワークACLで防がれていないか
  • パスワードの取得にSecrets Managerを使用されていそうですが、Secrets ManagerにアクセスするVPCエンドポイントやNATゲートウェイなどがあるか (Secrets Managerへの経路があるか確認してください)

上記の項目が確認ポイントになると思います。

profile picture
전문가
답변함 일 년 전
profile picture
전문가
검토됨 일 년 전
  • 解決しました! エンドポイントが足りていなかったようです。。。 ありがとうございました!

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인