Cloud SQL ãžã®æ°ããã¢ã¯ã»ã¹æ¹æ³ãšã㊠Private Service Connect ã 2023/8/21 ã« GA ãããŸããã
ãããŸã§ Cloud SQL ãžã®ãã©ã€ããŒãã¢ã¯ã»ã¹æ¹æ³ã¯ Private Services Access ãããããŸããã§ããããæ¬æ©èœããªãªãŒã¹ãããããšã§éžæè¢ãå¢ããŸããã
ä»å㯠Private Service Connect ãä»ãã Cloud SQL ãžã®ãã©ã€ããŒãã¢ã¯ã»ã¹ã«ã€ããŠã仿§ãç¹åŸŽããã³èšå®æ¹æ³ã解説ããŸãã
ãããã Private Service Connect ãšã¯ïŒ
Private Service Connect 㯠Google Cloud ãããã¯ãŒãã³ã°æ©èœã®äžã€ã§ãGoogle Cloud ã®å
¬éããã VPC ãã¹ãåãµãŒãã¹ã Google API ãžãã©ã€ããŒããããã¯ãŒã¯çµç±ã§ã¢ã¯ã»ã¹ããããã®ä»çµã¿ã§ãã
å
šãŠã®ãã©ãã£ãã¯ã Google Cloud å
ã§å®çµããããããããªãã¯ã€ã³ã¿ãŒããããçµç±ããããšãªãã»ãã¥ã¢ã§é«éãªéä¿¡ãå®çŸããããšãã§ããŸãã
Private Service Connect ã«ã¯ä»¥äžã®éä¿¡ã¿ã€ãããããŸããããã®å
ã®ãšã³ããã€ã³ããšåŒã°ããã¿ã€ãã䜿çšããæ¥ç¶ãCloud SQL ã«å¯Ÿå¿ããããšãä»åã®ã¢ããããŒãå
容ãšãªããŸãã
- ãšã³ããã€ã³ã
- ããã¯ãšã³ã
- ã€ã³ã¿ãŒãã§ãŒã¹ïŒãã¬ãã¥ãŒïŒ
ããã§ã¯ Cloud SQL ã«é¢é£ããéšåã«ãã©ãŒã«ã¹ãããããPrivate Service Connect èªäœã®è©³çްã«ã€ããŠã¯å ¬åŒããã¥ã¡ã³ããã確èªãã ããã
Private Service Connect ãä»ãã Cloud SQL ãžã®ãã©ã€ããŒãã¢ã¯ã»ã¹
ã¢ãŒããã¯ãã£
Cloud SQL ã®ãã㪠Google ãå
¬éããŠãããµãŒãã¹ã§ã¯ãPrivate Service Connect ãšã³ããã€ã³ããšåŒã°ããç¬èªã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ã«çŽã¥ã転éã«ãŒã«ããåãµãŒãã¹ã®ãµãŒãã¹ ã¢ã¿ããã¡ã³ãã«é¢é£ã¥ããããšã§å®çŸããããšãã§ããŸãã
ãµãŒãã¹ ã¢ã¿ããã¡ã³ãã¯å
éšã§ããŒããã©ã³ãµãŒãã¿ãŒã²ããã«ããä»çµã¿ãšãªã£ãŠããããã©ãã£ãã¯ã¯ãšã³ããã€ã³ããããã®ããŒããã©ã³ãµãŒãçµç±ããŠåãµãŒãã¹ãžéä¿¡ãããŸãã

ç¹åŸŽ
Private Service Connect ãä»ãã Cloud SQL ãžã®ãã©ã€ããŒãã¢ã¯ã»ã¹ã«ã¯ä»¥äžã®ç¹åŸŽããããŸãã
ç°ãªãè€æ°ã® VPC ããã®åæã¢ã¯ã»ã¹
æç€ºçã«èš±å¯ããããããžã§ã¯ãããã®åæã¢ã¯ã»ã¹ãå¯èœã§ãã
Private Services Access ã®ãã㪠VPC ãã¢ãªã³ã°ã§ã¯æšç§»çãã¢ãªã³ã°ããµããŒãããŠããªããããçŸç¶æ¬æ©èœã§ã®ã¿å®çŸã§ããæ§æãšãªããŸãã
DNS ã¬ã³ãŒãã§ã®ã¢ã¯ã»ã¹
ãã©ã€ããŒã IP ã¢ãã¬ã¹ã®ä»£ããã«ãDNS åã䜿çšã§ããŸãã
ã€ã³ã¹ã¿ã³ã¹ãå¥VPCã«ç§»åããå¿
èŠãããå Žåã§ããDNS åã¯ãã®ãŸãŸæ©èœããããã³ãŒããæ§æèšå®ã倿ŽããæéãçããŸãã
ãŸããIP ã¢ãã¬ã¹ãé衚瀺ãšãªãããšã«ããã»ãã¥ãªãã£åäžããDNS åã忣ããŒã¿ããŒã¹ã«ä¿åãããé«ã¹ã±ãŒã©ããªãã£æ§ã«ãã倿°ã®ãªã¯ãšã¹ããåŠçã§ãããšãã£ãã¡ãªããããããŸãã
å¶éäºé
以äžã®å¶éäºé ããããããå©çšããéã¯æ³šæãå¿ èŠã§ãã
- Cloud SQL ã€ã³ã¹ã¿ã³ã¹ã®ãµãŒãã¹ ã¢ã¿ããã¡ã³ãã«æ¥ç¶ã§ãã Private Service Connect ãšã³ããã€ã³ãã¯æå€§ 10 åãŸã§
- å€éšã¬ããªã«ã¯äœæäžå¯
- ã¯ãã¹ãªãŒãžã§ã³ã¬ããªã«ã¯ãµããŒããããŠããªããããã¬ããªã«ã¯ãã©ã€ã㪠ã€ã³ã¹ã¿ã³ã¹ãšåããªãŒãžã§ã³ã§ã®ã¿äœæå¯èœ
- æ¢åã®ã€ã³ã¹ã¿ã³ã¹ã§ Private Service Connect ãæå¹ãŸãã¯ç¡å¹ã«ããããšã¯ã§ããªã
- 2021/4/1 以éã« Cloud SQL ã®äœ¿çšãéå§ãããããžã§ã¯ãã§ã®ã¿äœæå¯èœ
- ãããªã㯠IP æ¥ç¶ãæå¹ã«ããããšã¯ã§ããªã
- Private Services Accessãæå¹ã«ããããæ¿èªããããããã¯ãŒã¯ãã€ã³ã¹ã¿ã³ã¹ã«è¿œå ãããããããšã¯ã§ããªã
- ã€ã³ã¹ã¿ã³ã¹ã®æ¥ç¶ã¿ã€ãã¯å€æŽäžå¯
- èªå¯ããããããã¯ãŒã¯ãä»ãã IP ããŒã¹ã®ãã¯ã€ããªã¹ãç»é²ã¯ãµããŒããããŠããªã
- gcloud sql connect ã³ãã³ããCloud ShellãCloud BuildãDatabase Migration ServiceãCloud SQL ã³ãã¯ã¿ãUnix ãœã±ããããªã³ãã¬ãã¹ç°å¢ãã Cloud SQL ã€ã³ã¹ã¿ã³ã¹ãžæ¥ç¶ã§ããªã
- æ¥ç¶ãã¹ã蚺æããŒã«ã§ã¯ä»¥äžã®èšå®ãã§ããªã
- ã€ã³ã¹ã¿ã³ã¹ã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ãŸã㯠DNS åãå®å ãšããŠæå®
- ãœãŒã¹ãšããŠã€ã³ã¹ã¿ã³ã¹ããã³ Private Service Connect ãšã³ããã€ã³ãã® IP ã¢ãã¬ã¹ãæå®
- å®å ãšããŠã€ã³ã¹ã¿ã³ã¹ãçŽæ¥æå®
- ãããã¯ãŒã¯ ãšã³ããã€ã³ãéã®æ¥ç¶ç¢ºèª
- CLIã®ä»¥äžãã©ã°ã«ã€ããŠå¶éãã
- âavailability-typeïŒé«å¯çšæ§ã€ã³ã¹ã¿ã³ã¹ã®ã¿ããµããŒãããããã REGIONAL ã«èšå®ããå¿ èŠããã
- âno-assign-ipïŒãããªã㯠IP ã§ã®æ¥ç¶ã¯ãµããŒããããŠããªãããèšå®å¿ é
- âauthorized-networksïŒæ¿èªããããããã¯ãŒã¯ã®è¿œå ã¯äžå¯
- âdatabase-versionïŒMySQL ãš PostgreSQL ã®ã¿ãµããŒã察象ã®ãããããããã®ããŒãžã§ã³ã«èšå®ããå¿ èŠããã
- ânetworkïŒPrivate Services Access ã¯æ§æäžå¯
- âallocated-ip-range-nameïŒèš±å¯ããã IP ç¯å²ããµããŒããããŠããªãããèšå®äžå¯
Private Services Accessãšã®æ¯èŒ
| é ç® | Private Services Access | Private Service Connect |
|---|---|---|
| Cloud SQL ã®æ§æ | ã·ã³ã°ã« ãã«ã |
ãã«ãã®ã¿ |
| ã¢ã¯ã»ã¹æ¹åŒ | VPC ãã¢ãªã³ã° | ç¬èªãšã³ããã€ã³ã |
| ã¢ã¯ã»ã¹å¶åŸ¡ | Firewall VPC åäœ IP ç¯å²åäœ |
Firewall ãããžã§ã¯ãåäœ |
| ãšã³ããã€ã³ã | ãã©ã€ããŒã IP | ãã©ã€ããŒã IP DNS å |
| ãããªã㯠IP | 䜵çšå¯èœ | 䜵çšäžå¯ |
| 察å¿ãšã³ãžã³ | MySQL PostgreSQL SQL Server |
MySQL PostgreSQL |
| ã¬ããªã«äœæ | å¶éãªã | äžéšå¶éãã |
èšå®æ¹æ³
äºåæºå
Cloud SQL ã€ã³ã¹ã¿ã³ã¹ã§ Private Service Connect ã䜿çšããã«ã¯ä»¥äžã®ããŒã«ãå¿ èŠã§ãã
- Cloud SQL 管çè ïŒcloudsql.adminïŒ
- ã³ã³ãã¥ãŒãã£ã³ã°ãããã¯ãŒã¯ç®¡çè ïŒcompute.networkAdminïŒ
- DNS管çè ïŒdns.adminïŒ
- Cloud SQL ã€ã³ã¹ã¿ã³ã¹ ãŠãŒã¶ãŒïŒcloudsql.instanceUserïŒ
â»Cloud SQL Auth Proxy ã¯ã©ã€ã¢ã³ãçµç±ã§æ¥ç¶ããå Žåã«å¿ èŠãªãããçŽæ¥æ¥ç¶ããå Žåã¯ãªããŠãOK
æ§ç¯æé
çŸç¶ãããžã¡ã³ãã³ã³ãœãŒã«ããã®äœæã¯å¯Ÿå¿ããŠããŸããã®ã§ãgcloud CLI ã䜿çšããå¿
èŠããããŸãã
ãããžã§ã¯ã㯠gcloud config set project ã§äºãã»ããããŠããŸãã
1. Cloud SQL ã€ã³ã¹ã¿ã³ã¹ã®äœæ
Private Service Connect ãæå¹ãªã€ã³ã¹ã¿ã³ã¹ãäœæããŸãã
gcloud sql instances create ãã€ã³ã¹ã¿ã³ã¹åã \
--region=ããªãŒãžã§ã³ã \
--enable-private-service-connect \
--allowed-psc-projects=ãã¢ã¯ã»ã¹ãèš±å¯ãããããžã§ã¯ã IDã \ #project-a,project-b,...ã®ããã«è€æ°æå®ãå¯èœ
--availability-type=regional \
--no-assign-ip \
--tier=ããã·ã³ã¿ã€ãã \
--enable-bin-log \
--database-version=ããšã³ãžã³ããŒãžã§ã³ã
Private Service Connect ã®èšå®ã«å¿ èŠãªãã©ã°ã¯ä»¥äžã§ãã
- enable-private-service-connectïŒPrivate Service Connect ãšã³ããã€ã³ãããã®ã¢ã¯ã»ã¹ãèš±å¯
- allowed-psc-projectsïŒã¢ã¯ã»ã¹ãèš±å¯ãããããžã§ã¯ã ID ã®ãªã¹ã
- no-assign-ipïŒãããªã㯠IP ã¢ãã¬ã¹ãä»äžããªã
2. ãµãŒãã¹ ã¢ã¿ããã¡ã³ã URI ã確èª
Private Service Connect ãšã³ããã€ã³ãã®äœææã«ããµãŒãã¹ ã¢ã¿ããã¡ã³ããæå®ããå¿
èŠãããã®ã§å
ã«ç¢ºèªããŸãã
ãµãŒãã¹ ã¢ã¿ããã¡ã³ãã¯ã€ã³ã¹ã¿ã³ã¹äœææã«èªåã§äœæãããŸãã
gcloud sql instances describe ãã€ã³ã¹ã¿ã³ã¹åã åºåäŸ ~~~ pscServiceAttachmentLink: projects/xxxxxxxx/regions/asia-northeast1/serviceAttachments/xxxx-psc-service-attachment-xxxx ~~~
ãŸããPrivate Service Connect ã«é¢ä¿ããé ç®ã¯ä»¥äžã§ãã
- dnsNameïŒã€ã³ã¹ã¿ã³ã¹ã® DNS å
- pscServiceAttachmentLinkïŒã€ã³ã¹ã¿ã³ã¹ã®ãµãŒãã¹ ã¢ã¿ããã¡ã³ããæã URI
- allowedConsumerProjectsïŒã€ã³ã¹ã¿ã³ã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããããããžã§ã¯ã ID ã®ãªã¹ã
- pscEnabledïŒPrivate Service Connect ãæå¹ãã©ãã
3.Private Service Connect ãšã³ããã€ã³ããäœæ
â»ãããã㯠allowedConsumerProjects ã§èš±å¯ãããããžã§ã¯ãæ¯ã«èšå®ãå¿
èŠã§ãã
å ã« Private Service Connect ãšã³ããã€ã³ãã§äœ¿çšãããã©ã€ããŒã IP ã¢ãã¬ã¹ãäºçŽããŸãã
gcloud compute addresses create ããã©ã€ããŒã IP ã¢ãã¬ã¹åã \
--region=ããªãŒãžã§ã³ã \
--subnet=ããµããããåã \
--addresses=ãäºçŽãã IP ã¢ãã¬ã¹ã #ãµããããã®ãã©ã€ã㪠IP ç¯å²å
ã§æå®
ãã©ã€ããŒã IP ã¢ãã¬ã¹ãäºçŽãããããšã確èªããããã«ä»¥äžãå®è¡ããŸãã
STATUS ã®å€ã RESERVED ãšãªã£ãŠããã° OK ã§ãã
gcloud compute addresses list ããã©ã€ããŒã IP ã¢ãã¬ã¹åã ~~~ STATUS: RESERVED
ãããŸã§ã«äœæããŠãããªãœãŒã¹ãæå®ããŠãPrivate Service Connect ãšã³ããã€ã³ããäœæããŸãã
gcloud compute forwarding-rules create ããšã³ããã€ã³ãåã \
--address=ããã©ã€ããŒã IP ã¢ãã¬ã¹åã \
--region=ããªãŒãžã§ã³ã \
--network=ãVPCåã \
--target-service-attachment=ããµãŒãã¹ ã¢ã¿ããã¡ã³ã URIã
ãšã³ããã€ã³ãããµãŒãã¹ ã¢ã¿ããã¡ã³ãã«ãã£ãŠåãå
¥ããããããšã確èªããŸãã
pscConnectionStatus ã®å€ã ACCEPTED ãšãªã£ãŠããã° OK ã§ãã
gcloud compute forwarding-rules describe ãPrivate Service Connect ãšã³ããã€ã³ãåã \
--region=ããªãŒãžã§ã³ã
PENDING ããå€ãããªãå Žåã¯ã察象ãããžã§ã¯ããèš±å¯ãªã¹ãã«ç»é²ãããŠããªãå¯èœæ§ããããŸãã
åãããžã§ã¯ãããã¢ã¯ã»ã¹ããå Žåã§ããèš±å¯ãªã¹ãã«å«ããå¿
èŠãããã®ã§æ³šæã§ãã
ã¢ã¯ã»ã¹æ¹æ³
Private Service Connect ãæå¹ãª Cloud SQL ã€ã³ã¹ã¿ã³ã¹ãžã®ã¢ã¯ã»ã¹æ¹æ³ã¯è€æ°ãããŸãã
- ãã©ã€ããŒã IP ã¢ãã¬ã¹
- DNS ã¬ã³ãŒã
- Cloud SQL Auth ãããã·
- Cloud SQL èšèªã³ãã¯ã¿
ãã©ã€ããŒã IP ã¢ãã¬ã¹ä»¥å€ã®ã¢ã¯ã»ã¹æ¹æ³ã§ã¯ãå¥é DNS ãããŒãžããŸãŒã³ãš DNS ã¬ã³ãŒããæ§æããå¿
èŠããããŸãã
ããããäžè¿°ããå©ç¹ã®ãã DNS ã¬ã³ãŒãã§ã¢ã¯ã»ã¹ããããšãæšå¥šãããŠãããŸãã®ã§ãä»å㯠DNS ã¬ã³ãŒãã§çŽæ¥ã¢ã¯ã»ã¹ããæ¹æ³ã§ç¢ºèªããŸãã
1. DNS ãããŒãžã ãŸãŒã³ãš DNS ã¬ã³ãŒããæ§æ
æé 2 ã®ã³ãã³ãã®çµæãã DNS åã確èªã§ããŸãã
DNS å㯠xxxx.xxxx.asia-northeast1.sql.goog. ã®ãããªããªãªãã§çµãããã®ã§ãã
確èªããå€ãæå®ããŠãCloud DNS ã§ãã©ã€ããŒã DNS ãŸãŒã³ãäœæããŸãã
gcloud dns managed-zones create ãDNS ãŸãŒã³åã \
--description="ããŸãŒã³ã®èª¬æã"ã#å¿
é é
ç®
--dns-name=ãDNS åã \
--networks=ãVPC åã \
--visibility=private
ãŸãŒã³ãäœæã§ããããæ¬¡ã« DNS ã¬ã³ãŒããäœæããŸãã
gcloud dns record-sets create DNS å \
--type=ãã¬ã³ãŒã ã¿ã€ãã \
--rrdatas=ããã©ã€ããŒã IP ã¢ãã¬ã¹ã \
--zone=ãDNS ãŸãŒã³åã
2. MySQL ã¯ã©ã€ã¢ã³ãããã¢ã¯ã»ã¹
èš±å¯ããã VPC å
ã« GCE ãäœæããMySQL ã¯ã©ã€ã¢ã³ããå°å
¥ããŠã¢ã¯ã»ã¹ããŸãã
Firewall ã§ã®èš±å¯èšå®ãå¿
èŠãªå Žåã¯ãPrivate Service Connect ãšã³ããã€ã³ãã®ãã©ã€ããŒã IP ã¢ãã¬ã¹ã«å¯ŸããŠæå®ããããšãã§ããŸãã
mysql --host=ãDNS åã --user=ãã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ãããŠãŒã¶ãŒåã -p
ãã®ä»
ãµãŒããŒã¬ã¹ ãµãŒãã¹ããã®ã¢ã¯ã»ã¹
以äžã®ãµããŒããããŠãããµãŒãã¹ããã¢ã¯ã»ã¹ããããšãã§ããŸãã
ãããã®ãµãŒããŒã¬ã¹ç°å¢ã§ã¯ãCloud SQL èšèªã³ãã¯ã¿ãšããã©ã€ããŒã IP ã¢ãã¬ã¹äœ¿çšããçŽæ¥ã¢ã¯ã»ã¹ããµããŒããããŠããŸãã
- App Engine Standard
- Cloud Run
- Cloud Functions
BigQuery ããã®ã¢ã¯ã»ã¹
BigQuery ã§ã¯ã--enable-google-private-path ãã©ã¡ãŒã¿ã䜿çšã㊠Cloud SQL ã®ããŒã¿ã«ã¢ã¯ã»ã¹ãããã©ã€ããŒã IP æ¥ç¶çµç±ã§ããŒã¿ã«å¯ŸããŠã¯ãšãªãå®è¡ã§ããŸãã
äžèšã®ãã©ã¡ãŒã¿ã䜿çšããã«ã¯ã以äžã®ãã©ã¡ãŒã¿ãæå¹ã«ããå¿
èŠããããŸãã
- âno-assign-ip
- ânetwork
çµããã«
Private Service Connect ãä»ãã Cloud SQL ãžã®ãã©ã€ããŒãã¢ã¯ã»ã¹ã®ä»çµã¿ãç¹åŸŽãããã³èšå®æ¹æ³ã«ã€ããŠè§£èª¬ããŸããã
ç°ãªããããžã§ã¯ãããã®åæã¢ã¯ã»ã¹ã DNS ã¬ã³ãŒããåç
§å
ãšããŠã¢ã¯ã»ã¹å¯èœãªã©æ¬æ©èœãªãã§ã¯ã®ã¡ãªããããããŸããã现ããå¶éäºé
ãå€ããã仿§ãæ£ããçè§£ããäžã§å©çšã§ããæ©èœã ãšæããŸããã
æ©èœã圹å²ããšã«ãããžã§ã¯ããåé¢ããã¢ãŒããã¯ãã£ã®ãããªå Žåã«ããã广çãªæ©èœããšæããŸãïŒ
åèïŒ
Private Service Connect
Private Service Connect ã®æŠèŠ
Private Service Connect ã䜿çšããŠã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ãã