しばらくの間、複数の Compute Engine インスタンスで Google cloud_sql_proxyを正常に使用してきましたが、今日まで、一度に 1 つのインスタンスで、プロキシが次のエラー パターンを示し始めました。
2017/05/30 13:28:07 New connection for "project-id-1234:us-central1:sql_instance"
2017/05/30 13:28:07 couldn't connect to "project-id-1234:us-central1:sql_instance": Post https://www.googleapis.com/sql/v1beta4/projects/project-id-1234/instances/sql_instance/createEphemeral?alt=json: stream error: stream ID 1; PROTOCOL_ERROR
2017/05/30 13:28:41 New connection for "project-id-1234:us-central1:sql_instance"
2017/05/30 13:28:41 Thottling refreshCfg(project-id-1234:us-central1:sql_instance): it was only called 33.490705951s ago
2017/05/30 13:28:41 couldn't connect to "project-id-1234:us-central1:sql_instance": Post https://www.googleapis.com/sql/v1beta4/projects/project-id-1234/instances/sql_instance/createEphemeral?alt=json: stream error: stream ID 1; PROTOCOL_ERROR
(プロキシを使用しているときに) MySQL に直接接続しようとすると、エラー 2013 (HY000) が表示されます。
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"
私が試したこと
- cloud_sql_proxy を再起動すると、最終的に両方の Compute Engine インスタンスが Cloud SQL インスタンスに接続できなくなり、プロキシがこの結果のみを表示するまで一時的な修正が行われました。
- Cloud SQL インスタンスと両方の Compute Engine インスタンスを再起動します。
- プロキシの排除: SQL インスタンスの承認済みネットワークに適切なネットワークを追加し、パブリック IP を使用するようにすべてのアプリケーションを更新しました。これにより、本番アプリの機能が復元されましたが、現在はローカル/プロキシではなくパブリック接続を使用しています。
いくつかの研究
- 上記と同じ MySQL エラーが発生した Google Cloud SQL に関連する同様の問題に遭遇しましたが、GCE/GKE 以外の外部ネットワークからのCloud SQL への接続にのみ影響しているようです。
- 他の何人かは、今朝、Google Cloud SQL ディスカッショングループで同じ問題が発生したと報告しています。