GCPのcloud_sql_proxyでReady for new connectionsから点灯していて進まないと思っている方向け

こんにちは。

ASUKARUでは、最近GCP(Google Cloud Platform)を推してします。理由は様々ですが、固定額のレンタルサーバーもいいですが(安心感あり)、できることがやはり限られていることと、SEO対策のために様々なことをしなければならないためです。

佐賀県の神埼市では、サーバーはだいたいレンタルサーバーであることが多いですが、サイトの構築に力をいれていくための時間もないって方には本当におすすめです。

 

さて、GCPでのデータベースへの接続なのですが、今回は「え??データベースに接続しようしてcloud_sql_proxyをダウンロードしてきたけど接続できてんの?」っていう方向けの記事になっています。

今回は

  • Windows10 Pro
  • PyCharm(エディタ) Pro
  • DBはまさかのXAMPP(笑)

 

Python(Django)での開発だったのですが、まぁ・・・・。

 

さて、WEBアプリケーションなので、実際にはDBとの通信が必要ですね。通常(ローカル環境)であれば単純な話なのですがGCPで行おうとするとちょっと話が変わってきます。

でも全部を記述することは難しいので、いったん以下を前提にします。

 

  • GCPのアカウントは設定されている
  • cloud_sql_proxyはダウンロード済み
  • gcloudコマンドで認証は通してある(gcloud auth login)
  • sqlの作成やAPIも有効化されてある

 

それでは、cloud_sql_proxyを使って(今回はPyCharmのTerminalを使用していますがコマンドプロンプトからでも同じです)GCPのsqlに接続していきます。

 

まずは、cloud_sql_proxyを自分の作業環境ディレクトリにまで移動させてください。

cloud_sql_proxy
cloud_sql_proxy

だいたい、GCPにデプロイするファイルと同列になるかと思います。

次に、PyCharmのターミナルから、

sqlコマンド
cloud_sql_proxy_commandはこれを使ってください。

 

-instancesのところは、ご自身のGCPのSQL接続インスタンス名に書き換えてください。

お決まりですね。

cloud_sql_proxy -instances=<接続インスタンス名>=tcp:3306

 

 

すると、以下のようになって接続が完了したのかどうかわからないかと思います。

CloudSQLへ接続を試みようとしている状態
CloudSQLへ接続を試みようとしている状態

 

そして、待てど暮らせどこのまま先に進みません。

他のコマンド(たとえばInstallするようなコマンド)であればここで「success!!」なり「warning」なり反応をしてくれるのですが、このまま進行していかない状態に頭を悩まされる方もいらっしゃるかもしれません。

でも、実はこの最後のメッセージをみていただきたいのですが、

「Ready for  new connections」

と書いてあります。

そうか。そうか。このまま待っていれば接続してくれるのか。と思っている方は、残念ですが待っていてもダメです。

 

なんと!!ここでこの状態はそのままにしておいて、別にローカルのMySQLに接続していく必要があるのです!

 

 

え??って思われた方は、ドキュメントをよく読まれてください。

ドキュメントを読む暇なんてない!って方は、このまま進んでいってください(笑。

2020/04/18 07:35:45 Listening on 127.0.0.1:3306 for <ご自身のインスタンス名>
2020/04/18 07:35:45 Ready for new connections

これは、つまりローカルのDBとSQLインスタンスを接続するよ!こっち(SQLインスタンス)の準備はできてるよ!待ってるよ!っていう意味の「Ready for new connections」なんです。

SQLインスタンスの準備をしているよ!」っていう意味のメッセージではありません(爆

 

で、話を元に戻して「じゃあ、ここから何をすればいいのか!」ってことなのですが、

ローカルのMySQLに接続してください。その際ですが、「Listening on 127.0.0.1:3306 for <ご自身のインスタンス名>」がジャブのように効いてきます。これは「SQLインスタンスは127.0.0.1:3306 」で待ってるよ!接続してね!」っていうことなので、ここに向かって接続をしてあげる必要があります。

そのため、ローカルのMySQLに接続するときにはいつものように「mysql -u root -p」とするだけではなく、以下のようなコマンドを叩く必要があります。

少ないとは思いますが、XAMPPのローカルDBを使っている場合は、

XAMPPのSHELLを叩いてターミナルにアクセス
XAMPPのSHELLを叩いてターミナルにアクセス

 

XAMPPのコンパネの「SHELL」をクリックしてターミナル側へアクセスしてください。

きちんとDockerなどで環境を構築している方はその環境のMySQLに接続するようにしてください。

ターミナルには、以下のコマンドを入力します。

 mysql -u <SQLインスタンスに設定したユーザー名> -p --host 127.0.0.1

この–hostオプションが先ほどの待っている場所(Listening on 127.0.0.1:3306)になるわけです。

 

このコマンドを実行すると、パスワードの入力を求められるかと思います。SQLインスタンスで設定したパスワードを入力してください。

shellからクラウドSQLへ接続完了
shellからクラウドSQLへ接続完了

 

こんな感じになりますでしょうか。

「Welcome to the MariaDB monitor.」と出ていれば大丈夫です。

 

そして、先ほどのPyCharmのターミナルの方へ戻ってみましょう。

「New Connection」という表示が出ていれば問題なく接続ができています。あとは、ローカルとサーバー環境の処理切り分けなどを設定ファイルに記述してください。そうすればうまく開発していけると思います。

 

長くなりましたが。

 

今日もいい一日でありますように!

 

 

 

ASUKARU-*- アスカル -*- WEBサイト運営サポート(運営代行)の記録

こんにちは。
昨日の激しい雨のあとは、蝉の声と涼しい風。今朝も6時ごろから近くのクリークへとバスを求めて遊びに行きましたが、どうやら昨日の豪雨のせいもあってか濁りが激しく、釣行時間20分程度で切り上げて帰宅しました。
こうやって遊んでいても、WEBサイトとは運営をされているもので、ビジネスにとって有益な情報を与えてくれます。

ホームページ・WEBサイトの運営をサポート

ただ、ホームページの運営というのは、結構自分で情報を取得してきて比較したりしないといけなかったりするので、手間のかかる作業ではあります。
我々の方では、このような面倒な作業を自動化するツールを作りました。
興味のある方はこちらからお問い合わせください。
また、このブログの下の方に連絡先なども記載をしておりますので、そちらの方へ直接ご連絡をいただいても構いません。
もう少し具体的にどのようなものなのか、と言いますと、

1.上位表示されるサイトとの差分を取得

これまでGoogleのアナリティクスを見てみても、自分のサイトの情報しかとれてこなったと思います。競合相手のサイトなどは、他の検索ツールを使用したりしない限りは取得できないので、そういったツールの存在を知って、有料版であればお金を払わないと自分のサイトへの流入が高いとか、低いとか、あるいは良いとか悪いとかっていう評価自体が難しいところでした。このASUKARU(アスカル)のシステムは、そんな流れ一切を自動的に取得をしてきます。

2.訪問したユーザーの属性に応じて、WEBサイトのデザインを自動的に変更

よくWEBサイトのデザインの話の中で、「ターゲットは女性ですか、男性ですか」というような話を耳にしたことがあるかと思います。要は、男性向けのデザインと女性向けの柔らかいデザインとの間には差があるということです。このWEBサイトのサポートは、自動的にこのようなデザインの差を訪問者の属性に応じて変化させることができます。そうすると、もはやWEBサイト一つでマスマーケティングの世界に入ってくるということになります。

3.もっともコンバージョンの高いサイトを機械学習することでWEBサイトの最適化を図る。

WEBサイトやホームページというのは、本当は目的を持って存在をしています。「なんとなく今の時代ホームページぐらい持ってないと・・・」という気持ちで作られたサイトも、それだけで意味を与えられてその場に存在しているわけですね。では、そういった目的を果たすのに必要なものは何かということをディープラーニングや機械学習を通じて実装してしまおうということです。これが、ASUKARU(アスカル)のこのWEBサイトサポートの大目玉ということです。

 

 

 

実は今日は別のお話(笑

 

上記で必死になって自社サービスの説明をしてきましたが、実は本日は全く違うお話です(笑

関連はしてますけどね。

 

Google検索結果
Google検索結果

こちらは、言わずと知れたGoogleのアクセス解析(アナリティクス)です。

このブログサイトではなくて、当社の方で運営を任されているWEBサイト(ブログサイト)の一つになります。今回は許可をいただきまして、ここに掲載、ご紹介をさせていただいております。

現状としましては、結構な数字を叩き出しておりますが、実は以前は1日30件程度のサイトでした。本当にWEBサイトの運営というのはやり方次第で化けます。

今でこそ、安定して3桁、多い時には4桁のアクセス(1日あたり)を出すようになりましたが、ここまで来るのに結構な努力をしてまいりました。当初は大幅なデザインの変更、検索index関係の設定、その他初歩的なところを改修・改善する必要がありました。

今回は、こちらのサイトで行われたことのご紹介です。

 

 

何もしていないが、すごいチャンス

 

実は、WEBサイトやホームページの運営というのは、何もしていないということが最大のチャンスなのです。

誰も知らない、あるいは、まだ知っている人が少ない。というのは本当にチャンスです。もしろWEBサイトやホームページをこれから持とうと思っていられるのであれば、最大のチャンスだと思ってください。

WEBサイトやホームページを運営していると、数の多少は色々あると思いますが、それでも認知度が高くなることがあるでしょう。人の目に触れる機会も多くなります。そうすると、実は簡単には次の展開ができなくなるのです。独自ドメインの移管作業を行う時にはなおのこと問題です。エンジニアの方や、システムについての知識があれば問題は少ないかと思いますが、例えば単純にPHPなどでheader関数を使用して別ページに飛ばす処理をしている時には、そこで与えられる引数(args: アーギュメント)に注意をしてください。

 

上のサイトでは、未だ認知度が低かったので体裁の変更などを行っても離反の可能性が非常に低いものでした。WEBサイトやホームページの運用では、どの程度の認知度にあるかで出来ること出来ないことがあります。

 

タグの適正な設置

ワードプレスなどでブログをしていても、何をしていても、タグと言われるもので記述をされています。必ずしもHTMLタグということに限りません。XMLなどもそうです。

ただし、どのようなマークアップ言語を使用するにしても、きちんとしたタグで記述をされていることが大事です。

これは2017年のGoogleの検索エンジンの方針発表でも言及をされています。余談ですが、我々Pythonエンジニアの間では、大体のWEBサイトやホームページなどはタグが壊れているという認識です。

きちんとしたタグでブログを表現することが大事ですね。

上記のサイトも実はタグ構造が壊れていました。もったいないです。ただ、無理もありません。ブログを書くのはHTMLを記述できる人ではないからです。ブログ記事をかける人が必ずしもHTMLをマークアップすることができるとは限りませんからね。そこで、その時使用していたブログ記事を書くシステムの内部をいじりました。こういうのをカスタマイズと呼びますが、要は適正なタグを記述できるように元々あるシステムを改善させるわけです。

 

スニペットの対応

 

スニペットってご存知でしょうか。これを設定することでGoogleでの検索に非常に有意義なデータを与えることができます。ぜひ、設定することをお勧めします。

 

 

細かいことは山ほどある

細部になるのですが。

記事の文字数、文字の大きさ、1ページとして表示されるページの中で自分が表現したい(出力したい)文字の数などを調査してみてください。

最後の自分が出したい文字の1ページに置ける文字数は、ブラウザにページが表示されたあとで、Windowsの方は「コントロールキー+F」Macの方は「Command+F」で表示される検索フォームの中に文字を入れるとヒット数を算出してくれます。

また、WEBブラウザのF12キーを使用するとデベロッパーツールが表示されます(もしかしたらお使いのWEBブラウザによって名前が異なるかもしれません。私はGoogleのChromeを使用しています)ので、そこでNetWorkやConsole画面をみて不必要なエラーが出ていないかをチェックしてください。

特にNetworkは、各コンテンツの表示スピードを出してくれるので、現在のGoogleの検索エンジン対策・つまりユーザーさんがストレスなく見ることができるWEBサイト、ホームページ制作には欠かせないものと思われます。

 

 

さて、述べたいことは山々ですが時間との関係でここまでにしておきます。今後このページは編集をして行こうと思いますので、いつかのタイミングで再度みられた時には表示が変わっているかもしれません。

 

それでは、今日も明日も、さらに高みを目指して張り切っていきましょう!

 

佐賀県神埼市でWEBシステム、AI、IoT、IOS、Androidアプリ開発

-*– ASUKARU –*-アスカル

TEL 0952-60-2693

Email asukaru2014@icloud.com

Adress 〒842-0002 佐賀県神埼市田道ヶ里2176-13