

**解決したいこと**  
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() ＜＝ここで時間がかかってしまう

また、接続の際に数十回に一回程度以下のエラーメッセージが発生することがある  
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊  
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.  
＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊＊

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

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


CC BY-SA 4.0
2023-08-08T08:52:54.973
95890
2023-08-09T10:05:41.490
59420
question
mysql asp.net amazon-ec2 vb.net amazon-rds
AWS RDSのMySQL認証で初回認証に異常に時間がかかる


これまでこのようなサイトをあまり使用したことが無かったため申し訳ございませんでした。

他サイトの回答でで問題を解決することができました。

Reading from the stream has failed.となる場合の対応策として  
接続文字列に"SslMode=None"を追加してみたところ初回認証の速度問題が改善しました。


CC BY-SA 4.0
2023-08-09T10:05:41.490
95902
2023-08-09T10:05:41.490
59420
95890
answer