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
エキスパート
回答済み 10ヶ月前
profile picture
エキスパート
レビュー済み 10ヶ月前
  • 解決しました! エンドポイントが足りていなかったようです。。。 ありがとうございました!

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

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

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