MySQLサーバーに接続するPHPアプリケーションがあり、Webサーバーとアプリケーションサーバーとデータベース間の接続を保護したいと考えています。
ピーク時には、Webサーバーはデータベースに対して何百もの同時接続を行い、多数の小さな読み取りと書き込みを実行します。これは最適ではないことを認識しており、これと並行してデータベース接続の数を減らすよう取り組んでいます。
現在オンになっているデータベースへの永続的な接続はありません。将来的にはこれとは別にこれを実装したいと考えています。
ハードウェアに関して-MySQLサーバーはWebサーバーと同様にかなり分厚い(16コア)です。それらは専用サーバーです。
次に、データベースサーバーへの接続を保護および暗号化する最もパフォーマンスの高い方法について質問します。
これまでの私の調査では、主なパフォーマンスオーバーヘッドはSSL接続のセットアップにあることが示唆されています。SSLが接続されると、パフォーマンスの低下はほとんどありません。そして、これが接続を保護する各方法について私が持っているものです:
これは私が得ることができた限りです。私はベンチマークの制限を認識しています-それらを実行した私の経験では、実際のトラフィックをシミュレートすることは非常に困難です。 MySQLのセキュリティ保護に関する自分の経験に基づいて誰かがアドバイスをしてくれることを望んでいましたか?
ありがとう
私はssh-tunnelを使い、autossh
ではなくssh
でそれを行います。パフォーマンスについて言えば、SSHプロトコルは高度にカスタマイズ可能であり、必要に応じて接続を微調整できます。
しかし、接続がセットアップされた後、私は顕著なオーバーヘッドを期待しません。
この 記事 (MySQL Performance Blog)のベンチマークを確認することで、MySQLのネイティブSSL機能を実際に回避する必要があります。