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 Antwort
0
Akzeptierte Antwort

タイムアウトエラーなので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
EXPERTE
beantwortet vor einem Jahr
profile picture
EXPERTE
überprüft vor einem Jahr
  • 解決しました! エンドポイントが足りていなかったようです。。。 ありがとうございました!

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen