MySQLサーバーに接続するPHPアプリケーションがあり、Webおよびアプリケーションサーバーとデータベース間の接続を保護したいと考えています。
ピーク時には、Webサーバーは何百ものデータベースへの同時接続を行い、多数の小さな読み取りと書き込みを実行します。これは最適ではないことを認識しており、これと並行してデータベース接続の数を減らすことに取り組んでいます。
現在、データベースへの永続的な接続が有効になっていないため、将来的にはこれとは別に実装するつもりです。
ハードウェアに関しては-MySQLサーバーはWebサーバーと同様に非常にチャンキー(16コア)です。それらは専用サーバーです。
私の質問は、データベースサーバーへの接続を保護および暗号化する最も高性能な方法を取り巻いています。
これまでの研究では、主なパフォーマンスオーバーヘッドはSSL接続のセットアップにあることが示唆されています。SSLが接続されると、パフォーマンスの低下はほとんどありません。そして、接続を保護する各方法について私が持っているものは次のとおりです。
- MySQL SSL証明書-通常のSSLと同じように機能します。クライアント証明書を使用して、不正な接続を防止できます。既存のセットアップとの永続的な接続はありません。ファイアウォールの開いているポートでMySQLをリッスンさせる必要があります。
- un。ポートsslトンネルへのポートをセットアップします。MySQLを再構成する必要はありません。悪意のあるMySQL接続の試行を防ぐために、通常のMySQLリスニングポートを閉じることができます。持続的接続はサポートしていません。不明なパフォーマンスヒット。
- SSHトンネリング。クライアントとサーバーの間にSSHトンネルを作成します。MySQLを再構成する必要はありません。悪意のあるMySQL接続の試行を防ぐために、通常のMySQLリスニングポートを閉じることができます。永続的な接続をサポートしますが、これらは時々ドロップアウトします。不明なパフォーマンスヒット。
これは私が得ることができる限りです。ベンチマークの限界を認識しています-ベンチマークを実行した経験では、実際のトラフィックをシミュレートすることは非常に困難です。私は誰かがMySQLを保護する自分の経験に基づいていくつかのアドバイスを望んでいたのですか?
ありがとう
openssl speed
は、保護とパフォーマンスの妥協のニーズに合った暗号を実行および選択してください。