8æä¸æ¬ã Google Cloud SQL 2nd Generation ãGAã¨ãªãã¾ããããã§ã«æ¤è¨¼ã¯ãã¦ãã¾ãããä»å㯠Cloud SQL Proxy
ãä¸å¿ã«æ¸ãã¾ãã
Cloud SQL Proxy ã¨ã¯ï¼
ååã®è¨äºã§ãè¨è¼ãã¾ããããCloud SQL ã¸ã®æ¥ç¶ã¯å
¨ã¦ã°ãã¼ãã«IPã¢ãã¬ã¹
ã¨ãªãã¾ããããã«å«æªããã²ã¨ã¯å¤ãã¨æãã¾ããããã®ç¹ã¯ã©ããããã¨ãåºæ¥ã¾ãããã§ãGCEã®VMããã¢ã¯ã»ã¹ããå ´åãã¯2ã¤ã®æ¹æ³ã©ã¡ãããã¨ããã¨ã«ãªãã¾ãã
- ç¹å®IPã¢ãã¬ã¹ããã®ã¿ã¢ã¯ã»ã¹ãåãä»ãã(ã°ãã¼ãã«IPã®ã¿ãã¼ã«ã«IPã¯æå³ãªã)
- Cloud SQL Proxy ã使ã
1ãæ¡ç¨ããã§ããGCEã®ç¹å®VMããã®ã¿ã ã¨ãã¾ã£ã¦ããããã¹ã±ã¼ã«ã¢ã¦ãã¯èããå¿ è¦ããªããåºå®å°æ°ã§ã®ã¿ãµã¼ãã¹ããå ´åã¯ããã¾ãåé¡ã¯ããã¾ããããã¹ã±ã¼ã«ã¢ã¦ããããªãã°æ°è¦VM追å ã®åº¦ã«IPã¢ãã¬ã¹ã追å ãã¦ããå¿ è¦ãããã¾ããä»ã®æ¹æ³ã¨ãã¦ã¯ãNATãHAProxy, MaxScale ãªã©ã§ãã©ããã®IPã¢ãã¬ã¹ã«æãã¦ãã¾ãæ¹æ³ã§ãããæ°ããªspofãç£ãã§ãã¾ãã®ã§ããã¾ãããæã¨ã¯è¨ãã¾ããã
ããã§ã2ã® Cloud SQL Proxyã§ã ã¡ãªã¿ã«ã MySQL Proxy ã¨ã¯å
¨ãé¢ä¿ããã¾ãã
åä½ã«ã¤ãã¦
Cloud SQL Proxy ã®ãããã¨ã¯ãCloud SQLã¸ã®æ¥ç¶(or èªè¨¼ã ã?)ããä¸è¬ç㪠IPã¢ãã¬ã¹(TCP)çµç±ã§ã¯ãªããCloud SQL APIãã¼ã¹ã§è¡ããã®ã ã¨æ¨æ¸¬ãã¦ãã¾ãã
ã ãããIPã¢ãã¬ã¹ã«ãã許å¯ã¯è¦ããªãã
ã§ã¯ãããã°ã©ã å´ããã©ã®ããã«åç
§ãããã§ããããã㯠UNIX Socket
ã¨ãªãã¾ããå¾ã§æé ãæ¸ãã¾ããã
Proxy ã®å½¹ç®ã¯ Cloud SQL ã¸ã®æ¥ç¶ã API ãã¼ã¹ãã UNIX Socket ã«å¤æãã
ã¨è¨ã£ã¦è¯ãã¯ãã§ãã
æ§æ
ä¸è¨ Cloud SQL Proxy ã®å½¹å²ãçè§£ããã¨ãèªãã¨æ§æã¯ Cloud SQL ã¸ã¢ã¯ã»ã¹ããå
¨VMã¤ã³ã¹ã¿ã³ã¹ã§ Cloud SQL Proxyãåãã
ã¨ãªãã¾ããã©ã®ã¿ã¡ UNIX Socket ãªãã§ãå¿
ç¶çã«ãããªãã¾ããããã¾ã Dockerç¨ã® Cloud SQL Proxy ãããããã§ããããã¯Dockerã¤ã¡ã¼ã¸ããªï¼å¤åä»ã®ã³ã³ããã¯ã Proxy ã³ã³ããã¸ãªã³ã¯ãã¯ã£ã¦ãProxyã³ã³ããçµç±ã§æ¥ç¶ããã§ã¯ãªããããã¨
ã¾ããåVMã¤ã³ã¹ã¿ã³ã¹ã«ã¯ãCloud SQL ã®ã¹ã³ã¼ã(AWSã§ããEC2ãã¼ã«)ãä»ãã¦ãããã¨ãæ¿ããæ¨å¥¨ãã¾ããã¹ã³ã¼ãç¡ãã§ãåºæ¥ãã¨æãã¾ãããé¢åã ã¨æãã¾ãã
æé
ç°¡åã§ããGCSãããã¦ã³ãã¼ããã¦å®è¡ããã ãã§ããå¤å Go製ããªï¼ https://cloud.google.com/sql/docs/compute-engine-access
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy chmod +x cloud_sql_proxy sudo mkdir /cloudsql; sudo chmod 777 /cloudsql sudo ./cloud_sql_proxy -dir=/cloudsql &
ãã®å®è¡ã«ããã /cloudsql/ ãã£ã¬ã¯ããªã®ä¸ã«ãåCloud SQL ã¸ã®æ¥ç¶ç¨ Unix Socketãã§ãã mysqlã§ã¢ã¯ã»ã¹ãããªã
mysql -uroot -p -S /cloudsql/[INSTANCE_CONNECTION_NAME]
ã§æ¥ç¶ã§ãã¾ãã [INSTANCE_CONNECTION_NAME]
ã£ã¦ãªããããï¼ç¥ãã¾ããã大ãã¦é£ãã話ã§ã¯ãªãã¦ã-S ã§æãã¦ããã®ã¯ UNIX Socket ã®å ´æã§ãã Cloud SQL Proxyã INSTAANCE_CONNECTION_NAME(Cloud SQLã®ãï¼) ã§ UNIX Socketãä½ãã£ã¦ã ãã®è©±ã§ãã
èªåèµ·å
ãã ã®ã¢ããªã¼ã±ã·ã§ã³ãªã®ã§ãèªåèµ·åè¨å®ãå¿
è¦ã§ããåæã«ãã¼ã¢ã³åã¯ããã¿ããã§ããã
systemd
ã使ãããªã systemdã§
ãªããªã upstart
ã§è¨å®ããã°ãããã
HAProxyã§ RRè² è·åæ£
backend ã®æå®ã¯ UNIX Socket ã§ãåºæ¥ããããã§ãã(> 1.5)
åããã¨ã¯ç¢ºèªåºæ¥ã¾ãããã¬ããªã©ã°ãã²ã©ããã®ãæé¤ããå ´åã¯ãxinetd ãªã©ã§ httpãã確èªã«ãªãã¨æãã¾ãã
ã¾ã¨ã
Cloud SQL 2nd gen 使ããªã Cloud SQL Proxy 䏿
ã¡ãªãããå§åçã«å¤ãã®ã§ãä¸è¨ã®ã¿ã¨ãªãã¾ãã