ãã®ããã¥ã¡ã³ãã§ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®æ§æã«å¿ èŠãªã³ã³ã»ããã«ã€ããŠèª¬æããŸãã
Google Cloud å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ããããã·ããŒã¹ã®ã¬ã€ã€ 7 ããŒããã©ã³ãµã§ããããã䜿çšãããšã1 ã€ã®å éš IP ã¢ãã¬ã¹ã®èåŸã§ãµãŒãã¹ãå®è¡ããã¹ã±ãŒã«ã§ããŸãããã®å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãCompute EngineãGoogle Kubernetes EngineïŒGKEïŒãCloud Run ãªã©ã®ããŸããŸãª Google Cloud ãã©ãããã©ãŒã ã§ãã¹ããããŠããããã¯ãšã³ãã« HTTP / HTTPS ã®ãã©ãã£ãã¯ã忣ããŸãã詳ããã¯ããŠãŒã¹ã±ãŒã¹ãã芧ãã ããã
éçšã¢ãŒã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ã次ã®ã¢ãŒãã§æ§æã§ããŸãã
- ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãããã¯ããªãŒãã³ãœãŒã¹ã® Envoy ãããã·ã§ãããŒãžã ãµãŒãã¹ãšããŠå®è£ ããããã«ããªãŒãžã§ã³ ããŒããã©ã³ãµã§ããã¯ãã¹ãªãŒãžã§ã³ ã¢ãŒãã䜿çšãããšãã°ããŒãã«ã«åæ£ããŠããããã¯ãšã³ã ãµãŒãã¹ã«ãã©ãã£ãã¯ãããŒããã©ã³ã¹ã§ããŸããããšãã°ãæãè¿ãããã¯ãšã³ãã«ãã©ãã£ãã¯ã転éããããã«ãã©ãã£ãã¯ã管çã§ããŸãããã®ããŒããã©ã³ãµã¯é«å¯çšæ§ãå®çŸããŸããããã¯ãšã³ããè€æ°ã®ãªãŒãžã§ã³ã«é 眮ãããšãåäžãªãŒãžã§ã³ã«ãããé害ãåé¿ã§ããŸãã1 ã€ã®ãªãŒãžã§ã³ã®ããã¯ãšã³ãã忢ããå Žåã«ããã©ãã£ãã¯ãå¥ã®ãªãŒãžã§ã³ã«ãã§ã€ã«ãªãŒããŒã§ããŸãã
ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãããã¯ããªãŒãã³ãœãŒã¹ã® Envoy ãããã·ãããŒã¹ã«ãããŒãžã ãµãŒãã¹ãšããŠå®è£ ããããªãŒãžã§ã³ ããŒããã©ã³ãµã§ãããªãŒãžã§ã³ ã¢ãŒãã§ã¯ãããã¯ãšã³ããåäžã® Google Cloud ãªãŒãžã§ã³ã«ååšããå¿ èŠããããŸããã¯ã©ã€ã¢ã³ãã¯ã転éã«ãŒã«ã§ã°ããŒãã« ã¢ã¯ã»ã¹ãç¡å¹ãæå¹ãã«åºã¥ããŠããã®ãªãŒãžã§ã³ã«éå®ããããšããä»»æã®ãªãŒãžã§ã³ã«é 眮ããããšãã§ããŸãããã®ããŒããã©ã³ãµã䜿çšãããšãHTTP ãŸã㯠HTTPS ãã©ã¡ãŒã¿ã«åºã¥ãè±å¯ãªãã©ãã£ãã¯å¶åŸ¡æ©èœã䜿çšã§ããŸããããŒããã©ã³ãµã®æ§æãçµãããšããã©ãã£ãã¯ã®ããŒãºã«å¿ã㊠Envoy ãããã·ãèªåçã«å²ãåœãŠãããŸãã
次ã®è¡šã«ãã¯ãã¹ãªãŒãžã§ã³ ã¢ãŒããšãªãŒãžã§ã³ ã¢ãŒãã®éèŠãªéãã瀺ããŸãã
ããŒããã©ã³ãµ ã¢ãŒã æ©èœ ããŒããã©ã³ãµã®ä»®æ³ IP ã¢ãã¬ã¹ïŒVIPïŒ ã¯ã©ã€ã¢ã³ã ã¢ã¯ã»ã¹ ããŒããã©ã³ã¹ãããããã¯ãšã³ã é«å¯çšæ§ãšãã§ã€ã«ãªãŒã㌠ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ ç¹å®ã® Google Cloud ãªãŒãžã§ã³ã®ãµããããããå²ãæ¯ãããŸãã è€æ°ã®ãªãŒãžã§ã³ã® VIP ã¢ãã¬ã¹ã¯ãåãã°ããŒãã« ããã¯ãšã³ã ãµãŒãã¹ãå ±æã§ããŸããDNS ããŒã¹ã®ã°ããŒãã« ããŒã ãã©ã³ã·ã³ã°ãæ§æããã«ã¯ãDNS ã«ãŒãã£ã³ã° ããªã·ãŒã䜿çšããŠãã¯ã©ã€ã¢ã³ã ãªã¯ãšã¹ããæãè¿ã VIP ã¢ãã¬ã¹ã«è»¢éããŸãã
åžžã«ã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœVPC å ã®ä»»æã® Google Cloud ãªãŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµã«ãã©ãã£ãã¯ãéä¿¡ã§ããŸãã ã°ããŒãã« ããã¯ãšã³ãã
ããŒããã©ã³ãµã¯ãä»»æã®ãªãŒãžã§ã³ã®ããã¯ãšã³ãã«ãã©ãã£ãã¯ãéä¿¡ã§ããŸããåäžãŸãã¯ç°ãªããªãŒãžã§ã³ã®æ£åžžãªããã¯ãšã³ããžã®èªåãã§ã€ã«ãªãŒããŒã ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ ç¹å®ã® Google Cloud ãªãŒãžã§ã³ã®ãµããããããå²ãæ¯ãããŸãã ããã©ã«ãã§ã¯ãã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœã§ã¯ãããŸããã
å¿ èŠã«å¿ããŠãã°ããŒãã« ã¢ã¯ã»ã¹ãæå¹ã«ããããšãã§ããŸãããªãŒãžã§ã³ ããã¯ãšã³ãã
ããŒããã©ã³ãµã¯ãããŒããã©ã³ãµã®ãããã·ãšåããªãŒãžã§ã³ã«ããããã¯ãšã³ãã«ã®ã¿ãã©ãã£ãã¯ãéä¿¡ã§ããŸããåããªãŒãžã§ã³å ã®æ£åžžãªããã¯ãšã³ããžã®èªåãã§ã€ã«ãªãŒããŒã
ã¢ãŒããç¹å®ãã
ã³ã³ãœãŒã«
Google Cloud ã³ã³ãœãŒã«ã§ã[ããŒã ãã©ã³ã·ã³ã°] ããŒãžã«ç§»åããŸãã
[ããŒããã©ã³ãµ] ã¿ãã«ãããŒããã©ã³ãµã®ã¿ã€ãããããã³ã«ããªãŒãžã§ã³ã衚瀺ãããŸãããªãŒãžã§ã³ã空ã®å ŽåãããŒããã©ã³ãµã¯ã¯ãã¹ãªãŒãžã§ã³ ã¢ãŒãã«ãªã£ãŠããŸããæ¬¡ã®è¡šã«ãããŒããã©ã³ãµã®ã¢ãŒããèå¥ããæ¹æ³ã瀺ããŸãã
ããŒããã©ã³ãµ ã¢ãŒã ããŒããã©ã³ãµã®çš®é¡ ã¢ã¯ã»ã¹ã¿ã€ã ãªãŒãžã§ã³ ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ ã¢ããªã±ãŒã·ã§ã³ å éš ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ ã¢ããªã±ãŒã·ã§ã³ å éš ãªãŒãžã§ã³ã®æå®
gcloud
ããŒããã©ã³ãµã®ã¢ãŒãã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME
ã³ãã³ãåºåã§ãããŒã ãã©ã³ã·ã³ã° ã¹ããŒã ããªãŒãžã§ã³ããããã¯ãŒã¯ ãã£ã¢ã確èªããŸããæ¬¡ã®è¡šã«ãããŒããã©ã³ãµã®ã¢ãŒããèå¥ããæ¹æ³ã瀺ããŸãã
ããŒããã©ã³ãµ ã¢ãŒã ããŒã ãã©ã³ã·ã³ã° ã¹ããŒã 転éã«ãŒã« ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ INTERNAL_MANAGED ã°ããŒãã« ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ INTERNAL_MANAGED ãªãŒãžã§ã³
ã¢ãŒããã¯ãã£ãšãªãœãŒã¹
次ã®å³ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«å¿ èŠãª Google Cloud ãªãœãŒã¹ã瀺ããŠããŸãã
ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ
次ã®å³ã¯ãåã VPC ãããã¯ãŒã¯å ã®ãã¬ãã¢ã ãã£ã¢ã«ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµããããã€ããå Žåã®ã³ã³ããŒãã³ãã瀺ããŠããŸããåã°ããŒãã«è»¢éã«ãŒã«ã¯ãã¯ã©ã€ã¢ã³ããæ¥ç¶ã«äœ¿çšãããªãŒãžã§ã³ IP ã¢ãã¬ã¹ã䜿çšããŸãã
ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ
ãã®å³ã¯ããã¬ãã¢ã ãã£ã¢ã«ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµããããã€ããå Žåã®ã³ã³ããŒãã³ãã瀺ããŠããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ãããã€ã«ã¯ã次ã®ãªãœãŒã¹ãå¿ èŠã§ãã
ãããã·å°çšãµãããã
åã®å³ã§ã¯ããããã·å°çšãµããããã«ã¯ãGoogle ããŠãŒã¶ãŒã«ä»£ãã£ãŠ Envoy ãããã·ãå®è¡ããéã«äœ¿çšããäžé£ã® IP ã¢ãã¬ã¹ãçšæãããŠããŸããå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã䜿çšãã VPC ãããã¯ãŒã¯ã®ãªãŒãžã§ã³ããšã«ãããã·å°çšãµããããã 1 ã€äœæããå¿ èŠããããŸãã
次ã®è¡šã«ãã¯ãã¹ãªãŒãžã§ã³ ã¢ãŒããšãªãŒãžã§ã³ ã¢ãŒãã§ã®ãããã·å°çšãµããããéã®éãã瀺ããŸããã¯ãã¹ãªãŒãžã§ã³ ããŒããã©ã³ãµãšãªãŒãžã§ã³ ããŒããã©ã³ãµã§åããµãããããå ±æããããšã¯ã§ããŸããã
| ããŒããã©ã³ãµ ã¢ãŒã | ãããã·å°çšãµããããã® --purpose ãã©ã°ã®å€ |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
GLOBAL_MANAGED_PROXY ããŒããã©ã³ãµãæ§æãããåãªãŒãžã§ã³ã§ãã¯ãã¹ãªãŒãžã§ã³ã® Envoy ããŒã¹ã®ããŒããã©ã³ãµã«ã¯ãããã·å°çšãµãããããå¿ èŠã§ããåããªãŒãžã§ã³ãšãããã¯ãŒã¯ã«ããã¯ãã¹ãªãŒãžã§ã³ ããŒããã©ã³ãµ ãããã·ã¯ãåããããã·å°çšãµãããããå ±æããŸãã |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
REGIONAL_MANAGED_PROXY ãªãŒãžã§ã³ãš VPC ãããã¯ãŒã¯å ã®ãã¹ãŠã®ãªãŒãžã§ã³ Envoy ããŒã¹ã®ããŒããã©ã³ãµã¯ãåããããã·å°çšãµãããããå ±æããŸãã |
é¢é£æ å ±:
- ãããã·å°çšãµãããã㯠Envoy ãããã·ã«ã®ã¿äœ¿çšãããããã¯ãšã³ãã«ã¯äœ¿çšãããŸããã
- ãªãŒãžã§ã³ãš VPC ãããã¯ãŒã¯å ã®ãã¹ãŠã®å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ããã¯ãšã³ã VM ãŸãã¯ãšã³ããã€ã³ãã¯ããããã·å°çšãµããããããã®æ¥ç¶ãåä¿¡ããŸãã
- å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ä»®æ³ IP ã¢ãã¬ã¹ã¯ããããã·å°çšãµããããã«ã¯ãããŸãããããŒããã©ã³ãµã® IP ã¢ãã¬ã¹ã¯ãåŸè¿°ããå éšãããŒãžã転éã«ãŒã«ã§å®çŸ©ããŸãã
転éã«ãŒã«ãš IP ã¢ãã¬ã¹
転éã«ãŒã«ã¯ãIP ã¢ãã¬ã¹ãããŒãããããã³ã«ã«åºã¥ããŠãã¿ãŒã²ãã ãããã·ãšããã¯ãšã³ã ãµãŒãã¹ãããªãããŒã ãã©ã³ã·ã³ã°æ§æã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ããŸãã
IP ã¢ãã¬ã¹ã®æå®ãå転éã«ãŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã® DNS ã¬ã³ãŒãã§äœ¿çšã§ããåäžã®ãªãŒãžã§ã³ IP ã¢ãã¬ã¹ãåç §ããŸãã䜿çšã§ããéç IP ã¢ãã¬ã¹ãäºçŽããããCloud Load Balancing ããå²ãåœãŠãŸããæšå¥šãããŠããã®ã¯éç IP ã¢ãã¬ã¹ã®äºçŽã§ããéçã¢ãã¬ã¹ãäºçŽããªãå Žåã転éã«ãŒã«ãåé€ããŠæ°ããäœãçŽããã³ã« DNS ã¬ã³ãŒããç·šéããŠãæ°ããå²ãåœãŠããããšãã§ã¡ã©ã« IP ã¢ãã¬ã¹ã«çŽãå¿ èŠãããããã§ãã
ã¯ã©ã€ã¢ã³ã㯠IP ã¢ãã¬ã¹ãšããŒãã䜿çšããŠããŒããã©ã³ãµã® Envoy ãããã·ã«æ¥ç¶ããŸãã転éã«ãŒã«ã® IP ã¢ãã¬ã¹ã¯ããŒããã©ã³ãµã® IP ã¢ãã¬ã¹ã§ãïŒä»®æ³ IP ã¢ãã¬ã¹ãŸã㯠VIP ãšåŒã¶ããšããããŸãïŒãããŒããã©ã³ãµã«æ¥ç¶ããã¯ã©ã€ã¢ã³ãã¯ãHTTP ããŒãžã§ã³ 1.1 以éã䜿çšããå¿ èŠããããŸãããµããŒããããŠãããããã³ã«ã®äžèЧã«ã€ããŠã¯ãããŒããã©ã³ãµã®æ©èœã®æ¯èŒãã芧ãã ããã
転éã«ãŒã«ã«é¢é£ä»ããããå éš IP ã¢ãã¬ã¹ã¯ãããã¯ãšã³ããšåããããã¯ãŒã¯ãšãªãŒãžã§ã³ã«ãããµããããããååŸã§ããŸãã
ããŒãã®æå®ãã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®è»¢éã«ãŒã«ã§ã¯ã1ïœ65535 ã®åäžããŒããåç §ã§ããŸããè€æ°ã®ããŒãããµããŒãããã«ã¯ãè€æ°ã®è»¢éã«ãŒã«ãæ§æããå¿ èŠããããŸããIP ã¢ãã¬ã¹ãããŒãããããã³ã«ã®çµã¿åãããå転éã«ãŒã«ã§äžæã§ããéããè€æ°ã®è»¢éã«ãŒã«ãæ§æããŠãåãå éš IP ã¢ãã¬ã¹ïŒVIPïŒã䜿çšããåãã¿ãŒã²ãã HTTP ãŸã㯠HTTPS ãããã·ãåç §ã§ããŸããããã«ãããå ±æ URL ããããæã€åäžã®ããŒããã©ã³ãµãè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã®ãããã·ãšããŠäœ¿çšã§ããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã䜿çšãã転éã«ãŒã«ãIP ã¢ãã¬ã¹ãããŒã ãã©ã³ã·ã³ã° ã¹ããŒã ã®ã¿ã€ãã¯ãããŒããã©ã³ãµã®ã¢ãŒãã«ãã£ãŠç°ãªããŸãã
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | |||||
|---|---|---|---|---|---|
| 転éã«ãŒã« | |||||
| ãªãŒãžã§ã³ IP ã¢ãã¬ã¹ | |||||
| ããŒã ãã©ã³ã·ã³ã° ã¹ããŒã |
|
||||
| IP ã¢ãã¬ã¹ïŒçç¥å¯ïŒ |
|
||||
| ã¯ã©ã€ã¢ã³ãããããŒããã©ã³ãµã®ããã³ããšã³ããžã®ã«ãŒãã£ã³ã° | ã°ããŒãã« ã¢ã¯ã»ã¹ã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠãããVPC å ã®ä»»æã®ãªãŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããŸããããã¯ãšã³ãã¯è€æ°ã®ãªãŒãžã§ã³ã«é 眮ã§ããŸãã |
||||
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | |||||
| 転éã«ãŒã« | |||||
| ãªãŒãžã§ã³ IP ã¢ãã¬ã¹ | |||||
| ããŒã ãã©ã³ã·ã³ã° ã¹ããŒã |
|
||||
| IP ã¢ãã¬ã¹ïŒçç¥å¯ïŒ |
|
||||
| ã¯ã©ã€ã¢ã³ãããããŒããã©ã³ãµã®ããã³ããšã³ããžã®ã«ãŒãã£ã³ã° | ã°ããŒãã« ã¢ã¯ã»ã¹ãæå¹ã«ããŠãVPC å ã®ä»»æã®ãªãŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµã«ã¢ã¯ã»ã¹å¯èœã«ã§ããŸãããŸããããã¯ãšã³ããããŒããã©ã³ãµãšåããªãŒãžã§ã³ã«ååšããå¿ èŠããããŸãã |
||||
転éã«ãŒã«ãš VPC ãããã¯ãŒã¯
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§äœ¿çšããã転éã«ãŒã«ã VPC ãããã¯ãŒã¯ã«é¢é£ä»ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
| ããŒããã©ã³ãµ ã¢ãŒã | VPC ãããã¯ãŒã¯ã®é¢é£ä»ã |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å
éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
ãªãŒãžã§ã³å éš IPv4 ã¢ãã¬ã¹ã¯åžžã« VPC ãããã¯ãŒã¯å ã«ååšããŸãã転éã«ãŒã«ãäœæãããšãã«ãå éš IP ã¢ãã¬ã¹ãååŸãããµãããããæå®ããå¿ èŠããããŸãããã®ãµããããã¯ããããã·å°çšãµãããããäœæããããªãŒãžã§ã³ãš VPC ãããã¯ãŒã¯ã«ååšããå¿ èŠããããŸãããã®ãããæé»çãªãããã¯ãŒã¯ã®é¢é£ä»ããååšããŸãã |
ã¿ãŒã²ãã ãããã·
ã¿ãŒã²ãã HTTP ãŸã㯠HTTPS ãããã·ã¯ãã¯ã©ã€ã¢ã³ãããã® HTTP(S) æ¥ç¶ãçµç«¯ããŸããHTTP(S) ãããã·ã¯ãURL ããããåç §ããŠãã©ãã£ãã¯ãããã¯ãšã³ãã«è»¢éããæ¹æ³ã決å®ããŸããã¿ãŒã²ãã HTTPS ãããã·ã¯ãSSL èšŒææžã䜿çšããŠã¯ã©ã€ã¢ã³ãã«å¯ŸããŠèªèº«ãèªèšŒããŸãã
ããŒããã©ã³ãµã¯ãå
ã®ã¯ã©ã€ã¢ã³ã ãªã¯ãšã¹ãã® Host ããããŒãä¿æããŸãããŸããããŒããã©ã³ãµã¯ X-Forwarded-For ããããŒã« 2 ã€ã® IP ã¢ãã¬ã¹ã远å ããŸãã
- ããŒããã©ã³ãµã«æ¥ç¶ããã¯ã©ã€ã¢ã³ãã® IP ã¢ãã¬ã¹
- ããŒããã©ã³ãµã®è»¢éã«ãŒã«ã® IP ã¢ãã¬ã¹
åä¿¡ãªã¯ãšã¹ãã« X-Forwarded-For ããããŒããªãå ŽåãããããŒã®å€ã¯ãã® 2 ã€ã® IP ã¢ãã¬ã¹ã ãã§ãããªã¯ãšã¹ãã« X-Forwarded-For ããããŒãããå ŽåãããŒããã©ã³ãµãžã®ãªã¯ãšã¹ãäžã«ãããã·ã«ãã£ãŠèšé²ããã IP ã¢ãã¬ã¹ãªã©ã®ä»ã®æ
å ±ã¯ã2 ã€ã® IP ã¢ãã¬ã¹ã®åã«ä¿æãããŸããããŒããã©ã³ãµã¯ããã®ããããŒã®æåŸã® 2 ã€ã® IP ã¢ãã¬ã¹ããåã® IP ã¢ãã¬ã¹ã確èªããŸããã
ããã¯ãšã³ã ãµãŒããŒãšããŠãããã·ãå®è¡ããŠããå Žåããã®ãããã·ã¯éåžžãããå€ãã®æ
å ±ã X-Forwarded-For ããããŒã«è¿œå ããããããœãããŠã§ã¢ã§ãããèæ
®ããå¿
èŠãããå ŽåããããŸããããŒããã©ã³ãµãããããã·ããããªã¯ãšã¹ãã¯ããããã·å°çšãµããããã® IP ã¢ãã¬ã¹ããéä¿¡ãããŸããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã®ãããã·ã§ã¯ããã®ã¢ãã¬ã¹ã«å ããŠãããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã®ç¬èªã® IP ã¢ãã¬ã¹ãèšé²ããå ŽåããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã§åŠçããå¿ èŠããããã©ãã£ãã¯ã®çš®é¡ã«å¿ããŠãã¿ãŒã²ãã HTTP ãããã·ãŸãã¯ã¿ãŒã²ãã HTTPS ãããã·ã䜿çšããŠãããŒããã©ã³ãµãæ§æã§ããŸãã
次ã®è¡šã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«å¿ èŠãªã¿ãŒã²ãã ãããã· API ã瀺ãããã®ã§ãã
| ããŒããã©ã³ãµ ã¢ãŒã | ã¿ãŒã²ãã ãããã· |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
SSL èšŒææž
ã¿ãŒã²ãã HTTPS ãããã·ã䜿çšããå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«ã¯ãããŒããã©ã³ãµã®æ§æã®äžéšãšããŠç§å¯éµãš SSL èšŒææžãå¿ èŠã§ãã
次ã®è¡šã«ãåã¢ãŒãã®å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãå¿ èŠãšãã SSL èšŒææžã®ã¿ã€ãã瀺ããŸãã
| ããŒããã©ã³ãµ ã¢ãŒã | SSL èšŒææžã®çš®é¡ |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | Certificate Manager ã®ã»ã«ããããŒãžãèšŒææžãš Google ãããŒãžãèšŒææžã Certificate Manager ã§ã¯ã次ã®ã¿ã€ãã® Google ãããŒãžãèšŒææžããµããŒããããŠããŸãã
ããŒããã©ã³ãµèªèšŒã䜿çšãã Google ãããŒãžãèšŒææžã¯ãµããŒããããŠããŸããã Compute Engine SSL èšŒææžã¯ãµããŒããããŠããŸããã |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | Compute Engine ãªãŒãžã§ã³ SSL èšŒææž Certificate Manager ã®ã»ã«ããããŒãžãèšŒææžãš Google ãããŒãžãèšŒææžã Certificate Manager ã§ã¯ã次ã®ã¿ã€ãã® Google ãããŒãžãèšŒææžããµããŒããããŠããŸãã
ããŒããã©ã³ãµèªèšŒã䜿çšãã Google ãããŒãžãèšŒææžã¯ãµããŒããããŠããŸããã |
URL ããã
ã¿ãŒã²ãã HTTP(S) ãããã·ã¯ãURL ãããã䜿çšããŠãHTTP 屿§ïŒãªã¯ãšã¹ããã¹ãCookieãããããŒãªã©ïŒã«åºã¥ããŠã«ãŒãã£ã³ã°ã決å®ããŸãããã®ã«ãŒãã£ã³ã°ã®æ±ºå®ã«åºã¥ããŠããããã·ã¯ç¹å®ã®ããã¯ãšã³ã ãµãŒãã¹ã«ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã転éããŸããURL ãããã«ã¯ãããããŒã®æžãæããã¯ã©ã€ã¢ã³ããžã®ãªãã€ã¬ã¯ãã®éä¿¡ãã¿ã€ã ã¢ãŠã ããªã·ãŒã®æ§æãªã©ã远å ã®ã¢ã¯ã·ã§ã³ãæå®ã§ããŸãã
次ã®è¡šã«ãåã¢ãŒãã§å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãå¿ èŠãšãã URL ãããã®ã¿ã€ãã瀺ããŸãã
| ããŒããã©ã³ãµ ã¢ãŒã | URL ãããã®ã¿ã€ã |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | urlMaps |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | regionUrlMaps |
ããã¯ãšã³ã ãµãŒãã¹
ããã¯ãšã³ã ãµãŒãã¹ã¯ãããŒããã©ã³ãµã«æ§ææ å ±ãæäŸããŠãCompute Engine ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããããã¯ãŒã¯ ãšã³ããã€ã³ã ã°ã«ãŒãïŒNEGïŒãªã©ã®ããã¯ãšã³ãã«ãªã¯ãšã¹ãã転éã§ããããã«ããŸããããã¯ãšã³ã ãµãŒãã¹ã®è©³çްã«ã€ããŠã¯ãããã¯ãšã³ã ãµãŒãã¹ã®æŠèŠãã芧ãã ããã
ããã¯ãšã³ã ãµãŒãã¹ã®ã¹ã³ãŒã
次ã®è¡šã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§äœ¿çšãããããã¯ãšã³ã ãµãŒãã¹ã®ãªãœãŒã¹ãšã¹ã³ãŒãã瀺ãããã®ã§ãã
| ããŒããã©ã³ãµ ã¢ãŒã | ããã¯ãšã³ã ãµãŒãã¹ ãªãœãŒã¹ |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
backendServices |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ |
regionBackendServices |
ããã¯ãšã³ããžã®ãããã³ã«
ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ããã¯ãšã³ã ãµãŒãã¹ã¯ã次ã®ããããã®ãããã³ã«ã䜿çšããŠããã¯ãšã³ãã«ãªã¯ãšã¹ããéä¿¡ããå¿ èŠããããŸãã
- HTTPãHTTP/1.1 ã䜿çšããTLS ã¯äœ¿çšããŸããã
- HTTPSãHTTP/1.1 ãš TLS ã䜿çšããŸãã
- HTTP/2ãHTTP/2 ãš TLS ã䜿çšããŸãïŒæå·åãªãã® HTTP/2 ã¯ãµããŒããããŠããŸããïŒã
- H2CãHTTP/2 over TCP ã䜿çšããŸããTLS ã¯äžèŠã§ããH2C ã¯ãåŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ã¯ãµããŒããããŠããŸããã
ããŒããã©ã³ãµã¯ãããã¯ãšã³ããšã®éä¿¡ã«æå®ããããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã®ã¿ã䜿çšããŸããæå®ãããããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã䜿çšããŠããã¯ãšã³ããšéä¿¡ã§ããªãå ŽåãããŒããã©ã³ãµã¯å¥ã®ãããã³ã«ã«ãã©ãŒã«ããã¯ããŸããã
ããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã¯ãã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµãšã®éä¿¡ã«äœ¿çšãããããã³ã«ãšäžèŽããŠããå¿ èŠã¯ãããŸãããããšãã°ãã¯ã©ã€ã¢ã³ã㯠HTTP/2 ã䜿çšããŠããŒããã©ã³ãµã«ãªã¯ãšã¹ããéä¿¡ã§ããŸãããããŒããã©ã³ãµã¯ HTTP/1.1ïŒHTTP ãŸã㯠HTTPSïŒã䜿çšããŠããã¯ãšã³ããšéä¿¡ã§ããŸãã
ããã¯ãšã³ã
次ã®è¡šã§ã¯ãåã¢ãŒãã§å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµããµããŒãããããã¯ãšã³ãæ©èœã瀺ããŸãã
|
ããŒããã©ã³ãµã®ã¢ãŒã |
ããã¯ãšã³ã ãµãŒãã¹ã§ãµããŒããããããã¯ãšã³ã1 | ããã¯ãšã³ã ãã±ããã®ãµããŒã | Cloud Armor ã®ãµããŒã | Cloud CDN ã®ãµããŒã | IAP ã®ãµããŒã | Service Extensions ã®ãµããŒã | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒã2 | ãŸãŒã³ NEG3 | ã€ã³ã¿ãŒããã NEG | ãµãŒããŒã¬ã¹ NEG | ãã€ããªãã NEG | Private Service Connect NEG | ||||||
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | Cloud Run |
||||||||||
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | Cloud Run |
||||||||||
1 ããã¯ãšã³ã ãµãŒãã¹äžã®ããã¯ãšã³ãã¯ãåãã¿ã€ãïŒãã¹ãŠã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸãã¯ãã¹ãŠåãã¿ã€ãã® NEGïŒã§ããå¿
èŠããããŸãããã®ã«ãŒã«ã®äŸå€ã¯ãGCE_VM_IP_PORT ãŸãŒã³ NEG ãšãã€ããªãã NEG ã®äž¡æ¹ãåãããã¯ãšã³ã ãµãŒãã¹ã§äœ¿çšããŠããã€ããªãã ã¢ãŒããã¯ãã£ããµããŒãã§ããããšã§ãã
2 ãŸãŒã³éãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããŸãŒã³ ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããªãŒãžã§ã³ ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®çµã¿åããã¯ãåãããã¯ãšã³ã ãµãŒãã¹ã§ãµããŒããããŸãã2 ã€ä»¥äžã®ããã¯ãšã³ã ãµãŒãã¹ã®ããã¯ãšã³ãã§ãããããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã§èªåã¹ã±ãŒãªã³ã°ã䜿çšããå Žåã¯ãè€æ°ã®ã·ã°ãã«ã䜿çšããããã«ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®èªåã¹ã±ãŒãªã³ã° ããªã·ãŒãæ§æããŸãã
3 ãŸãŒã³ NEG ã§ã¯ GCE_VM_IP_PORT ãšã³ããã€ã³ãã䜿çšããå¿
èŠããããŸãã
ããã¯ãšã³ããš VPC ãããã¯ãŒã¯
ããã¯ãšã³ããé 眮ãããã±ãŒã·ã§ã³ã®å¶éã¯ãããã¯ãšã³ãã®ã¿ã€ãã«ãã£ãŠç°ãªããŸãã
ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããŸãŒã³ NEGããã€ããªããæ¥ç¶ NEG ã®å Žåããã¹ãŠã®ããã¯ãšã³ãã¯ããã¯ãšã³ã ãµãŒãã¹ãšåããããžã§ã¯ããšãªãŒãžã§ã³ã«é 眮ããå¿ èŠããããŸãããã ããããŒããã©ã³ãµã¯ãããã¯ãšã³ã ãµãŒãã¹ãšåããããžã§ã¯ãã§å¥ã® VPC ãããã¯ãŒã¯ã䜿çšããããã¯ãšã³ããåç §ã§ããŸãã ããŒããã©ã³ãµã® VPC ãããã¯ãŒã¯ãšããã¯ãšã³ã VPC ãããã¯ãŒã¯éã®æ¥ç¶ã¯ãVPC ãããã¯ãŒã¯ ãã¢ãªã³ã°ãCloud VPN ãã³ãã«ãCloud Interconnect VLAN ã¢ã¿ããã¡ã³ããNetwork Connectivity Center ãã¬ãŒã ã¯ãŒã¯ã®ããããã䜿çšããŠæ§æã§ããŸãã
ããã¯ãšã³ã ãããã¯ãŒã¯ã®å®çŸ©
- ãŸãŒã³ NEG ãšãã€ããªãã NEG ã®å ŽåãNEG ã®äœææã« VPC ãããã¯ãŒã¯ãæç€ºçã«æå®ããŸãã
- ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®å ŽåãVPC ãããã¯ãŒã¯ã¯ã€ã³ã¹ã¿ã³ã¹ ãã³ãã¬ãŒãã§å®çŸ©ãããŸãã
- éãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®å Žåãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã® VPC ãããã¯ãŒã¯ã¯ãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã«è¿œå ãããæåã® VM ã®
nic0ã€ã³ã¿ãŒãã§ãŒã¹ã® VPC ãããã¯ãŒã¯ãšäžèŽããããã«èšå®ãããŸãã
ããã¯ãšã³ã ãããã¯ãŒã¯ã®èŠä»¶
ããã¯ãšã³ã ãããã¯ãŒã¯ã¯ã次ã®ããããã®ãããã¯ãŒã¯èŠä»¶ãæºãããŠããå¿ èŠããããŸãã
ããã¯ãšã³ãã® VPC ãããã¯ãŒã¯ã¯ã転éã«ãŒã«ã® VPC ãããã¯ãŒã¯ãšå®å šã«äžèŽããå¿ èŠããããŸãã
ããã¯ãšã³ãã® VPC ãããã¯ãŒã¯ã¯ãVPC ãããã¯ãŒã¯ ãã¢ãªã³ã°ã䜿çšããŠè»¢éã«ãŒã«ã® VPC ãããã¯ãŒã¯ã«æ¥ç¶ããå¿ èŠããããŸãã転éã«ãŒã«ã® VPC ãããã¯ãŒã¯ã®ãããã·å°çšãµãããããšãããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã§äœ¿çšããããµãããããšã®éä¿¡ãèš±å¯ããã«ã¯ããµãããã ã«ãŒã亀æãæ§æããå¿ èŠããããŸãã
- ããã¯ãšã³ãã® VPC ãããã¯ãŒã¯ãšè»¢éã«ãŒã«ã® VPC ãããã¯ãŒã¯ã¯ãåã Network Connectivity Center ããã«æ¥ç¶ããã VPC ã¹ããŒã¯ã§ããå¿ èŠããããŸããã€ã³ããŒã ãã£ã«ã¿ãšãšã¯ã¹ããŒã ãã£ã«ã¿ã§ã¯ã転éã«ãŒã«ã® VPC ãããã¯ãŒã¯ã®ãããã·å°çšãµãããããšãããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã§äœ¿çšããããµãããããšã®éä¿¡ãèš±å¯ããå¿ èŠããããŸãã
ä»ã®ãã¹ãŠã®ããã¯ãšã³ã ã¿ã€ãã®å Žåããã¹ãŠã®ããã¯ãšã³ããåã VPC ãããã¯ãŒã¯ãšãªãŒãžã§ã³ã«é 眮ããå¿ èŠããããŸãã
ããã¯ãšã³ããšãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ãŒã¹
ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®ããã¯ãšã³ãã䜿çšããå Žåããã±ããã¯åžžã« nic0 ã«é
ä¿¡ãããŸããnic0 以å€ã®ã€ã³ã¿ãŒãã§ãŒã¹ïŒvNIC ãŸã㯠Dynamic Network InterfaceïŒã«ãã±ãããéä¿¡ããã«ã¯ãNEG ããã¯ãšã³ãã䜿çšããŸãã
ãŸãŒã³ NEG ããã¯ãšã³ãã䜿çšããå Žåããã±ãã㯠NEG ã®ãšã³ããã€ã³ãã§è¡šããããããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ãŒã¹ã«éä¿¡ãããŸããNEG ãšã³ããã€ã³ãã¯ãNEG ã«æç€ºçã«å®çŸ©ããã VPC ãããã¯ãŒã¯ãšåã VPC ãããã¯ãŒã¯ã«ååšããå¿ èŠããããŸãã
ããã¯ãšã³ãã®ãµãã»ããå
ããã¯ãšã³ãã®ãµãã»ããåã¯ããªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ãµããŒããããŠããæ©èœã§ãåãããã· ã€ã³ã¹ã¿ã³ã¹ã«ããã¯ãšã³ãã®ãµãã»ãããå²ãåœãŠãããšã§ããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ãåäžãããŸãã
ããã©ã«ãã§ã¯ãããã¯ãšã³ãã®ãµãã»ããåã¯ç¡å¹ã«ãªã£ãŠããŸãããã®æ©èœãæå¹ã«ããæ¹æ³ã«ã€ããŠã¯ããªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ããã¯ãšã³ãã®ãµãã»ããåãã芧ãã ããã
ãã«ã¹ãã§ãã¯
åããã¯ãšã³ã ãµãŒãã¹ã¯ãããŒããã©ã³ãµããã®æ¥ç¶ãåä¿¡ããããã¯ãšã³ãã®çšŒåç¶æ³ã宿çã«ç£èŠãããã«ã¹ãã§ãã¯ãæå®ããŸããããã«ãããåŠçäžèœãªããã¯ãšã³ãã«ãªã¯ãšã¹ããéä¿¡ããããªã¹ã¯ã軜æžã§ããŸãããã«ã¹ãã§ãã¯ã§ã¯ãã¢ããªã±ãŒã·ã§ã³èªäœãåäœãããã©ããã¯ãã§ãã¯ãããŸããã
ãã«ã¹ãã§ã㯠ãããŒãã§ã¯ãäžãïŒå åãïŒèš±å¯ãã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«ãäœæããŠãã«ã¹ãã§ã㯠ãããŒããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã«å°éã§ããããã«ããå¿ èŠããããŸããéåžžããã«ã¹ãã§ã㯠ãããŒã㯠Google ã®äžå åããããã«ã¹ãã§ãã¯ã®ä»çµã¿ã«ããçºä¿¡ãããŸãããã ãããã€ããªãã NEG ã®å Žåããã«ã¹ãã§ãã¯ã¯ãããã·å°çšãµããããããéå§ããŸãã詳现ã«ã€ããŠã¯ã忣 Envoy ãã«ã¹ãã§ãã¯ãã芧ãã ããã
ãã«ã¹ãã§ã㯠ãããã³ã«
å¿ é ã§ã¯ãªããåžžã«å¯èœãšããããã§ããããŸããããããã¯ãšã³ã ãµãŒãã¹ã®ãããã³ã«ã«äžèŽãããããã³ã«ã®ãã«ã¹ãã§ãã¯ã䜿çšããããšãããããããŸããããšãã°ãããã¯ãšã³ãã«å¯Ÿãã HTTP/2 ã®æ¥ç¶æ§ãæãæ£ç¢ºã«ãã¹ãã§ããã®ã¯ HTTP/2 ãã«ã¹ãã§ãã¯ã§ããäžæ¹ããã€ããªãã NEG ããã¯ãšã³ãã䜿çšããå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãgRPC ãã«ã¹ãã§ãã¯ããµããŒãããŠããŸããããµããŒããããŠãããã«ã¹ãã§ã㯠ãããã³ã«ã®äžèЧã«ã€ããŠã¯ããã«ã¹ãã§ãã¯ã®ããŒã ãã©ã³ã·ã³ã°æ©èœãã芧ãã ããã
次ã®è¡šã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ãµããŒããããŠãããã«ã¹ãã§ãã¯ã®ã¹ã³ãŒãã瀺ãããã®ã§ãã
| ããŒããã©ã³ãµ ã¢ãŒã | ãã«ã¹ãã§ãã¯ã®ã¿ã€ã |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | healthChecks |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | regionHealthChecks |
ãã«ã¹ãã§ãã¯ã®è©³çްã«ã€ããŠã¯ã以äžãã芧ãã ããã
ãã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«ã¯ã次ã®ãã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«ãå¿ èŠã§ãã
- Google ã®äžå€®ã®ãã«ã¹ãã§ãã¯ç¯å²ããã®ãã©ãã£ãã¯ãèš±å¯ããäžãïŒå åãïŒèš±å¯ã«ãŒã«ãç¹å®ã®ãã«ã¹ãã§ã㯠ãããŒãã® IP ã¢ãã¬ã¹ç¯å²ãšããããŒãããã®ãã©ãã£ãã¯ãèš±å¯ããå¿ èŠãããçç±ã«ã€ããŠã¯ããããŒãã® IP ç¯å²ãšãã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«ãã芧ãã ããã
- ãããã·å°çšãµããããããã®ãã©ãã£ãã¯ãèš±å¯ããããã®äžãïŒå åãïŒèš±å¯ã«ãŒã«
ãããã®ç¯å²ã«ã€ããŠã¯ããã¡ã€ã¢ãŠã©ãŒã« ã«ãŒã«ã®èŠä»¶ã«ããã€ãã®äŸå€ããããŸãã
- ãã€ããªãã NEG ã§ã¯ãGoogle ã®ãã«ã¹ãã§ã㯠ãããŒãç¯å²ããã®ãã©ãã£ãã¯ãèš±å¯ããå¿ èŠã¯ãããŸããããã ãã1 ã€ã®ããã¯ãšã³ã ãµãŒãã¹ã§ãã€ããªãã NEG ãšãŸãŒã³ NEG ã®çµã¿åããã䜿çšããŠããå Žåã¯ããŸãŒã³ NEG ã® Google ãã«ã¹ãã§ã㯠ãããŒãç¯å²ããã®ãã©ãã£ãã¯ãèš±å¯ããå¿ èŠããããŸãã
- ãªãŒãžã§ã³ ã€ã³ã¿ãŒããã NEG ã®å Žåããã«ã¹ãã§ãã¯ã¯çç¥å¯èœã§ãããªãŒãžã§ã³ ã€ã³ã¿ãŒããã NEG ã䜿çšããããŒããã©ã³ãµããã®ãã©ãã£ãã¯ã¯ããããã·å°çšãµããããããçºä¿¡ãããŸãããã®ãã©ãã£ãã¯ã¯ãCloud NAT ã«ãããæåãŸãã¯èªåçã«å²ãæ¯ããã NAT IP ã¢ãã¬ã¹ã« NAT 倿ãããŸãããã®ãã©ãã£ãã¯ã«ã¯ããã«ã¹ãã§ã㯠ãããŒããšãããŒããã©ã³ãµããããã¯ãšã³ããžã®ãŠãŒã¶ãŒ ãªã¯ãšã¹ãã®äž¡æ¹ãå«ãŸããŸãã詳现ã«ã€ããŠã¯ããªãŒãžã§ã³ NEG: Cloud NAT ã²ãŒããŠã§ã€ã䜿çšãããã芧ãã ããã
ã¯ã©ã€ã¢ã³ã ã¢ã¯ã»ã¹
ã¯ã©ã€ã¢ã³ãã¯ãåããããã¯ãŒã¯ãŸãã¯ãVPC ãããã¯ãŒã¯ ãã¢ãªã³ã°ã䜿çšããŠæ¥ç¶ããã VPC ãããã¯ãŒã¯ã«é 眮ã§ããŸãã
ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žåãã°ããŒãã« ã¢ã¯ã»ã¹ã¯ããã©ã«ãã§æå¹ã«ãªã£ãŠããŸããVPC å ã®ä»»æã®ãªãŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããŸãããªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žåãã¯ã©ã€ã¢ã³ãã¯ãããã©ã«ãã§ããŒããã©ã³ãµãšåããªãŒãžã§ã³ã«ååšããªããã°ãªããŸãããã°ããŒãã« ã¢ã¯ã»ã¹ãæå¹ã«ããŠãVPC å ã®ä»»æã®ãªãŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããããŒããã©ã³ãµã«ã¢ã¯ã»ã¹å¯èœã«ã§ããŸãã
次ã®è¡šã«ããªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ã¯ã©ã€ã¢ã³ã ã¢ã¯ã»ã¹ã®æŠèŠã瀺ããŸãã
| ã°ããŒãã« ã¢ã¯ã»ã¹ãç¡å¹ãªå Žå | ã°ããŒãã« ã¢ã¯ã»ã¹ãæå¹ãªå Žå |
|---|---|
| ã¯ã©ã€ã¢ã³ãã¯ããŒããã©ã³ãµãšåããªãŒãžã§ã³ã«ãªããã°ãªããŸããããŸããããŒããã©ã³ãµãšåã VPC ãããã¯ãŒã¯ããŸã㯠VPC ãããã¯ãŒã¯ ãã¢ãªã³ã°ã䜿çšããŠããŒããã©ã³ãµã® VPC ãããã¯ãŒã¯ã«æ¥ç¶ãããŠãã VPC ãããã¯ãŒã¯ã«ååšããå¿ èŠããããŸãã | ã¯ã©ã€ã¢ã³ãã¯ã©ã®ãªãŒãžã§ã³ã«ã§ãé 眮ã§ããŸãããã ããããŒããã©ã³ãµãšåã VPC ãããã¯ãŒã¯ããŸã㯠VPC ãããã¯ãŒã¯ ãã¢ãªã³ã°ã䜿çšããŠããŒããã©ã³ãµã® VPC ãããã¯ãŒã¯ã«æ¥ç¶ãããŠãã VPC ãããã¯ãŒã¯ã«ååšããå¿ èŠããããŸãã |
| ãªã³ãã¬ãã¹ ã¯ã©ã€ã¢ã³ãã¯ãCloud VPN ãã³ãã«ãŸã㯠VLAN ã¢ã¿ããã¡ã³ããä»ããŠããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããŸãããããã®ãã³ãã«ãŸãã¯ã¢ã¿ããã¡ã³ãã¯ãããŒããã©ã³ãµãšåããªãŒãžã§ã³ã«ãªããã°ãªããŸããã | ãªã³ãã¬ãã¹ ã¯ã©ã€ã¢ã³ãã¯ãCloud VPN ãã³ãã«ãŸã㯠VLAN ã¢ã¿ããã¡ã³ãã䜿çšããŠããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããŸãããããã®ãã³ãã«ãŸãã¯ã¢ã¿ããã¡ã³ãã¯ãã©ã®ãªãŒãžã§ã³ã«ã§ãé 眮ã§ããŸãã |
GKE ãµããŒã
GKE ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãæ¬¡ã®æ¹æ³ã§äœ¿çšããŸãã
GKE Gateway Controller ã䜿çšããŠäœæãããå éšã²ãŒããŠã§ã€ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ä»»æã®ã¢ãŒãã䜿çšã§ããŸããããŒããã©ã³ãµã®ã¢ãŒãã¯ãGatewayClass ãéžæããŠå¶åŸ¡ããŸããGKE Gateway Controller ã¯åžžã«
GCE_VM_IP_PORTãŸãŒã³ NEG ããã¯ãšã³ãã䜿çšããŸããGKE Ingress ã³ã³ãããŒã©ã䜿çšããŠäœæãããå éš Ingress ã¯ãåžžã«ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ããGKE Ingress ã³ã³ãããŒã©ã¯åžžã«
GCE_VM_IP_PORTãŸãŒã³ NEG ããã¯ãšã³ãã䜿çšããŸãã
- GKE Services ã«ãã£ãŠäœæããã³ç®¡çããã
GCE_VM_IP_PORTãŸãŒã³ NEG ããã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãŸãã¯ãããã· ãããã¯ãŒã¯ ããŒããã©ã³ãµã®ããã¯ãšã³ããšããŠäœ¿çšã§ããŸãã詳现ã«ã€ããŠã¯ãã¹ã¿ã³ãã¢ãã³ ãŸãŒã³ NEG ã«ããã³ã³ãã ãã€ãã£ãã®ããŒã ãã©ã³ã·ã³ã°ãã芧ãã ããã
å ±æ VPC ã®ã¢ãŒããã¯ãã£
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãå ±æ VPC ã䜿çšãããããã¯ãŒã¯ããµããŒãããŸããçµç¹ã¯ãå ±æ VPC ã䜿çšããŠè€æ°ã®ãããžã§ã¯ãã®ãªãœãŒã¹ãå ±éã® VPC ãããã¯ãŒã¯ã«æ¥ç¶ã§ããããããã®ãããã¯ãŒã¯ã®å éš IP ã䜿çšããŠãå®å šã§å¹ççãªçžäºéä¿¡ãè¡ãããšãã§ããŸããå ±æ VPC ã«ã€ããŠãŸã ããçè§£ããŠããªãå Žåã¯ãå ±æ VPC ã®æŠèŠã®ããã¥ã¡ã³ããã芧ãã ããã
å ±æ VPC ãããã¯ãŒã¯å ã§å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãæ§æããã«ã¯ãå€ãã®æ¹æ³ããããŸãããããã€ã®çš®é¡ã«é¢ä¿ãªããããŒããã©ã³ãµã®ãã¹ãŠã®ã³ã³ããŒãã³ããåãçµç¹ã«é 眮ããå¿ èŠããããŸãã
| ãµãããããš IP ã¢ãã¬ã¹ | ããã³ããšã³ã ã³ã³ããŒãã³ã | ããã¯ãšã³ã ã³ã³ããŒãã³ã |
|---|---|---|
å ±æ VPC ãã¹ã ãããžã§ã¯ãã§å¿ èŠãªãããã¯ãŒã¯ãšãµããããïŒãããã·å°çšãµãããããå«ãïŒãäœæããŸãã ããŒããã©ã³ãµã®å éš IP ã¢ãã¬ã¹ã¯ããã¹ã ãããžã§ã¯ããŸãã¯ãµãŒãã¹ ãããžã§ã¯ãã®ããããã§å®çŸ©ã§ããŸããããã¹ã ãããžã§ã¯ãå ã®ç®çã®å ±æ VPC ãããã¯ãŒã¯ã®ãµããããã䜿çšããå¿ èŠããããŸããã¢ãã¬ã¹èªäœã¯ãåç §å ãµããããã®ãã©ã€ã㪠IP ç¯å²ããååŸããŸãã |
ãªãŒãžã§ã³å éš IP ã¢ãã¬ã¹ã転éã«ãŒã«ãã¿ãŒã²ãã HTTP(S) ãããã·ãé¢é£ä»ãããã URL ãããã¯ãåããããžã§ã¯ãã§å®çŸ©ããå¿ èŠããããŸãããã®ãããžã§ã¯ãã¯ããã¹ã ãããžã§ã¯ããŸãã¯ãµãŒãã¹ ãããžã§ã¯ãã«ã§ããŸãã | 次ã®ãããããè¡ããŸãã
åããã¯ãšã³ã ãµãŒãã¹ã¯ãåç §ããããã¯ãšã³ããšåããããžã§ã¯ãã§å®çŸ©ããå¿ èŠããããŸããããã¯ãšã³ã ãµãŒãã¹ã«é¢é£ãããã«ã¹ãã§ãã¯ããããã¯ãšã³ã ãµãŒãã¹ãšåããããžã§ã¯ãã§å®çŸ©ããå¿ èŠããããŸãã |
å ±æ VPC ãã¹ã ãããžã§ã¯ãã§ãã¹ãŠã®ããŒã ãã©ã³ã·ã³ã° ã³ã³ããŒãã³ããšããã¯ãšã³ããäœæã§ããŸããããã®ã¿ã€ãã®ãããã€ã§ã¯ãããã¯ãŒã¯ç®¡çãšãµãŒãã¹éçºã®è²¬ä»»ãåé¢ãããŸããã
ãµãŒãã¹ ãããžã§ã¯ãå ã®ãã¹ãŠã®ããŒããã©ã³ãµ ã³ã³ããŒãã³ããšããã¯ãšã³ã
次ã®ã¢ãŒããã¯ãã£å³ã¯ããã¹ãŠã®ããŒããã©ã³ãµã®ã³ã³ããŒãã³ããšããã¯ãšã³ãããµãŒãã¹ ãããžã§ã¯ãå ã«ããæšæºã®å ±æ VPC ãããã€ã瀺ããŠããŸãããã®ãããã€ã¿ã€ãã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ãµããŒããããŠããŸãã
ããŒããã©ã³ãµã¯ããã¹ã ãããžã§ã¯ãã® IP ã¢ãã¬ã¹ãšãµããããã䜿çšããŸããã¯ã©ã€ã¢ã³ãã¯ãããŒããã©ã³ãµãšåãå ±æ VPC ãããã¯ãŒã¯ãšãªãŒãžã§ã³ã«ããå Žåãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããŸããã¯ã©ã€ã¢ã³ãã¯ããã¹ã ãããžã§ã¯ããæ¥ç¶ããããµãŒãã¹ ãããžã§ã¯ãããŸãã¯ä»»æã®æ¥ç¶ããããããã¯ãŒã¯ã«é 眮ã§ããŸãã
å ±æ VPC ç°å¢ã«ããããµãŒããŒã¬ã¹ ããã¯ãšã³ã
ãµãŒããŒã¬ã¹ NEG ããã¯ãšã³ãã䜿çšããå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žåããããã³ã° Cloud Run ãµãŒãã¹ãããã¯ãšã³ã ãµãŒãã¹ããµãŒããŒã¬ã¹ NEG ã¯åããµãŒãã¹ ãããžã§ã¯ãã«ååšããå¿ èŠããããŸããããŒããã©ã³ãµã®ããã³ããšã³ã ã³ã³ããŒãã³ãïŒè»¢éã«ãŒã«ãã¿ãŒã²ãã ãããã·ãURL ãããïŒã¯ããã¹ã ãããžã§ã¯ããããã¯ãšã³ã ã³ã³ããŒãã³ããšåããµãŒãã¹ ãããžã§ã¯ãããŸãã¯åãå ±æ VPC ç°å¢å ã®ãµãŒãã¹ ãããžã§ã¯ãã®ããããã«äœæã§ããŸãã
ãããžã§ã¯ãéã®ãµãŒãã¹åç §
ãããžã§ã¯ãéã®ãµãŒãã¹åç §ã¯ãããŒããã©ã³ãµã®ããã³ããšã³ããš URL ãããã 1 ã€ã®ãããžã§ã¯ãã«ãããããŒããã©ã³ãµã®ããã¯ãšã³ã ãµãŒãã¹ãšããã¯ãšã³ããå¥ã®ãããžã§ã¯ãã«ãããããã€ã¢ãã«ã§ãã
ãããžã§ã¯ãéã®ãµãŒãã¹åç §ã䜿çšãããšãçµç¹ã¯ 1 ã€ã®äžå çãªããŒããã©ã³ãµãæ§æããè€æ°ã®ç°ãªããããžã§ã¯ãã«åæ£ãããæ°çŸã®ãµãŒãã¹ã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ã§ããŸãããã©ãã£ã㯠ã«ãŒãã£ã³ã°ã®ã«ãŒã«ããã³ããªã·ãŒã¯ãã¹ãŠã1 ã€ã® URL ãããã§äžå 管çã§ããŸããããŒããã©ã³ãµããã¹ãåãš SSL èšŒææžã®çµã¿åããã® 1 ã€ãšé¢é£ä»ããããšãã§ããŸãããã®ãããã¢ããªã±ãŒã·ã§ã³ã®ãããã€ã«å¿ èŠãªããŒããã©ã³ãµã®æ°ãæé©åããããšã§ãç®¡çæ§ã®åäžããéçšè²»ããã³å¿ èŠãªå²ãåœãŠéã®åæžã«ã€ãªãããŸãã
ããã«ããããžã§ã¯ããéšéããšã«åããŠãçµç¹å ã®ããŒã«ãåé¢ããããšãã§ããŸãããµãŒãã¹ ãªãŒããŒã¯ãµãŒãã¹ ãããžã§ã¯ãå ã®ãµãŒãã¹æ§ç¯ã«ããããã¯ãŒã¯ ããŒã ã¯å¥ã®ãããžã§ã¯ãå ã®ããŒããã©ã³ãµã®ããããžã§ãã³ã°ãšç¶æã«å°å¿µã§ããŸãããããã®ãããžã§ã¯ãã¯ããããžã§ã¯ãéã®ãµãŒãã¹åç §ã«ãã£ãŠæ¥ç¶ã§ããŸãã
ãµãŒãã¹ ãªãŒããŒã¯ããµãŒãã¹ã®å
¬éã«å¯ŸããèªåŸæ§ãç¶æããããŒããã©ã³ãµãä»ããŠãµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ãããŠãŒã¶ãŒãå¶åŸ¡ã§ããŸãããã®ä»çµã¿ã¯ãCompute ããŒããã©ã³ãµ ãµãŒãã¹ ãŠãŒã¶ãŒã®ããŒã«ïŒroles/compute.loadBalancerServiceUserïŒãšããç¹å¥ãª IAM ããŒã«ã«ãã£ãŠå®çŸãããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žåããããžã§ã¯ãéã®ãµãŒãã¹åç §ã¯å ±æ VPC ç°å¢å ã§ã®ã¿ãµããŒããããŸãã
ïŒãããžã§ã¯ãéã®ãµãŒãã¹åç §ã®æç¡ã«ãããããïŒå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å ±æ VPC ãæ§æããæ¹æ³ã«ã€ããŠã¯ãå ±æ VPC ã䜿çšããŠå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãèšå®ãããã芧ãã ããããããžã§ã¯ãéã®ãµãŒãã¹åç §ã®äœ¿çšã«é¢ããæ³šæäºé
- ããã¯ãšã³ã ãµãŒãã¹ã«ãªãŒãžã§ã³ ã€ã³ã¿ãŒããã NEG ããã¯ãšã³ããããå Žåããããžã§ã¯ãéã®ããã¯ãšã³ã ãµãŒãã¹ãåç §ããããšã¯ã§ããŸãããä»ã®ããã¯ãšã³ã ã¿ã€ãã¯ãã¹ãŠãµããŒããããŠããŸãã
- Google Cloud ã§ã¯ãè€æ°ã®ãããžã§ã¯ãéã§åãååã䜿çšãããªãœãŒã¹ïŒããã¯ãšã³ã ãµãŒãã¹ãªã©ïŒã¯åºå¥ãããŸããããããã£ãŠããããžã§ã¯ãéã®ãµãŒãã¹åç §ã䜿çšããå Žåã¯ãçµç¹å ã®ãããžã§ã¯ãéã§äžæã®ããã¯ãšã³ã ãµãŒãã¹åã䜿çšããããšãããããããŸãã
äŸ 1: ããŒããã©ã³ãµã®ããã³ããšã³ããšããã¯ãšã³ããå¥ã®ãµãŒãã¹ ãããžã§ã¯ãã«ååšãã
次ã®å ±æ VPC ãããã€ã®äŸã§ã¯ãããŒããã©ã³ãµã®ããã³ããšã³ããš URL ãããããµãŒãã¹ ãããžã§ã¯ã A ã«äœæãããURL ãããã¯ãµãŒãã¹ ãããžã§ã¯ã B ã®ããã¯ãšã³ã ãµãŒãã¹ãåç §ããŠããŸãã
ãã®å ŽåããµãŒãã¹ ãããžã§ã¯ã A ã®ãããã¯ãŒã¯ç®¡çè
ãŸãã¯ããŒããã©ã³ãµç®¡çè
ã¯ããµãŒãã¹ ãããžã§ã¯ã B ã®ããã¯ãšã³ã ãµãŒãã¹ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸãããµãŒãã¹ ãããžã§ã¯ã B ã®ç®¡çè
ã¯ããµãŒãã¹ ãããžã§ã¯ã B ã®ããã¯ãšã³ã ãµãŒãã¹ãåç
§ãããµãŒãã¹ ãããžã§ã¯ã A ã®ããŒããã©ã³ãµç®¡çè
ã« Compute ããŒããã©ã³ãµ ãµãŒãã¹ ãŠãŒã¶ãŒã®ããŒã«ïŒroles/compute.loadBalancerServiceUserïŒãä»äžããŸãã
äŸ 2: ããŒããã©ã³ãµã®ããã³ããšã³ãããã¹ã ãããžã§ã¯ãã«ãããã¯ãšã³ãããµãŒãã¹ ãããžã§ã¯ãã«ååšãã
次ã®å ±æ VPC ãããã€ã®äŸã§ã¯ãããŒããã©ã³ãµã®ããã³ããšã³ããš URL ãããããã¹ã ãããžã§ã¯ãã«äœæãããããã¯ãšã³ã ãµãŒãã¹ïŒããã³ããã¯ãšã³ãïŒããµãŒãã¹ ãããžã§ã¯ãã«äœæãããŠããŸãã
ãã®å Žåããã¹ã ãããžã§ã¯ãã®ãããã¯ãŒã¯ç®¡çè
ãŸãã¯ããŒããã©ã³ãµç®¡çè
ã¯ããµãŒãã¹ ãããžã§ã¯ãã®ããã¯ãšã³ã ãµãŒãã¹ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸãããµãŒãã¹ ãããžã§ã¯ãã®ç®¡çè
ã¯ããµãŒãã¹ ãããžã§ã¯ãã®ããã¯ãšã³ã ãµãŒãã¹ãåç
§ãããã¹ã ãããžã§ã¯ã A ã®ããŒããã©ã³ãµç®¡çè
ã« Compute ããŒããã©ã³ãµ ãµãŒãã¹ ãŠãŒã¶ãŒã®ããŒã«ïŒroles/compute.loadBalancerServiceUserïŒãä»äžããŸãã
ã¿ã€ã ã¢ãŠããšå詊è¡
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ã次ã®çš®é¡ã®ã¿ã€ã ã¢ãŠãããµããŒãããŸãã| ã¿ã€ã ã¢ãŠãã®çš®é¡ãšèª¬æ | ããã©ã«ãå€ | ã«ã¹ã¿ã å€ã®ãµããŒã | |
|---|---|---|---|
| ã¯ãã¹ãªãŒãžã§ã³ | ãªãŒãžã§ã³ | ||
| ããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠã
ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®ã¿ã€ã ã¢ãŠãããŒããã©ã³ãµããªã¯ãšã¹ãã®æåã®ãã€ããããã¯ãšã³ãã«éä¿¡ããŠãããããã¯ãšã³ãã HTTP ã¬ã¹ãã³ã¹ã®æåŸã®ãã€ããããŒããã©ã³ãµã«è¿ããŸã§ã®æé·æéã衚ããŸããããã¯ãšã³ãããã®æéå ã« HTTP ã¬ã¹ãã³ã¹å šäœãããŒããã©ã³ãµã«è¿ããªãã£ãå Žåãæ®ãã®ã¬ã¹ãã³ã¹ ããŒã¿ã¯ç Žæ£ãããŸãã |
|
||
| ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã
ã¯ã©ã€ã¢ã³ããšããŒããã©ã³ãµã®ãããŒãžã Envoy ãããã·ã®éã® TCP æ¥ç¶ãã¢ã€ãã«ç¶æ ã§ããæé·æéïŒåã TCP æ¥ç¶ãè€æ°ã® HTTP ãªã¯ãšã¹ãã«äœ¿çšãããå ŽåããããŸãïŒã |
610 ç§ | ||
| ããã¯ãšã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã
ããŒããã©ã³ãµã®ãããŒãžã Envoy ãããã·ãšããã¯ãšã³ãéã® TCP æ¥ç¶ãã¢ã€ãã«ç¶æ ã§ããæé·æéïŒåã TCP æ¥ç¶ãè€æ°ã® HTTP ãªã¯ãšã¹ãã«äœ¿çšãããå ŽåããããŸãïŒã |
10 åïŒ600 ç§ïŒ | ||
ããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠã
æ§æå¯èœãªããã¯ãšã³ã ãµãŒãã¹ ã¿ã€ã ã¢ãŠãã¯ãããã¯ãšã³ãã HTTP ãªã¯ãšã¹ããåŠçãã察å¿ãã HTTP ã¬ã¹ãã³ã¹ãè¿ããŸã§ããŒããã©ã³ãµãåŸ æ©ããæé·æéã衚ããŸãããµãŒããŒã¬ã¹ NEG ãé€ããããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã®ããã©ã«ãå€ã¯ 30 ç§ã§ãã
ããšãã°ã500 MB ã®ãã¡ã€ã«ãããŠã³ããŒãããå Žåãããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã®å€ã 90 ç§ã§ããã°ãããŒããã©ã³ãµã¯ããã¯ãšã³ãã 500 MB ãã¡ã€ã«å šäœã 90 ç§ä»¥å ã§é ä¿¡ãããšæ³å®ããŸããããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã«ã¯ãããã¯ãšã³ããå®å šãª HTTP ã¬ã¹ãã³ã¹ãéä¿¡ããã®ã«ååã§ãªãæéãæ§æããããšãã§ããŸãããã®ç¶æ³ã§ã¯ãå°ãªããšãããŒããã©ã³ãµãããã¯ãšã³ããã HTTP ã¬ã¹ãã³ã¹ ããããŒãåãåã£ãå ŽåãããŒããã©ã³ãµã¯å®å šãªã¬ã¹ãã³ã¹ ããããŒãšãããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãå ã§ååŸã§ããå¯èœãªéãå€ãã®ã¬ã¹ãã³ã¹æ¬æãè¿ããŸãã
ããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã¯ãHTTP ã¬ã¹ãã³ã¹ãåŠçããããã«ããã¯ãšã³ããåŸ æ©ããå¿ èŠã®ããæé·æéã«èšå®ããããšãããããããŸããããã¯ãšã³ãã§å®è¡ãããŠãããœãããŠã§ã¢ã HTTP ãªã¯ãšã¹ããåŠçããã¬ã¹ãã³ã¹å šäœãè¿ãããã«ããã«æéãå¿ èŠãªå Žåã¯ãããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãå€ã倧ããããããšãããããããŸãã
ããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã¯ã1ïœ2,147,483,647 ç§ã®å€ãåãå
¥ããŸãããã ããããŸãã«å€§ããå€ã¯å®çšçãªæ§æãªãã·ã§ã³ã§ã¯ãããŸããããŸãGoogle Cloud ã§ã¯ãããã¯ãšã³ã ãµãŒãã¹ãã¿ã€ã ã¢ãŠãã«ãªããŸã§åºç€ãšãªã TCP æ¥ç¶ãç¶æããããšã¯éããŸãããã¯ã©ã€ã¢ã³ã ã·ã¹ãã ã§ã¯ãTCP æ¥ç¶ã®æç¶æéã«äŸåããã®ã§ã¯ãªããå詊è¡ããžãã¯ãå®è£
ããå¿
èŠããããŸãã
ããã¯ãšã³ã ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠããæ§æããã«ã¯ã次ã®ããããã®æ¹æ³ã䜿çšããŸãã
ã³ã³ãœãŒã«
ããŒããã©ã³ãµã®ããã¯ãšã³ã ãµãŒãã¹ã® [ã¿ã€ã ã¢ãŠã] ãã£ãŒã«ãã倿ŽããŸãã
gcloud
gcloud compute backend-services update ã³ãã³ãã䜿çšããŠãããã¯ãšã³ã ãµãŒãã¹ ãªãœãŒã¹ã® --timeout ãã©ã¡ãŒã¿ã倿ŽããŸãã
API
regionBackendServices ãªãœãŒã¹ã® timeoutSec ãã©ã¡ãŒã¿ã倿ŽããŸãã
ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã
ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãã¯ãTCP æ¥ç¶ãïŒããŠã³ã¹ããªãŒã ïŒã¯ã©ã€ã¢ã³ããš Envoy ãããã·éã§ã¢ã€ãã«ç¶æ ã«ãªã£ãŠããæé·æéã衚ããŸããããã©ã«ãã®ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãå€ã¯ 610 ç§ã§ããã¿ã€ã ã¢ãŠã㯠5ïœ1,200 ç§ã®å€ã§æ§æã§ããŸãã
HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã㯠TCP ã¢ã€ãã« ã¿ã€ã ã¢ãŠããšãåŒã°ããŠããŸãã
ããŒããã©ã³ãµã®ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãã¯ãããŠã³ã¹ããªãŒã ã¯ã©ã€ã¢ã³ããŸãã¯ãããã·ã§äœ¿çšããã HTTP ããŒãã¢ã©ã€ãïŒTCP ã¢ã€ãã«ïŒã¿ã€ã ã¢ãŠãããã倧ããããå¿ èŠããããŸããããŠã³ã¹ããªãŒã ã¯ã©ã€ã¢ã³ãã® HTTP ããŒãã¢ã©ã€ãïŒTCP ã¢ã€ãã«ïŒã¿ã€ã ã¢ãŠããããŒããã©ã³ãµã®ã¯ã©ã€ã¢ã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãããã倧ããå Žåãç«¶åç¶æ ãçºçããå¯èœæ§ããããŸããããŠã³ã¹ããªãŒã ã¯ã©ã€ã¢ã³ãããèŠããšãç¢ºç«æžã¿ã® TCP æ¥ç¶ããããŒããã©ã³ãµã§èš±å¯ãããŠããæéãããé·ãã¢ã€ãã«ç¶æ ã«ãªãå¯èœæ§ããããŸããããŒããã©ã³ãµã TCP æ¥ç¶ãçµäºãããšã¿ãªããšãããŠã³ã¹ããªãŒã ã¯ã©ã€ã¢ã³ãã¯ãã±ãããéä¿¡ããããšãã§ããŸãããã®å ŽåãããŒããã©ã³ãµã¯ TCP resetïŒRSTïŒãã±ããã§å¿çããŸãã
ã¯ã©ã€ã¢ã³ãã® HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠããåãããšãGFE ãŸã㯠Envoy ãããã·ãã¯ã©ã€ã¢ã³ãã« TCP FIN ãéä¿¡ããŠãæ¥ç¶ãæ£åžžã«çµäºããŸãã
ããã¯ãšã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãïŒããŠã³ã¹ããªãŒã ïŒã¯ã©ã€ã¢ã³ããš Envoy ãããã·éã®æåã® TCP æ¥ç¶ãšãEnvoy ãããã·ãšããã¯ãšã³ãéã® 2 çªç®ã® TCP æ¥ç¶ã䜿çšãããããã·ã§ãã
ããŒããã©ã³ãµã® 2 çªç®ã® TCP æ¥ç¶ã¯ããªã¯ãšã¹ãããšã«çµäºãããè€æ°ã® HTTP ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ãåŠçã§ããããã«ãéããŠããç¶æ ãç¶æããå ŽåããããŸããããã¯ãšã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãã¯ãããŒããã©ã³ãµãšããã¯ãšã³ãéã® TCP ã¢ã€ãã« ã¿ã€ã ã¢ãŠããå®çŸ©ããŸããããã¯ãšã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã㯠WebSocket ã«ã¯é©çšãããŸããã
ããã¯ãšã³ã ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠã㯠10 åïŒ600 ç§ïŒã«åºå®ãããŠããã倿Žã§ããŸãããããã«ãããããŒããã©ã³ãµã¯ã¢ã€ãã«ç¶æ ã®æ¥ç¶ãå°ãªããšã 10 åéç¶æããŸãããã®æéãçµéãããšãããŒããã©ã³ãµã¯ãã€ã§ãããã¯ãšã³ãã«çµäºãã±ãããéä¿¡ã§ããŸãã
ããŒããã©ã³ãµã®ããã¯ãšã³ã ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãã¯ãããã¯ãšã³ãã§å®è¡ãããŠãããœãããŠã§ã¢ã§äœ¿çšãããããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠããããçãããå¿ èŠããããŸããããã«ãããããã¯ãšã³ãã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã TCP resetïŒRSTïŒã§ TCP æ¥ç¶ãçµäºããå¯èœæ§ã®ããç«¶åç¶æ ãåé¿ã§ããŸããããŒããã©ã³ãµã®ããã¯ãšã³ã ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãã¯æ§æã§ããªããããHTTP ããŒãã¢ã©ã€ãïŒTCP ã¢ã€ãã«ïŒã¿ã€ã ã¢ãŠãå€ã 600 ç§ãè¶ ããããã«ãããã¯ãšã³ã ãœãããŠã§ã¢ãæ§æããå¿ èŠããããŸãã
ããã¯ãšã³ã HTTP ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠããåãããšãGFE ãŸã㯠Envoy ãããã·ãããã¯ãšã³ã VM ã« TCP FIN ãéä¿¡ããŠãæ¥ç¶ãæ£åžžã«çµäºããŸãã
次ã®è¡šã¯ãäžè¬çãªãŠã§ããµãŒã㌠ãœãããŠã§ã¢ã®ããŒãã¢ã©ã€ã ã¿ã€ã ã¢ãŠãå€ã倿Žããããã«å¿ èŠãªå€æŽã瀺ãããã®ã§ãã
| ãŠã§ããµãŒã㌠ãœãããŠã§ã¢ | ãã©ã¡ãŒã¿ | ããã©ã«ãèšå® | æšå¥šãããèšå® |
|---|---|---|---|
| Apache | KeepAliveTimeout | KeepAliveTimeout 5 |
KeepAliveTimeout 620 |
| nginx | keepalive_timeout | keepalive_timeout 75s; |
keepalive_timeout 620s; |
å詊è¡
å詊è¡ãæ§æããã«ã¯ãURL ãããã§å詊è¡ããªã·ãŒã䜿çšããŸããããã©ã«ãã®å詊è¡åæ°ïŒnumRetriesïŒã¯ 1 åã§ããæ§æå¯èœãª perTryTimeout ã®æå€§å€ã¯ 24 æéã§ãã
å詊è¡ããªã·ãŒããªãå ŽåãHTTP æ¬æã®ãªããªã¯ãšã¹ãïŒGET ãªã¯ãšã¹ããªã©ïŒã HTTP 502ã503ããŸã㯠504 ã®ã¬ã¹ãã³ã¹ãè¿ãããšãã« 1 åã ãå詊è¡ãããŸãã
HTTP POST ãªã¯ãšã¹ãã¯å詊è¡ãããŸããã
å詊è¡ããããªã¯ãšã¹ãã«å¯ŸããŠçæããããã°ãšã³ããªã¯ãæçµçãªã¬ã¹ãã³ã¹ã«å¯Ÿå¿ãã 1 ä»¶ã ãã§ãã
詳现ã«ã€ããŠã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ãã®ã³ã°ãšã¢ãã¿ãªã³ã°ãã芧ãã ããã
æ¥ç¶ãããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹
ã¯ã©ã€ã¢ã³ããæ¥ç¶ãããã¯ãŒã¯ãã VPC ãããã¯ãŒã¯å ã®å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ããæ¹æ³ã¯ã次ã®ãšããã§ãã
- VPC ãããã¯ãŒã¯ ãã¢ãªã³ã°
- Cloud VPN ãš Cloud Interconnect
詳现ãªäŸã«ã€ããŠã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãšæ¥ç¶ãããã¯ãŒã¯ãã芧ãã ããã
ã»ãã·ã§ã³ ã¢ãã£ããã£
ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ããã¯ãšã³ã ãµãŒãã¹ã§æ§æãããã»ãã·ã§ã³ ã¢ãã£ããã£ã«ãããæ£åžžãªããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®æ°ãäžå®ã®ãŸãŸã§ããã以åã«éžæããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®å®¹éãäžéã«éããŠããªãéããç¹å®ã®ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ããå¯èœãªéãåãããã¯ãšã³ãã«éä¿¡ãããŸãããã©ã³ã·ã³ã° ã¢ãŒãã®ã¿ãŒã²ãã容éã«ãããããã¯ãšã³ãã®å®¹éãäžéã«éããã¿ã€ãã³ã°ã倿ãããŸãã
次ã®è¡šã«ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ãµããŒããããŠããããŸããŸãªã¿ã€ãã®ã»ãã·ã§ã³ ã¢ãã£ãã㣠ãªãã·ã§ã³ã®æŠèŠã瀺ããŸããæ¬¡ã®ã»ã¯ã·ã§ã³ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã®ã¿ã€ãã§ã¯ãåã»ãã·ã§ã³ ã¢ãã£ããã£ã®ã¿ã€ãã«ã€ããŠè©³ãã説æããŸãã
| ãããã¯ã | ã»ãã·ã§ã³ ã¢ãã£ããã£ã®ãªãã·ã§ã³ |
|---|---|
ãŸããæ¬¡ã®ç¹ã«ããæ³šæãã ããã
|
ã»ãã·ã§ã³ ã¢ãã£ããã£ãæ§æããéã¯ã次ã®ç¹ã«çæããŠãã ããã
èªèšŒãã»ãã¥ãªãã£ãç®çãšããŠã»ãã·ã§ã³ ã¢ãã£ããã£ã«äŸåããªãã§ãã ãããã¹ããŒããã« Cookie ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ãé€ããã»ãã·ã§ã³ ã¢ãã£ããã£ã¯ããµãŒãã¹ã®æ°ãšæ£åžžãªããã¯ãšã³ãã®æ°ãå€ãããã³ã«å€±ãããå¯èœæ§ããããŸãã詳现ã«ã€ããŠã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ã®åªå€±ãã芧ãã ããã
--session-affinityãã©ã°ãš--subsetting-policyãã©ã°ã®ããã©ã«ãå€ã¯ã©ã¡ããNONEã§ããç°ãªãå€ãèšå®ã§ããã®ã¯äžåºŠã« 1 ã€ã ãã§ãã
ã»ãã·ã§ã³ ã¢ãã£ããã£ã®ã¿ã€ã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã¯ã次ã®ããããã®ã«ããŽãªã«åé¡ã§ããŸãã- ããã·ã¥ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ïŒ
NONEãCLIENT_IPïŒ - HTTP ããããŒããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ïŒ
HEADER_FIELDïŒ - Cookie ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ïŒ
GENERATED_COOKIEãHTTP_COOKIEãSTRONG_COOKIE_AFFINITYïŒ
ããã·ã¥ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£
ããã·ã¥ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã®å ŽåãããŒããã©ã³ãµã¯ã³ã³ã·ã¹ãã³ã ããã·ã¥æ³ã®ã¢ã«ãŽãªãºã ã䜿çšããŠã驿 Œãªããã¯ãšã³ããéžæããŸããã»ãã·ã§ã³ ã¢ãã£ããã£ã®èšå®ã«ãããããã·ã¥ã®èšç®ã«äœ¿çšããã IP ããããŒã®ãã£ãŒã«ããæ±ºãŸããŸãã
ããã·ã¥ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã«ã¯ã次ã®ã¿ã€ãããããŸãã
ãªã
ã»ãã·ã§ã³ ã¢ãã£ããã£ã®èšå®ã® NONE ã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ããªãããšãæå³ããããã§ã¯ãããŸãããããã¯ãã»ãã·ã§ã³ ã¢ãã£ãã㣠ãªãã·ã§ã³ãæç€ºçã«æ§æãããŠããªãããšãæå³ããŸãã
ããã·ã¥ã¯ãããã¯ãšã³ããéžæããããã«åžžã«å®è¡ãããŸããã»ãã·ã§ã³ ã¢ãã£ããã£ã®èšå®ã NONE ã®å ŽåãããŒããã©ã³ãµã¯ 5 ã¿ãã«ããã·ã¥ã䜿çšããŠããã¯ãšã³ããéžæããŸãã5 ã¿ãã«ããã·ã¥ã¯ãéä¿¡å
IP ã¢ãã¬ã¹ãéä¿¡å
ããŒãããããã³ã«ãå®å
IP ã¢ãã¬ã¹ãå®å
ããŒãã§æ§æãããŸãã
ã»ãã·ã§ã³ ã¢ãã£ããã£ã®ããã©ã«ãå€ã¯ NONE ã§ãã
ã¯ã©ã€ã¢ã³ã IP ã¢ãã£ããã£
ã¯ã©ã€ã¢ã³ã IP ã»ãã·ã§ã³ ã¢ãã£ããã£ïŒCLIENT_IPïŒã¯ããã±ããã®éä¿¡å
IP ã¢ãã¬ã¹ãšå®å
IP ã¢ãã¬ã¹ããäœæããã 2 ã¿ãã«ããã·ã¥ã§ããã¯ã©ã€ã¢ã³ã IP ã¢ãã£ããã£ã¯ãããã¯ãšã³ãã«å®¹éããããæ£åžžãªç¶æ
ãç¶æããŠããéããåãã¯ã©ã€ã¢ã³ã IP ã¢ãã¬ã¹ããã®ãã¹ãŠã®ãªã¯ãšã¹ããåãããã¯ãšã³ãã«è»¢éããŸãã
ã¯ã©ã€ã¢ã³ã IP ã¢ãã£ããã£ã䜿çšããå Žåã¯ã次ã®ç¹ã«çæããŠãã ããã
- ãã±ãããããŒããã©ã³ãµã«çŽæ¥éä¿¡ãããå Žåããã±ããã®å®å IP ã¢ãã¬ã¹ã¯ããŒããã©ã³ãµã®è»¢éã«ãŒã«ã® IP ã¢ãã¬ã¹ãšåãã«ãªããŸãã
- ãã±ããã Google Cloud ããŒããã©ã³ãµã«é ä¿¡ãããåã«äžé NAT ãŸãã¯ãããã· ã·ã¹ãã ã«ãã£ãŠåŠçããããšããã±ããã®éä¿¡å IP ã¢ãã¬ã¹ãå ã®ã¯ã©ã€ã¢ã³ãã«é¢é£ä»ãããã IP ã¢ãã¬ã¹ãšäžèŽããªãããšããããŸããå€ãã®ã¯ã©ã€ã¢ã³ããåãæå¹ãªéä¿¡å IP ã¢ãã¬ã¹ãå ±æããå Žåãäžéšã®ããã¯ãšã³ã VM ã¯ä»ã® VM ãããå€ãã®æ¥ç¶ãŸãã¯ãªã¯ãšã¹ããåä¿¡ããå¯èœæ§ããããŸãã
HTTP ããããŒããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£
ããã㌠ãã£ãŒã«ã ã¢ãã£ããã£ã§ïŒHEADER_FIELDïŒã¯ãããã¯ãšã³ã ãµãŒãã¹ã® consistentHash.httpHeaderName ãã£ãŒã«ãã® HTTP ããããŒã®å€ã«åºã¥ããŠããªã¯ãšã¹ããããã¯ãšã³ãã«ã«ãŒãã£ã³ã°ãããŸãã䜿çšå¯èœãªãã¹ãŠã®ããã¯ãšã³ãã«ãªã¯ãšã¹ãã忣ããã«ã¯ãåã¯ã©ã€ã¢ã³ãã§ç°ãªã HTTP ããããŒå€ã䜿çšããå¿
èŠããããŸãã
ããã㌠ãã£ãŒã«ã ã¢ãã£ããã£ã¯ãæ¬¡ã®æ¡ä»¶ãæºããå Žåã«ãµããŒããããŸãã
- ããŒã ãã©ã³ã·ã³ã°ã®å±ææ§ããªã·ãŒã
RING_HASHãŸãã¯MAGLEVã§ããã - ããã¯ãšã³ã ãµãŒãã¹ã®
consistentHashããHTTP ããããŒã®ååïŒhttpHeaderNameïŒãæå®ããã
Cookie ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£
Cookie ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã«ã¯æ¬¡ã®ã¿ã€ãããããŸãã
- çæããã Cookie ã¢ãã£ããã£
- HTTP Cookie ã¢ãã£ããã£
- ã¹ããŒããã« Cookie ããŒã¹ ã»ãã·ã§ã³ ã¢ãã£ããã£
çæããã Cookie ã¢ãã£ããã£
çæããã Cookie ããŒã¹ã®ã¢ãã£ããã£ïŒGENERATED_COOKIEïŒã䜿çšããå ŽåãããŒããã©ã³ãµã¯æåã® HTTP ãªã¯ãšã¹ãã«å¿çã㊠Set-Cookie ããããŒã« HTTP Cookie ãå«ããŸãã
çæããã Cookie ã®ååã¯ãããŒããã©ã³ãµã®ã¿ã€ãã«ãã£ãŠç°ãªããŸãã
| ãããã¯ã | Cookie å |
|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | GCILB |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | GCILB |
çæããã Cookie ã®ãã¹å±æ§ã¯åžžã«ã¹ã©ãã·ã¥ïŒ/ïŒã«ãªããŸããä»ã®ããã¯ãšã³ã ãµãŒãã¹ãçæããã Cookie ã¢ãã£ããã£ã䜿çšããŠããå Žåãåã URL ãããäžã®ãã¹ãŠã®ããã¯ãšã³ã ãµãŒãã¹ã«é©çšãããŸãã
affinityCookieTtlSec ããã¯ãšã³ã ãµãŒãã¹ ãã©ã¡ãŒã¿ã䜿çšããŠãCookie ã®æå¹æéïŒTTLïŒå€ã 0ïœ1,209,600 ç§ã®ç¯å²ïŒäž¡ç«¯ãå«ãïŒã§æ§æã§ããŸããaffinityCookieTtlSec ãæå®ãããŠããªãå Žåãããã©ã«ãã® TTL å€ã¯ 0 ã§ãã
ã¯ã©ã€ã¢ã³ãããHTTP ãªã¯ãšã¹ãã® Cookie ãªã¯ãšã¹ã ããããŒã«çæãããã»ãã·ã§ã³ ã¢ãã£ãã㣠Cookie ãå«ãããšãããŒããã©ã³ãµã¯ãã»ãã·ã§ã³ ã¢ãã£ãã㣠Cookie ãæå¹ã§ããéãããããã®ãªã¯ãšã¹ããåãããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã«è»¢éããŸãããããè¡ãã«ã¯ãCookie å€ããç¹å®ã®ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããåç
§ããã€ã³ããã¯ã¹ã«ãããã³ã°ããçæããã Cookie ã®ã»ãã·ã§ã³ ã¢ãã£ããã£èŠä»¶ãæºããããã«ããŸãã
çæããã Cookie ã¢ãã£ããã£ã䜿çšããã«ã¯ã次ã®ãã©ã³ã·ã³ã° ã¢ãŒããš localityLbPolicy èšå®ãæ§æããŸãã
- ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®å Žåã¯ã
RATEãã©ã³ã·ã³ã° ã¢ãŒãã䜿çšããŸãã - ããã¯ãšã³ã ãµãŒãã¹ã®
localityLbPolicyã«ã¯ãRING_HASHãŸãã¯MAGLEVã䜿çšããŸããlocalityLbPolicyãæç€ºçã«èšå®ããªãå ŽåãããŒããã©ã³ãµã¯æé»ã®ããã©ã«ããšããŠMAGLEVã䜿çšããŸãã
詳现ã«ã€ããŠã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ã®åªå€±ãã芧ãã ããã
HTTP Cookie ã¢ãã£ããã£
HTTP Cookie ããŒã¹ã®ã¢ãã£ããã£ïŒHTTP_COOKIEïŒã䜿çšããå ŽåãããŒããã©ã³ãµã¯æåã® HTTP ãªã¯ãšã¹ãã«å¿çã㊠Set-Cookie ããããŒã« HTTP Cookie ãå«ããŸããCookie ã®ååããã¹ãæå¹æéïŒTTLïŒãæå®ããŸãã
ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãHTTP Cookie ããŒã¹ã®ã¢ãã£ããã£ããµããŒãããŠããŸãã
Cookie ã® TTL å€ã¯ã次ã®ããã¯ãšã³ã ãµãŒãã¹ ãã©ã¡ãŒã¿ãšæå¹ãªå€ã䜿çšããŠãç§ãç§æªæºïŒããç§åäœïŒãç§ãšç§æªæºïŒããç§åäœïŒã®ããããã§æ§æã§ããŸãã
consistentHash.httpCookie.ttl.secondsã¯ã0ïœ315576000000ã®å€ã«èšå®ã§ããŸãïŒäž¡ç«¯ãå«ãïŒãconsistentHash.httpCookie.ttl.nanosã¯ã0ïœ999999999ã®å€ã«èšå®ã§ããŸãïŒäž¡ç«¯ãå«ãïŒãåäœã¯ããç§ã§ããããã999999999ã¯.999999999ç§ãæå³ããŸãã
consistentHash.httpCookie.ttl.seconds ãš consistentHash.httpCookie.ttl.nanos ã®äž¡æ¹ãæå®ãããŠããªãå Žåã¯ã代ããã« affinityCookieTtlSec ããã¯ãšã³ã ãµãŒãã¹ ãã©ã¡ãŒã¿ã®å€ã䜿çšãããŸããaffinityCookieTtlSec ãæå®ãããŠããªãå Žåãããã©ã«ãã® TTL å€ã¯ 0 ã§ãã
ã¯ã©ã€ã¢ã³ãããHTTP ãªã¯ãšã¹ãã® Cookie ãªã¯ãšã¹ã ããããŒã« HTTP ã»ãã·ã§ã³ ã¢ãã£ãã㣠Cookie ãå«ãããšãããŒããã©ã³ãµã¯ãã»ãã·ã§ã³ ã¢ãã£ãã㣠Cookie ãæå¹ã§ããéãããããã®ãªã¯ãšã¹ããåãããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã«è»¢éããŸãããããè¡ãã«ã¯ãCookie å€ããç¹å®ã®ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããåç
§ããã€ã³ããã¯ã¹ã«ãããã³ã°ããçæããã Cookie ã®ã»ãã·ã§ã³ ã¢ãã£ããã£èŠä»¶ãæºããããã«ããŸãã
HTTP Cookie ã¢ãã£ããã£ã䜿çšããã«ã¯ã次ã®ãã©ã³ã·ã³ã° ã¢ãŒããš localityLbPolicy èšå®ãæ§æããŸãã
- ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®å Žåã¯ã
RATEãã©ã³ã·ã³ã° ã¢ãŒãã䜿çšããŸãã - ããã¯ãšã³ã ãµãŒãã¹ã®
localityLbPolicyã«ã¯ãRING_HASHãŸãã¯MAGLEVã䜿çšããŸããlocalityLbPolicyãæç€ºçã«èšå®ããªãå ŽåãããŒããã©ã³ãµã¯æé»ã®ããã©ã«ããšããŠMAGLEVã䜿çšããŸãã
詳现ã«ã€ããŠã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ã®åªå€±ãã芧ãã ããã
ã¹ããŒããã« Cookie ããŒã¹ ã»ãã·ã§ã³ ã¢ãã£ããã£
ã¹ããŒããã« Cookie ããŒã¹ ã¢ãã£ããã£ïŒSTRONG_COOKIE_AFFINITYïŒã䜿çšããå ŽåãããŒããã©ã³ãµã¯æåã® HTTP ãªã¯ãšã¹ãã«å¿çã㊠Set-Cookie ããããŒã« HTTP Cookie ãå«ããŸããCookie ã®ååããã¹ãæå¹æéïŒTTLïŒãæå®ããŸãã
åŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãé€ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãã¹ããŒããã« Cookie ããŒã¹ã®ã¢ãã£ããã£ããµããŒãããŠããŸãã
Cookie ã® TTL å€ã¯ãç§ãç§æªæºïŒããç§åäœïŒãç§ãšç§æªæºïŒããç§åäœïŒã®ããããã§æ§æã§ããŸããstrongSessionAffinityCookie.ttl ã§è¡šãããæéã¯ã2 é±éãè¶
ããå€ïŒ1,209,600 ç§ïŒã«ã¯èšå®ã§ããŸããã
Cookie ã®å€ã¯ãéžæããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããå€èªäœã«ãšã³ã³ãŒãããããšã§èå¥ããŸããCookie ãæå¹ã§ããéããã¯ã©ã€ã¢ã³ããåŸç¶ã® HTTP ãªã¯ãšã¹ãã® Cookie ãªã¯ãšã¹ã ããããŒã«ã»ãã·ã§ã³ ã¢ãã£ãã㣠Cookie ãå«ãããšãããŒããã©ã³ãµã¯ãéžæããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã«ãªã¯ãšã¹ãã転éããŸãã
ä»ã®ã»ãã·ã§ã³ ã¢ãã£ããã£æ¹æ³ãšã¯ç°ãªãã
ã¹ããŒããã« Cookie ããŒã¹ ã¢ãã£ããã£ã«ã¯ããã©ã³ã·ã³ã° ã¢ãŒããããŒã ãã©ã³ã·ã³ã°å±ææ§ããªã·ãŒïŒ
localityLbPolicyïŒã«é¢ããç¹å®ã®èŠä»¶ã¯ãããŸãããèªåã¹ã±ãŒãªã³ã°ã«ãã£ãŠãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã«æ°ããã€ã³ã¹ã¿ã³ã¹ã远å ãããŠããã¹ããŒããã« Cookie ããŒã¹ ã¢ãã£ããã£ã¯åœ±é¿ãåããŸããã
éžæããã€ã³ã¹ã¿ã³ã¹ãåé€ãããªãéããèªåã¹ã±ãŒãªã³ã°ã«ãã£ãŠãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããã€ã³ã¹ã¿ã³ã¹ãåé€ãããŠããã¹ããŒããã« Cookie ããŒã¹ ã¢ãã£ããã£ã¯åœ±é¿ãåããŸããã
éžæããã€ã³ã¹ã¿ã³ã¹ãåé€ãããªãéããèªå修埩ã«ãã£ãŠãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããã€ã³ã¹ã¿ã³ã¹ãåé€ãããŠããã¹ããŒããã« Cookie ããŒã¹ ã¢ãã£ããã£ã¯åœ±é¿ãåããŸããã
詳现ã«ã€ããŠã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ã®åªå€±ãã芧ãã ããã
Cookie ããŒã¹ã®ã¢ãã£ããã£ã® TTL ããŒãã®å Žåã®æå³
çæããã Cookie ã¢ãã£ããã£ãHTTP Cookie ã¢ãã£ããã£ãã¹ããŒããã« Cookie ããŒã¹ã®ã¢ãã£ããã£ãªã©ããã¹ãŠã® Cookie ããŒã¹ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã«ã¯ TTL 屿§ããããŸãã
TTL ã 0 ç§ã®å ŽåãããŒããã©ã³ãµã¯ Cookie ã« Expires 屿§ãå²ãåœãŠãŸããããã®å Žåãã¯ã©ã€ã¢ã³ã㯠Cookie ãã»ãã·ã§ã³ Cookie ãšããŠæ±ããŸããã»ãã·ã§ã³ã®å®çŸ©ã¯ãã¯ã©ã€ã¢ã³ãã«ãã£ãŠç°ãªããŸãã
ãŠã§ããã©ãŠã¶ãªã©ã®äžéšã®ã¯ã©ã€ã¢ã³ãã¯ããã©ãŠãžã³ã° ã»ãã·ã§ã³å šäœã§ Cookie ãä¿æããŸããã€ãŸããCookie ã¯ã¢ããªã±ãŒã·ã§ã³ãéãããããŸã§è€æ°ã®ãªã¯ãšã¹ãã«ããã£ãŠä¿æãããŸãã
ä»ã®ã¯ã©ã€ã¢ã³ãã¯ãã»ãã·ã§ã³ãåäžã® HTTP ãªã¯ãšã¹ããšããŠæ±ããçŽåŸã« Cookie ãç Žæ£ããŸãã
ã»ãã·ã§ã³ ã¢ãã£ããã£ã®åªå€±
ãã¹ãŠã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã®ãªãã·ã§ã³ã«ã¯ã次ã®èŠä»¶ããããŸãã
- éžæããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã¯ãããã¯ãšã³ããšããŠæ§æããããŸãŸã«ããå¿
èŠããããŸããã»ãã·ã§ã³ ã¢ãã£ããã£ã¯ã次ã®ããããã®ã€ãã³ããçºçãããšå€±ãããå¯èœæ§ããããŸãã
- éžæããã€ã³ã¹ã¿ã³ã¹ãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããåé€ããŸãã
- ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®èªåã¹ã±ãŒãªã³ã°ãŸãã¯èªå修埩ã«ãããéžæããã€ã³ã¹ã¿ã³ã¹ããããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãããåé€ãããŸãã
- éžæãããšã³ããã€ã³ãã NEG ããåé€ããŸãã
- éžæããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããå«ãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ãããã¯ãšã³ã ãµãŒãã¹ããåé€ããŸãã
- éžæããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã¯æ£åžžãªç¶æ ãç¶æããå¿ èŠããããŸããéžæããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã§ãã«ã¹ãã§ãã¯ã倱æãããšãã»ãã·ã§ã³ ã¢ãã£ããã£ã倱ãããå¯èœæ§ããããŸãã
éžæããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããå«ãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ã¯ãã¿ãŒã²ãã容éã§å®çŸ©ãããŠãã容éãæºãããŠã¯ãªããŸãããïŒãªãŒãžã§ã³ ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®å Žåãéžæããã€ã³ã¹ã¿ã³ã¹ãå«ãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®ãŸãŒã³ ã³ã³ããŒãã³ãããã£ã±ãã«ãªã£ãŠããªãããšïŒãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ããã£ã±ãã§ãä»ã®ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ããã£ã±ãã§ãªãå Žåã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ãç Žæ£ãããå¯èœæ§ããããŸãã
UTILIZATIONãã©ã³ã·ã³ã° ã¢ãŒãã䜿çšãããšãæºæ¯ç¶æ ãäºæž¬ã§ããªãæ¹æ³ã§å€åããå¯èœæ§ããããããRATEãã©ã³ã·ã³ã° ã¢ãŒããŸãã¯CONNECTIONãã©ã³ã·ã³ã° ã¢ãŒãã䜿çšããŠãã»ãã·ã§ã³ ã¢ãã£ããã£ãç Žæããå¯èœæ§ã®ããç¶æ³ãæå°éã«æããå¿ èŠããããŸããæ§æãããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®åèšæ°ã¯äžå®ã«ããå¿ èŠããããŸããæ¬¡ã®ããããã®ã€ãã³ãã 1 ã€ä»¥äžçºçãããšãæ§æãããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®æ°ãå€ãããã»ãã·ã§ã³ ã¢ãã£ããã£ãç Žæããå¯èœæ§ããããŸãã
æ°ããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã远å ãã:
- ããã¯ãšã³ã ãµãŒãã¹ã§ãæ¢åã®ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã«ã€ã³ã¹ã¿ã³ã¹ã远å ããŸãã
- ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®èªåã¹ã±ãŒãªã³ã°ã§ã¯ãããã¯ãšã³ã ãµãŒãã¹ã®ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã«ã€ã³ã¹ã¿ã³ã¹ã远å ãããŸãã
- ããã¯ãšã³ã ãµãŒãã¹ã§ãæ¢åã® NEG ã«ãšã³ããã€ã³ãã远å ããŸãã
- 空ã§ã¯ãªãã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ãããã¯ãšã³ã ãµãŒãã¹ã«è¿œå ããŸãã
éžæããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã ãã§ãªããã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ããåé€ãã:
- ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®ããã¯ãšã³ãããã€ã³ã¹ã¿ã³ã¹ãåé€ããå Žåã
- ãããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®èªåã¹ã±ãŒãªã³ã°ãŸãã¯èªå修埩ã«ããããããŒãžã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒãã®ããã¯ãšã³ãããã€ã³ã¹ã¿ã³ã¹ãåé€ãããŸãã
- NEG ããã¯ãšã³ããããšã³ããã€ã³ããåé€ããŸãã
- 空ã§ã¯ãªãæ¢åã®ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ ã°ã«ãŒããŸã㯠NEG ãããã¯ãšã³ã ãµãŒãã¹ããåé€ããŸãã
æ£åžžãªããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®åèšæ°ã¯äžå®ã«ããå¿ èŠããããŸããæ¬¡ã®ããããã®ã€ãã³ãã 1 ã€ä»¥äžçºçãããšãæ£åžžãªããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãã®æ°ãå€ãããã»ãã·ã§ã³ ã¢ãã£ããã£ãç Žæããå¯èœæ§ããããŸãã
- ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãããã«ã¹ãã§ãã¯ã«åæ Œããç°åžžãªç¶æ ããæ£åžžãªç¶æ ã«å€ãããŸãã
- ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãšã³ããã€ã³ãããã«ã¹ãã§ãã¯ã«å€±æããæ£åžžãªç¶æ ããç°åžžãªç¶æ ã«ç§»è¡ããããã¿ã€ã ã¢ãŠãããŸãã
ãã§ã€ã«ãªãŒããŒ
ããã¯ãšã³ããç°åžžãªç¶æ ã«ãªããšããã©ãã£ãã¯ã¯æ£åžžãªããã¯ãšã³ãã«èªåçã«ãªãã€ã¬ã¯ããããŸãã
次ã®è¡šã«ãåã¢ãŒãã§ã®ãã§ã€ã«ãªãŒããŒã®åäœã瀺ããŸãã
| ããŒããã©ã³ãµ ã¢ãŒã | ãã§ã€ã«ãªãŒããŒã®åäœ | ãã¹ãŠã®ããã¯ãšã³ããç°åžžãªå Žåã®åäœ |
|---|---|---|
| ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | åããªãŒãžã§ã³ãŸãã¯ä»ã®ãªãŒãžã§ã³å ã®æ£åžžãªããã¯ãšã³ããžã®èªåãã§ã€ã«ãªãŒããŒã ãã©ãã£ãã¯ã¯ãæ§æããããã©ãã£ãã¯åæ£ã«åºã¥ããŠãè€æ°ã®ãªãŒãžã§ã³ã«ãŸãããæ£åžžãªããã¯ãšã³ãéã§åæ£ãããŸãã |
HTTP 503 ãè¿ã |
| ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµ | åããªãŒãžã§ã³å ã®æ£åžžãªããã¯ãšã³ããžã®èªåãã§ã€ã«ãªãŒããŒã Envoy ãããã·ã¯ãæ§æããããã©ãã£ãã¯åæ£ã«åºã¥ããŠããªãŒãžã§ã³å ã®æ£åžžãªããã¯ãšã³ãã«ãã©ãã£ãã¯ãéä¿¡ããŸãã |
HTTP 503 ãè¿ã |
é«å¯çšæ§ãšã¯ãã¹ãªãŒãžã§ã³ ãã§ã€ã«ãªãŒããŒ
ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žå
é«å¯çšæ§ãå®çŸããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã£ãã¯ãæãé©åã«ãµããŒããããªãŒãžã§ã³ã«ãè€æ°ã®ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµããããã€ããŸããæ¬¡ã«ãCloud DNS ã®äœçœ®æ å ±ã«ãŒãã£ã³ã° ããªã·ãŒã䜿çšããŠããªãŒãžã§ã³ã®åæ¢äžã«ããŒããã©ã³ãµãå¿çããŠãããã©ãããæ€åºããŸããäœçœ®æ å ±ããªã·ãŒã¯ãã¯ã©ã€ã¢ã³ã ãªã¯ãšã¹ãã®éä¿¡å ã«åºã¥ããŠãæ¬¡ã«æãè¿ã䜿çšå¯èœãªãªãŒãžã§ã³ã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ããŸãããã«ã¹ãã§ãã¯ã¯ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ããã©ã«ãã§äœ¿çšã§ããŸãã
ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®å Žå
è€æ°ã®ãªãŒãžã§ã³ã«ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãèšå®ãããšã次ã®ã¡ãªãããåŸãããŸãã
ãªãŒãžã§ã³å ã®ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«é害ãçºçããå ŽåãDNS ã«ãŒãã£ã³ã° ããªã·ãŒã¯ãå¥ã®ãªãŒãžã§ã³ã®ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«ãã©ãã£ãã¯ã転éããŸãã
é«å¯çšæ§ã®ãããã€äŸã¯æ¬¡ã®ãšããã§ãã
- VPC ãããã¯ãŒã¯ã®
RegionAãªãŒãžã§ã³ãšRegionBãªãŒãžã§ã³ã«ããã³ããšã³ãä»®æ³ IP ã¢ãã¬ã¹ïŒVIPïŒãæã€ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãã¯ã©ã€ã¢ã³ãã¯RegionAãªãŒãžã§ã³ã«é 眮ãããŠããŸãã - 2 ã€ã®ãªãŒãžã§ã³ã®ããã³ããšã³ã VIP ã䜿çšããŠããŒããã©ã³ãµã«ã¢ã¯ã»ã¹ã§ããããã«ããDNS ã«ãŒãã£ã³ã° ããªã·ãŒã䜿çšããŠã¯ã©ã€ã¢ã³ãã«æé©ãª VIP ãè¿ãããšãã§ããŸããã¯ã©ã€ã¢ã³ããå°ççã«æãè¿ã VIP ã䜿çšããããã«èšå®ããå Žåã¯ãäœçœ®æ å ±ã«ãŒãã£ã³ã° ããªã·ãŒã䜿çšããŸãã
- DNS ã«ãŒãã£ã³ã° ããªã·ãŒã¯ããªãŒãžã§ã³ã®åæ¢æã« VIP ãå¿çããŠããªããã©ãããæ€åºããæ¬¡ã«æé©ãª VIP ãã¯ã©ã€ã¢ã³ãã«è¿ããŠããªãŒãžã§ã³ã®åæ¢äžã§ãã¢ããªã±ãŒã·ã§ã³ãç¶æã§ããŸãã
é«å¯çšæ§ãããã€ã§ã®ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµïŒã¯ãªãã¯ããŠæ¡å€§ïŒ - VPC ãããã¯ãŒã¯ã®
ç¹å®ã®ãªãŒãžã§ã³ã®ããã¯ãšã³ãã忢ããå Žåãã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã®ãã©ãã£ãã¯ã¯å¥ã®ãªãŒãžã§ã³ã®ããã¯ãšã³ãã«æ£åžžã«ãã§ã€ã«ãªãŒããŒãããŸãã
ã¯ãã¹ãªãŒãžã§ã³ ãã§ã€ã«ãªãŒããŒã®ãããã€ã¯æ¬¡ã®ãšããã§ãã
- VPC ãããã¯ãŒã¯ã®
RegionAãªãŒãžã§ã³ã«ããã³ããšã³ã VIP ã¢ãã¬ã¹ãæã€ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµããããŸããã¯ã©ã€ã¢ã³ããRegionAãªãŒãžã§ã³ã«ãããŸãã RegionAãšRegionBã® Google Cloud ãªãŒãžã§ã³ã®ããã¯ãšã³ããåç §ããã°ããŒãã« ããã¯ãšã³ã ãµãŒãã¹ãRegionAãªãŒãžã§ã³ã®ããã¯ãšã³ãã忢ããŠããå Žåããã©ãã£ãã¯ã¯RegionBãªãŒãžã§ã³ã«ãã§ã€ã«ãªãŒããŒãããŸãã
ã¯ãã¹ãªãŒãžã§ã³ ãã§ã€ã«ãªãŒã㌠ãããã€ã§ã®ã¯ãã¹ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµïŒã¯ãªãã¯ããŠæ¡å€§ïŒ - VPC ãããã¯ãŒã¯ã®
WebSocket ã®ãµããŒã
Google Cloud ã® HTTP(S) ããŒã¹ã®ããŒããã©ã³ãµã¯ãHTTP ãŸã㯠HTTPS ãããã¯ãšã³ããžã®ãããã³ã«ãšããŠäœ¿çšããå Žåã«ãWebSocket ãããã³ã«ããµããŒãããŸããããŒããã©ã³ãµã«ãWebSocket æ¥ç¶ã®ãããã·ãæ§æããå¿ èŠã¯ãããŸããã
WebSocket ãããã³ã«ã¯ãã¯ã©ã€ã¢ã³ããšããŒããã©ã³ãµéã«å šäºééä¿¡ãã£ãã«ãæäŸããŸãã詳现ã«ã€ããŠã¯ãRFC 6455 ãã芧ãã ããã
WebSocket ãããã³ã«ã¯æ¬¡ã®ããã«æ©èœããŸãã
- ããŒããã©ã³ãµããHTTP ãŸã㯠HTTPS ã¯ã©ã€ã¢ã³ãããã® WebSocket
Upgradeãªã¯ãšã¹ããèªèããŸãããªã¯ãšã¹ãã«ã¯Connection: UpgradeããããŒãšUpgrade: websocketããããŒãå«ãŸãããã®åŸã«ä»ã® WebSocket é¢é£ã®ãªã¯ãšã¹ã ããããŒãç¶ããŸãã - ããã¯ãšã³ãã WebSocket
Upgradeã¬ã¹ãã³ã¹ãéä¿¡ããŸããããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ããConnection: UpgradeããããŒãšUpgrade: websocketããããŒããã®ä»ã® WebSocket é¢é£ã¬ã¹ãã³ã¹ ããããŒãå«ã101 switching protocolã¬ã¹ãã³ã¹ãéä¿¡ããŸãã - ããŒããã©ã³ãµããçŸåšã®æ¥ç¶æéäžãåæ¹åã®ãã©ãã£ãã¯ããããã·ããŸãã
ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ãã¹ããŒã¿ã¹ ã³ãŒã 426 ãŸã㯠502 ãè¿ããå ŽåãããŒããã©ã³ãµã¯æ¥ç¶ãçµäºããŸãã
WebSocket ã®ã»ãã·ã§ã³ ã¢ãã£ããã£ã¯ãä»ã®ãªã¯ãšã¹ãã®å Žåãšåãããã«æ©èœããŸãã詳现ã«ã€ããŠã¯ãã»ãã·ã§ã³ ã¢ãã£ããã£ãã芧ãã ããã
HTTP/2 ãµããŒã
HTTP/2 ã¯ãHTTP/1 ãããã³ã«ã®ã¡ãžã£ãŒ ãªããžã§ã³ã§ããHTTP/2 ã®ãµããŒãã«ã¯ã次㮠2 ã€ã®ã¢ãŒãããããŸãã
- HTTP/2 over TLS
- Cleartext HTTP/2 over TCP
HTTP/2 over TLS
HTTP/2 over TLS ã¯ãã¯ã©ã€ã¢ã³ããšå€éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµéã®æ¥ç¶ãšãããŒããã©ã³ãµãšãã®ããã¯ãšã³ãéã®æ¥ç¶ã§ãµããŒããããŠããŸãã
ããŒããã©ã³ãµã¯ãTLS handshake ã®äžç°ãšã㊠ALPN TLS æ¡åŒµã䜿çšããã¯ã©ã€ã¢ã³ããšã® HTTP/2 ããŽã·ãšãŒã·ã§ã³ãèªåçã«è¡ããŸããããŒããã©ã³ãµã HTTPS ã䜿çšããããã«æ§æãããŠããŠããææ°ã®ã¯ã©ã€ã¢ã³ãã¯ããã©ã«ãã§ HTTP/2 ã«ãªããŸãããã®å¶åŸ¡ã¯ããŒããã©ã³ãµã§ã¯ãªãã¯ã©ã€ã¢ã³ã ãµã€ãäžã§è¡ãããŸãã
ã¯ã©ã€ã¢ã³ãã HTTP/2 ããµããŒãããŠããããããŒããã©ã³ãµãšããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã®éã§ HTTP/2 ã䜿çšããããã«ããŒããã©ã³ãµãæ§æãããŠããå ŽåãããŒããã©ã³ãµã¯ HTTPS æ¥ç¶ã®ããŽã·ãšãŒã·ã§ã³ãè¡ãããå®å šã§ãªã HTTP ãªã¯ãšã¹ããåãå ¥ããŸãããããã® HTTPS ãŸã㯠HTTP ãªã¯ãšã¹ãã¯ããŒããã©ã³ãµã«ãã£ãŠå€æãããHTTP/2 çµç±ã§ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã«ãããã·ãããŸãã
HTTP/2 over TLS ã䜿çšããã«ã¯ãããã¯ãšã³ãã§ TLS ãæå¹ã«ããããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã HTTP2 ã«èšå®ããå¿
èŠããããŸãã詳现ã«ã€ããŠã¯ãããŒããã©ã³ãµããããã¯ãšã³ããžã®æå·åãã芧ãã ããã
HTTP/2 æå€§åæã¹ããªãŒã æ°
HTTP/2 ã® SETTINGS_MAX_CONCURRENT_STREAMS èšå®ã¯ããã¢ãéå§ãããšã³ããã€ã³ããåãå
¥ããã¹ããªãŒã ã®æå€§æ°ã衚ããŸããGoogle Cloud ããŒããã©ã³ãµã¯ã¯ã©ã€ã¢ã³ããžã®ã¹ããªãŒã ãéå§ããªããããHTTP/2 ã¯ã©ã€ã¢ã³ãã«ãããã®ããŒããã©ã³ãµã«ã¢ããã¿ã€ãºãããå€ã¯ãäºå®äžç¡æå³ã«ãªããŸãã
ããŒããã©ã³ãµã HTTP/2 ã䜿çšããŠãVM ã§å®è¡ãããŠãããµãŒããŒãšéä¿¡ããå ŽåãããŒããã©ã³ãµã¯ãµãŒããŒãã¢ããã¿ã€ãºãã SETTINGS_MAX_CONCURRENT_STREAMS å€ïŒæå€§å€ã¯ 100ïŒãåãå
¥ããŸãããªã¯ãšã¹ãæ¹åïŒGoogle Cloud ããŒããã©ã³ãµ â gRPC ãµãŒããŒïŒã§ã¯ãããŒããã©ã³ãµã¯ gRPC ãµãŒããŒããã®æåã® SETTINGS ãã¬ãŒã ã䜿çšããŠãæ¥ç¶ããšã«åæã«äœ¿çšã§ããã¹ããªãŒã ã®æ°ã決å®ããŸãããµãŒããŒã 100 ãã倧ããå€ãã¢ããã¿ã€ãºããå ŽåãããŒããã©ã³ãµã¯åæã¹ããªãŒã ã®æå€§æ°ãšã㊠100 ã䜿çšããŸããå€ 0 ãã¢ããã¿ã€ãºããããšãããŒããã©ã³ãµã¯ãªã¯ãšã¹ãããµãŒããŒã«è»¢éã§ããªãããããšã©ãŒãçºçããå¯èœæ§ããããŸãã
HTTP/2 åçããã㌠ããŒãã« ãµã€ãº
HTTP/2 㯠HTTP/1.1 ããå€§å¹ ã«æ¹åãããå€éåã HPACK ããããŒå§çž®ãªã©ã®æ©èœãåããŠããŸããHPACK ã§ã¯ãåçããŒãã«ã®äœ¿çšã«ãã£ãŠããããŒã®å§çž®çã匷åããããã¹ãŠã®åŠçãé«éåãããŸããHTTP/2 ã®åçããã㌠ããŒãã« ãµã€ãºã®å€æŽã«ãã圱é¿ããã®æ©èœã«ãã£ãŠããã©ãŒãã³ã¹ãæ¹åããä»çµã¿ãããŸããŸãª HTTP ã¯ã©ã€ã¢ã³ã ã©ã€ãã©ãªã®ç¹å®ã®ãã°ã HPACK ããããŒå§çž®ã§åŒãèµ·ããå¯èœæ§ãããåé¡ã«ã€ããŠã¯ãã³ãã¥ããã£èšäºãã芧ãã ããã
HTTP/2 ã®å¶éäºé
- ããŒããã©ã³ãµãšã€ã³ã¹ã¿ã³ã¹ã®éã®æ¥ç¶ã« HTTP/2 ã䜿çšããå Žåã¯ãHTTP ãŸã㯠HTTPS ã®å Žåãããã€ã³ã¹ã¿ã³ã¹ãžã® TCP æ¥ç¶æ°ãå€§å¹ ã«å¢ããå¿ èŠããããŸããHTTP/2 ã§ã¯ãHTTP ãŸã㯠HTTPS ã«ããæ¥ç¶æ°ãæžããããã®æé©åãæäŸããæ¥ç¶ããŒã«ã¯äœ¿çšã§ããŸããããã®çµæãããã¯ãšã³ãæ¥ç¶ãããé »ç¹ã«è¡ããããããããã¯ãšã³ãã®ã¬ã€ãã³ã·ãé«ããªãå¯èœæ§ããããŸãã
- ããŒããã©ã³ãµãšããã¯ãšã³ãã®éã® HTTP/2 ã§ã¯ãHTTP/2 æ¥ç¶ã®åäžã¹ããªãŒã ãä»ãã WebSocket ãããã³ã«ã®å®è¡ïŒRFC 8441ïŒã¯ãµããŒããããŠããŸããã
- ããŒããã©ã³ãµãšããã¯ãšã³ãã®éã® HTTP/2 ã§ã¯ããµãŒã㌠ããã·ã¥ããµããŒããããŠããŸããã
- gRPC ãšã©ãŒçãšãªã¯ãšã¹ãæ°ã¯Google Cloud API ãŸã㯠Google Cloud ã³ã³ãœãŒã«ã§ç¢ºèªã§ããŸãããgRPC ãšã³ããã€ã³ãããšã©ãŒãè¿ããå ŽåãããŒããã©ã³ãµ ãã°ãšã¢ãã¿ãªã³ã° ããŒã¿ã«
200 OKãšãã HTTP ã¹ããŒã¿ã¹ ã³ãŒããèšé²ãããŸãã
ã¯ãªã¢ããã¹ã TCP çµç±ã® HTTP/2
ã¯ãªã¢ããã¹ã TCP çµç±ã® HTTP/2ïŒRFC 7540 ã®èŠå®ã«ãããæååãh2cãã§è¡šãããŸãïŒã䜿çšãããšãTLS æå·åãªãã§ HTTP/2 ã䜿çšã§ããŸããæ¬¡ã®æ¥ç¶ã§ãµããŒããããŠããŸãã
ã¯ã©ã€ã¢ã³ãããããŒããã©ã³ãµ: èªåçã«ãµããŒããããŸããç¹å¥ãªæ§æã¯å¿ èŠãããŸããã
ããŒããã©ã³ãµããããã¯ãšã³ã: ããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã
H2Cã«èšå®ããããšã§ãµããŒããããŸãã
H2C ãµããŒãã¯ãGKE Gateway ã³ã³ãããŒã©ãš Cloud Service Mesh ã䜿çšããŠäœæãããããŒããã©ã³ãµã§ãå©çšã§ããŸãããåŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ã¯ãµããŒããããŠããŸããã
gRPC ã®ãµããŒã
gRPC ã¯ããªã¢ãŒã ããã·ãŒãžã£ ã³ãŒã«çšã®ãªãŒãã³ãœãŒã¹ ãã¬ãŒã ã¯ãŒã¯ã§ãããã㯠HTTP/2 æšæºã«åºã¥ããŠããŸããgRPC ã®ãŠãŒã¹ã±ãŒã¹ã«ã¯æ¬¡ã®ãã®ããããŸãã
- äœã¬ã€ãã³ã·ã§ã¹ã±ãŒã©ããªãã£ã®é«ã忣ã·ã¹ãã
- ã¯ã©ãŠã ãµãŒããŒãšéä¿¡ããã¢ãã€ã« ã¯ã©ã€ã¢ã³ãã®éçº
- æ£ç¢ºãã€å¹ççã§èšèªã«äŸåããªãæ°ãããããã³ã«ã®èšèš
- æ¡åŒµãèªèšŒããã®ã³ã°ãå¯èœã«ããéå±€åã®èšèš
Google Cloud ã¢ããªã±ãŒã·ã§ã³ã§ gRPC ã䜿çšããã«ã¯ãHTTP/2 çµç±ã®ãšã³ãããŒãšã³ãã§ãªã¯ãšã¹ãããããã·ããå¿ èŠããããŸãããããè¡ãã«ã¯ã次ã®ããããã®æ§æã§ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãäœæããŸãã
ã¯ã©ã€ã¢ã³ããšããŒããã©ã³ãµéã® HTTP/2 over TLSãããŒããã©ã³ãµãšããã¯ãšã³ãéã® H2C: HTTPS ããŒããã©ã³ãµãäœæããŸãïŒã¿ãŒã²ãã HTTPS ãããã·ãš SSL èšŒææžã§æ§æãããŸãïŒããŸããããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã
H2Cã«èšå®ããŠãããŒããã©ã³ãµãšãã®ããã¯ãšã³ãéã®æå·åãããŠããªãæ¥ç¶ã« HTTP/2 ã䜿çšããããã«ããŒããã©ã³ãµãæ§æããŸããHTTP/2 over TLS ã䜿çšãããšã³ãããŒãšã³ãã®æå·åããããã©ãã£ãã¯: HTTPS ããŒããã©ã³ãµãäœæããŸãïŒã¿ãŒã²ãã HTTPS ãããã·ãš SSL èšŒææžã§æ§æãããŸãïŒãããŒããã©ã³ãµã¯ãALPN TLS æ¡åŒµã䜿çšã㊠SSL handshake ã®äžéšãšããŠã¯ã©ã€ã¢ã³ããš HTTP/2 ãããŽã·ãšãŒãããŸãã
ãŸããããã¯ãšã³ãã TLS ãã©ãã£ãã¯ãåŠçã§ããããšã確èªããå¿ èŠããããŸããããã«ãããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ã
HTTP2ã«èšå®ããŠãããŒããã©ã³ãµãšãã®ããã¯ãšã³ãéã®æå·åãããæ¥ç¶ã« HTTP/2 ã䜿çšããããã«ããŒããã©ã³ãµãæ§æããå¿ èŠããããŸããããŒããã©ã³ãµã¯ãããŒããã©ã³ãµãšããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã®éã§ HTTP/2 ã䜿çšããããã«æ§æãããããŒããã©ã³ãµã§ãäžéšã®ã¯ã©ã€ã¢ã³ããš HTTPS ãããŽã·ãšãŒãããããšããå®å šã§ãªã HTTP ãªã¯ãšã¹ããåãå ¥ããããšããããŸãããããã® HTTP ãŸã㯠HTTPS ãªã¯ãšã¹ãã¯ããŒããã©ã³ãµã«ãã£ãŠå€æããããªã¯ãšã¹ã㯠HTTP/2 çµç±ã§ããã¯ãšã³ã ã€ã³ã¹ã¿ã³ã¹ã«ãããã·ãããŸãã
TLS ãµããŒã
ããã©ã«ãã§ã¯ãHTTPS ã¿ãŒã²ãã ãããã·ã¯ãã¯ã©ã€ã¢ã³ãã® SSL ãªã¯ãšã¹ããçµç«¯ãããšãã« TLS 1.0ã1.1ã1.2ã1.3 ã®ã¿ãåãå ¥ããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã HTTPS ãããã¯ãšã³ã ãµãŒãã¹ ãããã³ã«ãšããŠäœ¿çšããå Žåã¯ãTLS 1.2 ãŸã㯠1.3 ãããã¯ãšã³ãã«ããŽã·ãšãŒãã§ããŸããçžäº TLS ã®ãµããŒã
çžäº TLSïŒmTLSïŒã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éã§çžäºèªèšŒãè¡ãããã®æ¥çæšæºãããã³ã«ã§ããmTLS ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ããä¿¡é Œã§ããèªèšŒå±ïŒCAïŒã«ãã£ãŠçºè¡ãããæå¹ãªèšŒææžãä¿æããŠããããšã確èªããããšã§ãçžäºã«èªèšŒãããããã«ããŸãããµãŒããŒã®ã¿ãèªèšŒãããæšæº TLS ãšã¯ç°ãªããmTLS ã§ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ãèšŒææžãæç€ºããéä¿¡ã確ç«ããåã«äž¡æ¹ã® ID ã確èªããå¿ èŠããããŸãã
mTLS ã¯ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ãµããŒããããŠããŸããmTLS ã§ã¯ãã¯ã©ã€ã¢ã³ãã TLS handshake äžã«èªèº«ã®èªèšŒãè¡ãããã®èšŒææžãéä¿¡ãããããããŒããã©ã³ãµããªã¯ãšã¹ãããŸããããŒããã©ã³ãµãã¯ã©ã€ã¢ã³ãèšŒææžã®ä¿¡é Œãã§ãŒã³ãæ€èšŒããããã«äœ¿çšãã Certificate Manager ãã©ã¹ãã¹ãã¢ãæ§æã§ããŸãã
mTLS ã®è©³çްã«ã€ããŠã¯ãçžäº TLS èªèšŒãã芧ãã ããã
å¶éäºé
ãªãŒãžã§ã³ã® 1 ã€ã®ãŸãŒã³å ã®ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ãããã¯ã©ã€ã¢ã³ããšåããŸãŒã³ã«ããããã¯ãšã³ãã«éä¿¡ãããä¿èšŒã¯ãããŸãããã»ãã·ã§ã³ ã¢ãã£ããã£ã«ãã£ãŠãŸãŒã³éã®éä¿¡ã¯æžå°ããŸããã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãæ¬¡ã®æ©èœã«å¯Ÿå¿ããŠããŸããã
- Cloud CDN
- Compute Engine Google ãããŒãžã SSL èšŒææžïŒCertificate Manager Google ãããŒãžãèšŒææžããµããŒããããŠããŸãïŒ
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ Certificate Manager èšŒææžã䜿çšããã«ã¯ãAPI ãŸã㯠gcloud CLI ã䜿çšããå¿ èŠããããŸããGoogle Cloud ã³ã³ãœãŒã«ã§ã¯ãCertificate Manager èšŒææžã¯ãµããŒããããŠããŸããã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãTLS ã§ã®ã¿ HTTP/2 ããµããŒãããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã«æ¥ç¶ããã¯ã©ã€ã¢ã³ãã¯ãHTTP ããŒãžã§ã³ 1.1 以éã䜿çšããå¿ èŠããããŸããHTTP 1.0 ã¯ãµããŒããããŠããŸããã
ãããã·å°çšãµããããã§ IP ã¢ãã¬ã¹ãäžè¶³ããŠããå ŽåãGoogle Cloud ããèŠåã¯è¡šç€ºãããŸããã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã䜿çšããå éšè»¢éã«ãŒã«ã«ã¯ãããŒãã 1 ã€ã ãèšå®ããå¿ èŠããããŸãã
å ±æ VPC ç°å¢ã§ Cloud Run ãšå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã䜿çšããå ŽåããµãŒãã¹ ãããžã§ã¯ãã®ã¹ã¿ã³ãã¢ãã³ VPC ãããã¯ãŒã¯ã¯ãä»ã®ãµãŒãã¹ïŒåãå ±æ VPC ç°å¢å ã®ãµãŒãã¹ ãããžã§ã¯ãå ïŒã«ãããã€ãããä»ã® Cloud Run ãµãŒãã¹ã«ãã©ãã£ãã¯ãéä¿¡ã§ããŸããããã¯æ¢ç¥ã®åé¡ã§ãã
Google Cloud ã§ã¯ãããã¯ãšã³ã ãµãŒãã¹ãã¿ã€ã ã¢ãŠãã«ãªããŸã§åºç€ãšãªã TCP æ¥ç¶ãç¶æããããšã¯éããŸãããã¯ã©ã€ã¢ã³ã ã·ã¹ãã ã§ã¯ãTCP æ¥ç¶ã®æç¶æéã«äŸåããã®ã§ã¯ãªããå詊è¡ããžãã¯ãå®è£ ããå¿ èŠããããŸãã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ãCloud Functions 第 1 äžä»£ãš App Engine ããµããŒãããŠããŸããã詳现ã«ã€ããŠã¯ããµãŒããŒã¬ã¹ NEG ã®æŠèŠ: ãµããŒããããŠããããŒããã©ã³ãµãã芧ãã ããã
å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã¯ Cloud Trace ããµããŒãããŠããŸããã
次ã®ã¹ããã
å ±æ VPC èšå®ã§ããŒã ãã©ã³ã·ã³ã°ãæ§æãããå ±æ VPC ã䜿çšããå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãèšå®ãããã芧ãã ããã
GKE Pod ã§å®è¡ãããµãŒãã¹ã®ããŒã ãã©ã³ã·ã³ã°ãæ§æãããGKE Gateway ã®ãããã€ãã¹ã¿ã³ãã¢ãã³ NEG ã䜿çšããã³ã³ãã ãã€ãã£ãã®ããŒã ãã©ã³ã·ã³ã°ãå éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãã¹ã¿ã³ãã¢ãã³ NEG ã«æ¥ç¶ããã®ã»ã¯ã·ã§ã³ãã芧ãã ããã
ãããã·å°çšãµããããã®ãªãœãŒã¹ã管çãããEnvoy ããŒã¹ã®ããŒããã©ã³ãµã®ãããã·å°çšãµãããããã芧ãã ããã
ãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµã§ããã¯ãšã³ãã®ãµãã»ããåãæ§æãããããã¯ãšã³ãã®ãµãã»ããåãã芧ãã ããã
Private Service Connect ã䜿çšããŠãªãŒãžã§ã³å éšã¢ããªã±ãŒã·ã§ã³ ããŒããã©ã³ãµãæ§æãããããã¯ãšã³ãçµç±ã§ãªãŒãžã§ã³ Google API ã«ã¢ã¯ã»ã¹ãããã芧ãã ããã
ããŒã ãã©ã³ã·ã³ã°ã®ããŒã¿ãã¹ã«ã«ã¹ã¿ã ããžãã¯ãæ¿å ¥ããããã«ãCloud Load Balancing æ¡åŒµæ©èœãæ§æããã