すべてのプロダクト
Search
ドキュメントセンター

Function Compute:データベースアクセス障害のトラブルシューティング方法?

最終更新日:Aug 29, 2024

このトピックでは、データベースアクセス障害の一般的な原因と、Function Computeでのデータベースアクセス障害のトラブルシューティング方法について説明します。

一般的な原因のトラブルシューティング

データベースアクセスが時折失敗する

データベースアクセスに失敗することがある場合は、次の手順を実行して原因をトラブルシューティングします。

  1. 使用するかどうかを確認するend()の代わりにdestroy()データベースを切断します。

    関数インスタンスは、約2〜5分間アイドル状態になると自動的に破棄されます。 end() メソッドを使用すると、データベースがクエリ結果を受信した後にMySQLサーバーが切断されます。 データベースが正しく切断されていない場合、次の接続はタイムアウトします。

  2. VPC経由でデータベースにアクセスするときにセキュリティグループが設定されているかどうかを確認します。

    データベースにアクセスするときにセキュリティグループが設定されている場合、関数の接続が不安定になる可能性があります。 データベースにアクセスするときは、IPアドレスホワイトリストを設定することを推奨します。

  3. データベース接続が常に失敗する」を参照してアクセス失敗の原因を確認します。

データベース接続が常に失敗する

データベースにアクセスするときに接続が常に失敗する場合は、次の手順を実行して原因をトラブルシューティングします。

  1. 要求されたデータベースの接続レコードを照会し、Function Computeからの接続要求が対応する期間に存在するかどうかを確認します。

    • Function Computeによって接続要求が開始されていない場合は、ステップ2に進みます。

    • Function Computeからの接続要求がデータベースに存在する場合、ステップ4に進みます。

  2. データベースへのアクセスに使用されるユーザー名とパスワードが正しいかどうかを確認します。

    • ユーザ名およびパスワードが正しい場合、ステップ3に進む。

    • ユーザー名またはパスワードが無効な場合は、有効なユーザー名とパスワードを入力します。

  3. インスタンスにログインして、telnetコマンドを実行してデータベースに接続します。

  4. 関数コードのロジックが正しいかどうかを確認します。

上記の方法を使用してトラブルシューティングを実行した後も問題が解決しない場合は、DingTalkユーザーグループに参加する11721331テクニカルサポートのため。

ネットワークの問題のトラブルシューティング

  • VPC経由でデータベースにアクセスする

    • 作成したデータベースインスタンスが、データベースにアクセスする関数と同じリージョンにあることを確認してください。

    • AccessDeniedエラーが報告され、エラーコードが403の場合は、elastic network interface (ENI) に対する権限を付与しているかどうかを確認してください。

    • InvalidArgumentエラーが報告され、エラーコードが400の場合は、VPCvSwitchセキュリティグループの設定が有効かどうかを確認します。

    • データベースにIPアドレスホワイトリストが設定されているかどうかを確認します。 ホワイトリストが設定されている場合は、プライベートVPC CIDRブロックとvSwitch CIDRブロックが設定されていることを確認してください。 0.0.0.0/0をホワイトリストに追加して、すべてのIPアドレスからのアクセスを許可します。

    • セキュリティグループがプライベートCIDRブロックとデータベースのポートからのアウトバウンドトラフィックを許可していることを確認します。

    • ResourceExhaustedエラーが報告され、エラーコードが429の場合は、vSwitchのIP CIDRブロックで使用可能なIPアドレスが不足しているかどうかを確認します。 自動的に設定されるCIDRブロックのプレフィックス長は24で、使用可能なIPアドレスの総数は252です。 インスタンスの数が多すぎる場合、制限に達する可能性があり、vSwitchのCIDRブロックとセキュリティグループを手動で変更する必要があります。

  • インターネット経由でデータベースにアクセスする

    • サービスのインターネットアクセスが有効になっていることを確認します。 詳細については、「ネットワーク設定の構成」をご参照ください。

    • 静的IPアドレスのホワイトリストがデータベースに設定されている場合は、Function Computeで静的パブリックIPアドレスが設定されていることを確認してください。 Function Computeでは、関数を実行するインスタンスはfunction Computeによって動的に割り当てられ、IPアドレスは固定されていません。 インターネット経由でデータベースにアクセスするには、パブリックIPアドレスを設定する必要があります。 詳細については、「静的パブリックIPアドレスの設定」をご参照ください。

  • データベース側のネットワークの問題

    別のサービスでFunction Computeのネットワーク環境と同様のネットワーク環境を設定できます。 次に、telnetコマンドを使用してデータベースに接続できるかどうかを確認します。 接続が確立できる場合、データベース側のネットワークは正常です。