質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

1705閲覧

AWS RDSのMySQL認証で初回認証に異常に時間がかかる

h-a

総合スコア1

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2023/08/08 08:43

解決したいこと

AWSのRDSで作成したMySQLDBに対して、EC2上に作成したWebサーバから
ASP.NET又はWindowsフォームアプリからDB接続を行う際、
初回認証(ConnectionOPEN)時に異常に時間がかかる問題を解決したい。

前提条件

自社のAWS契約(環境)と客先のAWS契約(環境)の2つがあり
前者と後者で同じ設定で環境を作成しても状況が変わってしまう
※但し、自社環境は私自身が作成したが、客先環境は別の会社が作成

環境

[RDS] MySQLバージョン:8.0.33
[EC2] OSバージョン:Windows_Server-2022-Japanese

MySQLパラメータグループ設定

character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_results:utf8mb4
character_set_server:utf8mb4
skip_name_resolve:1
time_zone:Asia/Tokyo

●MySQLの接続に使用するユーザはホストを「%」で指定済

●デフォルトの認証プラグインは「mysql_native_password」であることを確認済
ログインに使用しているユーザの認証プラグインは「mysql_native_password」であることを確認済

●RDS/EC2共に同じ「ap-northeast-1a」上に存在

●RDS/EC2共に同じVPC上に存在

●RDS側のセキュリティグループ設定でEC2マシンが属するセキュリティグループの3306ポートアクセスを許可

●MySQL workbench/コマンドラインを使用してWebサーバからMySQLDBへの接続は確認済
※この接続では、両環境共に接続時に時間がかかるなどの状況は全く発生しない
(体感的に時間がかかるなどの感覚は全くなし。一瞬で接続が完了する)

●IISに構築したWebサイトは、サイト上にユーザID/パスワードを入力して
ログインした後、サイトで登録/照会等を行うビジネスプログラム(VB.NET)

●Windowsフォームアプリは、起動後ユーザID/パスワードを入力して
ログインした後、サイトで登録/照会等を行うビジネスプログラム(VB.NET)

●両プログラム共にDBアクセスには「MySql.Data.dll」を使用しており、バージョンは8.1.0.0を使用

実際の状況

WebサイトとWindowsフォームアプリで若干動作に際があるため分けて記述
Webサイトの状況
・自社と客先の両環境には全く同じ設定でIISサーバを構築

・構築したIIS上に全く同じASP.NETプログラムを配置してWebサイトを構築(同じサイト名)
※個別の設定変更等は全く行っていない

・IISに構築したWebサイトはURLをたたき、login.aspx上でユーザIDとパスワードを入力して
ログインを行う初回のみConnectionをOPENする際に13秒程度の時間がかかる。
※コード上のOPEN処理に時間がかかっていることはログにて確認済

・一度ログインすると、しばらくはそのサイトに再度ログインを行っても
即時ログインできる状況が続く(メモリに認証した状況が残っているようなイメージ)

・プログラム内でDBにアクセスする際は、必要に応じてOPENしているため
ログイン中状態で時間が経過すると再度認証に時間がかかる状況が発生する


Windowsフォームアプリの状況
・自社と客先の両環境には全く同じプログラムを配置

・EXEを起動し、表示された画面でユーザIDとパスワードを入力してログインを行う
このログインを行う際にConnectionをOPENする際に15~16秒程度の時間がかかる

・プログラムを終了すると再度ログインした際に同じく時間がかかる

・プログラム内でDBにアクセスする際は、必要に応じてOPENしているため
ログイン中状態で時間が経過すると再度認証に時間がかかる状況が発生する

ログイン処理のサンプルソース

Imports MySql.Data.MySqlClient

Private conn As MySqlConnection = New MySqlConnection("ConnectionString")
conn.Open() <=ここで時間がかかってしまう



また、Windowsフォームアプリの場合、接続の際に数十回に一回程度
以下のエラーメッセージが発生することがある
********************************
MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host
'**DBHOST**' for user '**DBUSER**' using method 'mysql_native_password'
failed with message: Reading from the stream has failed.
********************************

両環境で同じになるように設定を確認しているにもかかわらず
動作状況が変わってしまうことに困っております。

誰か理由をご存じの方がいらっしゃいましたらご教授頂けますようお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hqf00342

2023/08/09 07:45

MySQL Connector/NETを使ってRDSへ接続したことはないのですが Reading from the stream has failed.となる場合はSslをOffを試してみると以前聞いたことがあります。接続文字列に"...;SslMode=None"と追加するとどうでしょうか?
guest

回答1

0

自己解決

回答ありがとうございます。

早速試してみたところ初回認証が改善されました。

全てのMySQLバージョンで試したわけではないのですが
過去8.0.11では問題が出ていなかったのですが、
その後8.0.28ではこの現象が発生しており
その後のバージョン。今回は8.0.33でも発生していました

初回認証が遅いというキーワードで散々検索しても、
問題が解決できていなかったので本当に助かりました

まずは解決状況が解決したので、今後は問題の詳細を調べたいと思います

回答ありがとうございました。

投稿2023/08/09 09:57

h-a

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問