寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

CloudSQL へローカルから接続できない(という人のために)

GCPMySQLPostgreSQL のような RDB をマネージドで利用したい場合に CloudSQL を選択することが多いと思います。

ポチポチっと押せばすぐにインスタンスが出来上がるし、gcloud コマンドや、Cloud Shell を利用することで用意に接続ができるので、ふとローカルの msql コマンドだったり、 MySQL Workbench のようなツールからつなごうとすると「接続ができない」という状況になることがあると思います。 というかデフォルトの状態では接続ができません。

CloudSQL はデフォルトでは外部からの接続をすべて拒否している

見出しのとおりなのですが、CloudSQL の Connection のタブを見てもらうとわかりますが、

Authorize a network or use a Proxy to connect to your instance. Networks will only be authorized via these addresses

とあるので、プロキシを利用するかネットワークを承認する(IPアドレスを Whitelist に追加する)必要があるようです。

ネットワークを承認する方法

単に接続元の IP アドレスを Whitelist に追加すれば良いので Add Network ボタンを押し以下の画面から自分のローカルPCが外部に接続する際のゲートウェイの IP アドレスを登録すればよいです。 注意点は外部に接続する IP アドレスなので、作業している端末の(ローカルの)IP アドレスではないという点です。

f:id:chidakiyo:20190224045922p:plain

調べる方法としては 確認くん などのサイトが利用できます。

IPアドレスを入力したら、 save ボタンを必ず押しましょう。 (ただ自分が試した際には、うまくsaveされませんでした。その場合には画面をリロードすることでうまくいくことがあるようです)

まとめ

上記に書いたIPアドレスを登録する方法の他にProxyを利用する方法というのもあります。 先程の、外部似でていくためのIPアドレスが固定されておらず、変わる可能性がある場合にそちらを利用する必要があります。 一般的なプロバイダの場合、固定IP契約ではない場合にはIPアドレスが動的に変わることがありますが、比較的リース期間が長いことが多いので検証用等の場合にはIPが変わる可能性はあるが、IPアドレスのWhitelist追加で利用してもしばらく大丈夫な場合があります。

ではでは。