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 réponse
0
Réponse acceptée

タイムアウトエラーなので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
EXPERT
répondu il y a un an
profile picture
EXPERT
vérifié il y a un an
  • 解決しました! エンドポイントが足りていなかったようです。。。 ありがとうございました!

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions