cloudSQLにmacのローカルから接続する方法

はじめに

GAEを使ってwordpressを構築したいと思ったのがきっかけで、GCPを使っていてcloudSQLへローカルから繋ぎたくなりました。
この方法は2つあり特定のipからの許可を行う方法とproxyを使う方法の2種類あります。
特定のipから許可する方法はAWSでSGの解放と考え方は同一なのでわかりやすいと思います。
むかしip許可をする方法は管理画面から行うだけでできたのですがproxyの方法は?な部分があったのでできなかったのを覚えています。
今回はこのprxoyを使う方法を自分の備忘録として記録します。

cloud SDKのインストール

cloud sdkは簡単に言うとaws-cliのようなもの?これを入れると簡単にローカル端末からGCPへアカウントのログインが行うことができます。ただむかしハマったのがこれpythonのバージョンが3系だと動かないのでローカルでpython3系の人はpyenvなどでこれを動かす時だけ2.7系にしないとダメな気がします。
下記はgoogle公式にあるものと同一です。


curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init

アカウントを切り替えたい時

余談ですがgoogleのアカウントは複数持っている人も多いとお思います。
その場合にアカウントの切り替えたい時は、ログインし直すといいと考えます。


gcloud auth list
gcloud auth login

リストでみてお目当のアカウントと違ったら切り替え。

cloudSQLへの接続

上記で基本的な準備が整っているのでcloudSQLへ進みます。

cloud_sql_proxyをダウンロード

こちらもgoogle公式と同一ですが記します。

curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
chmod +x cloud_sql_proxy

cloud sqlへ接続

上記でダウンロードしたcloud sql prxoyのディレクトリの上に適当なディレクトリを作成(localsql)し下記のコマンドを実行すればコネクションはできるかと思います。
./cloud_sql_proxy -dir=localsql -instances=cloudsqlの接続インスタンス

終わりに

GCPはどうもAWSよりも情報が少なくハマると難しい部分がありますね。
ただ料金やサービス的に魅力的なものも多いのでこれからも色々試して行きたいなと思います。
特に個人が行うサービスはAWSよりもお財布に優しいしGCPが自動でやってくれるところもあっていいですね。

GCPの概要

はじめに

GCPのお勉強会に参加したのでその時のメモ
普段AWSだけどGCPどんな感じなのか興味があり参加

GCP(概要)

googleは専用回線を持っていてそれと同じ専用線をGCPでは利用可能
世界展開する際にはこのネットワークを利用することができるので高速アクセスが可能

エッジキャッシュサーバー

CDN安くて許容度が高い

リージョンとゾーン

リージョン : データセンターの場所 asia-north-east1 東京とかとか
ゾーン : データセンターをメンテナンスするエリア 基本的にゾーン毎に3ヶ所
ここら辺はAWSと同じよね。

データセンター

日本にもある
電気代を抑えるためにgoogleは努力
冷却システム AIが行なっているらしい
サーバーのハードも自作、、、市販はしてないのね。

課金

分単位で課金が発生
ここはAWSと違う時間単位で課金が走るのでね。
サステンドユーズディスカウント : 同じインスタンスを使ってるとお安くしてくれる

App Engine

Paasなので基本的にお任せ
言語も限定的 Java, PHP, Pythonなど
ruby perlは使えないらしい 悲しい。

Compute Engine

IaaSなのでミドルウェアから作ってくれる
基本的にAWS的にはこれと同じかEC2でゴリゴリいつもやってるのと同じね。

IAMの管理

ここら辺は基本的にAWSと同じイメージユーザーに色々とroleで権限与えていく
1番の違いはgoogleアカウントと紐づいているところが違う

GCPへのアクセス

goole cloud platform console

GUIで使う管理画面

CloudのSDK/Shell

テーミナルの画面
gclou コマンドが使えるようになる

gcloud compute list
gsutil ls gs://hoge

cloud shellでは管理画面から操作可能

RESTful APIs

1番機能が画面やシェルはここのAPIを読みだしてる。
APIs Exploer からguiで確認可能

Google App Engine

Paasサービス
スケーラビリティが高い デフォルトでオートスケーリングができる 40msでインスタンスが立ち上がる
AWSの場合はオートスケーリングでスパイクがあると対応しきれないけどすごいな。
極端な話0台で設定してリクエストがあったらインスタンスが立ち上がるということができる。
AWSのlambdaよりもいいですねこりゃ。
しかもバージョン管理もしてくれる。
ミドルウェアの管理も不要つまり環境が不要!!!!
なんと!!!
snapchat、ingress、メルカリもApp Engineで運用してるらしい。
snapchatはインフラエンジニアなしでiOS&Androidエンジニア

Standard Enviroment

java, python, PHP&GOのみ
sshでは入れない
書き込み処理ができない。
image magicとかインストールする必要があるものはできない。
APP EngineのSDKを入れて開発できる。

無料枠

インスタンス1日28時間の無料枠あり。
プロジェクト毎に課金がされる。
よってテストと本番みたいにすればテストと本番のインスタンスにそれぞれ無料枠適用される。
夕方5時にリセットされる。
例) 2台動かす
A 14時間アクセスあり起動
B 15時間アクセスあり起動
計 29時間なので1時間課金される

Flexible Enviroment

Dockerベースでできている。
こちらはローカルにアクセスできる

失ったもの

スケーラビリティが失われている。
ms単位ではインスタンス立ち上がらないので0台運用できない1台設定して。
無料枠はない。

オートスケールで死ぬのを防ぐには

settings のDaily spending limitで金額を設定する。(ここでの金額はDatastore&App Engine)
これでアクセスできないと500エラーが返る。
DDOS攻撃受けたらipブロック登録しとけばよい。。。

Google Cloud Datastore

KVSのデータストア
スケーラビリティが高い
ポケモンGOもこれを利用している。
国毎にデータベース分けられてないのでこれ以上のものはない。
無料枠あり。
ストレージが1GBまで無料になっているらしい。