
- TOP
- ã¿ã°äžèЧ
- Java
Java
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
çããŸãããã«ã¡ã¯ã Weekly AWSã§ã¯ãæ¯é± AWS ãããã¯ãã®ã¢ããããŒãæ
å ±ããå±ãããŠããŸãã ããã§ã¯ãå
é± (10æ26æ¥ïœ11æ1æ¥) ã®äž»ãª AWS ã¢ããããŒãæ
å ±ã玹ä»ããŸãã ä»é±ã®æ³šç®ã¢ããããŒã Amazon Bedrock ã§ OpenAI GPT-6.1 Terra ã®äžè¬æäŸãéå§ Amazon Bedrock ã§ OpenAI GPT-6.1 Terra ãäžè¬æäŸãããŸãããGPT-6.1 Terra ã¯ãæ¥åžžçãªã¯ãŒã¯ããŒãåãã«æ©èœãé床ãã³ã¹ãå¹çã®ãã©ã³ã¹ãåããã¢ãã«ã§ãã äž»ãªç¹é·ã¯ä»¥äžã®éãã§ãã 詳现ãªèŠèŠçæšè«ã
æ¬çš¿ã¯ãKDDI æ ªåŒäŒç€Ÿ ã³ã¢æè¡çµ±æ¬æ¬éš æ
å ±ã·ã¹ãã æ¬éš DX ã·ã¹ãã 2 éš ããã³ã SRE ã°ã«ãŒã 西 ç·äžæ æ°ã«å¯çš¿ããã ããŸããã ã¯ããã« KDDI æ ªåŒäŒç€Ÿ ïŒä»¥äžãKDDIïŒã§ã¯ 2026 幎 7 æãéä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ãæ¯ãã Amazon Elastic Kubernetes Service ïŒä»¥äžãEKSïŒã®ã¯ã©ã¹ã¿ãããããŒãžãããŒãã°ã«ãŒããã Amazon EKS Auto Mode ïŒä»¥äžãEKS Auto ModeïŒãžç§»è¡ããŸãããç§»è¡ã®ç®çã¯ãã¯ãŒã«ãŒããŒãã®æŽæ°ã«ãããéçšå·¥æ°ãåæžãããã®ã»ãã¥ãªãã£ãç¶ç¶çã«æ
ä¿ããããšã§ãããEKS Auto Mode ã®å°å
¥ã«éããŠã解決ãã¹ã課é¡ã 2 ã€ãããŸãããèµ·åæã® CPU éèŠãžã®å¯ŸåŠãšãããŒãã®å
¥ãæ¿ãæå»ã®å¶åŸ¡ã§ããåŸè
ã«ã€ããŠã¯ãEKS Auto Mode ã®ä»æ§ãæ¬ã·ã¹ãã ã®èŠä»¶ã«åããããããçè
ãã«ã¹ã¿ã ã³ã³ãããŒã©ãéçºããŸãããç§»è¡å®äºåŸãã¯ãŒã«ãŒããŒã㯠AWS ãæäŸããææ°ã® AMI ãžèªåã§å
¥ãæ¿ãããé
ããšã 21 æ¥ä»¥å
ã«ã¯å¿
ãæŽæ°ããããããè匱æ§ãžã®å¯Ÿå¿ã®ããã«èšç»ããŠããã¯ãŒã«ãŒããŒãã®æŽæ°äœæ¥ã¯ãªããªããéçšå·¥æ°ã®åæžã«ç¹ãããŸãããæ¬çš¿ã§ã¯ãæ¡çšãšå¯ŸåŠã®ããããã®å€æãæ¯ãã宿ž¬å€ãšããããŠãå°å
¥ããéçšãŸã§ã®çµç·¯ã玹ä»ããŸãã ãããžã§ã¯ãã®æŠèŠ KDDI ã¯éä¿¡äºæ¥ãåºç€ãšããªãããau PAYã»Ponta ãã€ã³ãã»ãšã³ã¿ã¡ã»ãšãã«ã®ãŒãªã©ããŠãŒã¶ãŒã®ç掻ã«å¯çããå€åœ©ãªãµãŒãã¹ãå±éããŠããŸããæ¬çš¿ã§æ±ãã®ã¯ããã®ãã¡éä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ã§ããçè
㯠KDDI ã®å
補 SRE ããŒã ïŒç€Ÿå
ã§ã¯ãã¯ã©ãŠã SAïŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãïŒããšåŒãã§ããŸãïŒã«æå±ããAWS äžã®ã€ã³ãã©ã®èšèšã»æ§ç¯ã»éçšãæ
åœããŠããŸããéçºäœå¶ã®ç¹åŸŽãšããŠãã€ã³ãã©ãšã¢ããªã±ãŒã·ã§ã³ã§å€æŽã®ãªãŒãã¿ã€ã ãç°ãªãç¹ãæããããŸããAWS ã€ã³ãã©ã¯ KDDI ã® SRE ããŒã ãå
補ããŠãããèšèšå€æŽãçããµã€ã¯ã«ã§å®æœã§ããŸããã¢ããªã±ãŒã·ã§ã³ã¯çµç¹ããŸããã§éçºããŠãããããæ¹ä¿®ã«ã¯çžå¿ã®èª¿æŽæéãèŠããŸããããã§æ¬äºäŸã§ã¯äžè²«ããŠãã¢ããªã±ãŒã·ã§ã³éçºããŒã ã®è² è·ãã€ã³ãã©åŽã§åžåããæ¹éã§èšèšãé²ããŸããã æ¬çš¿ã§èšåããã¯ãŒã¯ããŒãã¯ãè€æ°ã® JavaïŒSpring BootïŒãã€ã¯ããµãŒãã¹çŸ€ã§æ§æãããŠããŸãããã©ããã¯ã«ã¯å£ç¯æ§ããããç¹å¿æã«ã¯å¹³åžžæã® 3 å以äžã®ãªã¯ãšã¹ããçºçããŸãã1 æ¥ã®äžã§ããæå€§ãšæå°ã§ 6 å以äžã®éãããããŸããã¢ããªã±ãŒã·ã§ã³ã皌åãã EKS ã¯ã©ã¹ã¿ã¯éå»ã« 7 åã®ããŒãžã§ã³ã¢ãããããŠããŸããããããã®äœæ¥ããåãæ»ãã容æã§ããããšãããæ¢åã¯ã©ã¹ã¿ãšã¯å¥ã«æ°ããã¯ã©ã¹ã¿ãæ§ç¯ããAmazon Route 53 ã®å éã¬ã³ãŒãã§åãæ¿ãã Blue/Green æ¹åŒã§å®æœããŠããŸãããçŽè¿ 2 åã®ããŒãžã§ã³ã¢ããäœæ¥ã®äžã§ãããŒã OS ã® Bottlerocket OS ãžã®å€æŽãšãEKS Auto Mode ãžã®ç§»è¡ã宿œããŸããã EKS Auto Mode ãæ¡çšããçç± è匱æ§å¯Ÿå¿ãã人æã®äœæ¥ããåãé¢ãããã£ã åŸæ¥ã®æ§æã§ã¯ãã¯ãŒã«ãŒããŒããžã®å€æŽãæå°éã®å·®åã«çããæ¹éãæ¡ã£ãŠããŸãããè匱æ§ãžã®å¯Ÿå¿ãå¿
èŠã«ãªããšã察象ã®ããã«ãŠã§ã¢ã«ã ãããããé©çšãããã®äœæ¥ã§ã¯ EKS ã®ããŒãžã§ã³ãã»ãã®ããã«ãŠã§ã¢ã¯å€æŽããŸããã§ããã倿Žç¯å²ãçµãããšã§æ£åžžæ§ã確å®ã«ç¢ºèªããæ§èœãæ©èœã®ãªã°ã¬ãã·ã§ã³ãé²ãããã§ããã¯ãŒã«ãŒããŒããå
¥ãæ¿ããéã¯ã¡ã³ããã³ã¹ç¶æ
ã«ããå¿
èŠããããããã¢ããªã±ãŒã·ã§ã³åŽãšèª¿æŽããããã§å€éã«äœæ¥ããŠããŸãããè匱æ§ã«ã¯éœåºŠå¯Ÿå¿ã§ããŠããäžæ¹ã§ããã®ãã³ã«èª¿æŽã»æ€èšŒã»å€éäœæ¥ã®å·¥æ°ãããã£ãŠããŸããããŸãè¿å¹Žã¯ã»ãã¥ãªãã£èŠä»¶ã峿 Œã«ãªããè匱æ§ãžã®ããè¿
éãªå¯Ÿå¿ãæ±ããããããã人æãåæãšããéçšã§ã¯è² æ
ãå¢ãç¶ããŸãã EKS Auto Mode ã§ã¯ã ããŒãã®æå¹æéãæé· 21 æ¥ã«èšå® ã§ããæå¹æéãè¿ããããŒã㯠AWS ã管çããææ°ã® AMI ãžèªåã§å
¥ãæ¿ãããŸãããŸããAWS ãããããé©çšããæ°ãã AMI ãå
¬éãããšãæå¹æéãåŸ
ããã«èªåã§ææ°ã® AMI ãžãšå
¥ãæ¿ãããŸãã人æãä»ããã«ããŒããæŽæ°ã§ãããã®ä»çµã¿ã¯é
åçã§ããã èªåæŽæ°ãåãå
¥ãããããšå€æããæ ¹æ 㯠2 ã€ãããŸãã ããŒãã®æŽæ°ãã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãã«ããããšãEKS Auto Mode ã§ã¯ã«ã¹ã¿ã AMI ã OS ãéžã¹ããããŒãã«ç¬èªã®ãœãããŠã§ã¢ãèšå®ãæã¡èŸŒããŸãããæ¬ã·ã¹ãã ã¯ããšããšãã¢ããªã±ãŒã·ã§ã³ãå¿
èŠãšããæ©èœãããŒãã«äŸåãããŠããŸããã§ããããã®ãããããŒããå
¥ãæ¿ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ãžã®åœ±é¿ã¯å°ãããšå€æããŸããã äºææ§ã®ç¢ºèªãèªåãã¡ã§è¡ãç¯å²ãæžãããšãããŒã OS ãš VPC CNI ã CoreDNS ãªã©ã®åºç€ã³ã³ããŒãã³ãã AWS ãäžäœã§ç®¡çã»æŽæ°ãããããçµã¿åããããšã®æŽæ°èšç»ãäºææ§ã®ç¢ºèªãèªåãã¡ã§æ±ããå¿
èŠãå°ãªããªããŸãã EKS Auto Mode ã«ã¯ããŒãã® Amazon EC2 ã®æéã«å ããŠç®¡çæéãããããŸããããã§ããè匱æ§ãžã®å¯Ÿå¿ã«ãããŠããå·¥æ°ãšæ¯èŒãããšãæ¬ã·ã¹ãã ã®ãããªã»ãã¥ãªãã£èŠä»¶ã®å³ãããšã³ã¿ãŒãã©ã€ãºã®çšéã§ã¯ãè¿œå æéãäžåã广ããããšå€æããŸããã OS ã®åãæ¿ããš EKS Auto Mode ã®å°å
¥ã 2 段éã«åããããšã§ããªã¹ã¯ãæããŠæ®µéçã«ç§»è¡ã§ããèŠéããç«ã£ã EKS Auto Mode ã®ããŒã OS 㯠Bottlerocket OS ã«åºå®ãããŠããŸããBottlerocket OS ã¯ã³ã³ããã®å®è¡ã«å¿
èŠãªæå°éã®æ§æãšã€ãã¥ãŒã¿ãã«ãªã«ãŒããã¡ã€ã«ã·ã¹ãã ã«ãããæ»æé¢ãå°ããããèšèšã® OS ã§ããåœæã®ã¯ã©ã¹ã¿ã¯ Amazon Linux 2 ã§åããŠããŸãããããã§ 2 段éã®èšç»ã«ããŸããã1 床ç®ã®ããŒãžã§ã³ã¢ããã§ãŸãããŒã OS ã Bottlerocket OS ãžåãæ¿ãã2 床ç®ã®ããŒãžã§ã³ã¢ããã§ EKS Auto Mode ãžç§»è¡ããé åºã§ãã1 åã®ç§»è¡ã§å€ããèŠçŽ ãæžãããåé¡ãèµ·ãããšãã«åå ãåãåããããããããã§ããããããŠãEKS ã¢ããªã³ãšããŠå°å
¥ã§ããã³ã³ããŒãã³ãã¯ã¢ããªã³ã«éçŽããæ¹éãæ¡ããŸããã ãã® 2 段éã®éã«ãã¢ããªã±ãŒã·ã§ã³åŽã§ã¯ Graceful Shutdown ãžã®å¯Ÿå¿ãé²ããŸãããEKS Auto Mode ã§ã¯ããŒãã人ã®ç«ã¡äŒããªãã«å
¥ãæ¿ãããŸããããŒãã®å
¥ãæ¿ãæã«ãªã¯ãšã¹ããéåããããªãããã«ã¯ãPod ã SIGTERM ãåããŠããåŠçäžã®ãªã¯ãšã¹ããå®äºããŠçµäºããåäœãå¿
èŠã§ãã ã¢ãŒããã¯ãã£æŠèŠ å³ 1: ã·ã¹ãã ã®ã¢ãŒããã¯ã㣠ã·ã¹ãã ãæ§æããäž»ãªãµãŒãã¹ã¯æ¬¡ã®ãšããã§ãã åœ¹å² ãµãŒãã¹ éçã³ã³ãã³ãã®é
ä¿¡ Amazon CloudFront â Amazon S3 API ã®çµè·¯ Amazon CloudFront â Amazon API Gateway â Application Load BalancerïŒALBïŒâ Pod ã³ã³ããã®å®è¡åºç€ Amazon EKS Auto ModeïŒãã©ã€ããŒããµããããã«é
çœ®ïŒ ããŒã¿ã¹ã㢠Amazon AuroraãAmazon ElastiCache for Valkey èªèšŒåºç€ Amazon Cognito ã¯ã©ã¹ã¿ã¯éåã§ãããŒãããã€ã³ã¿ãŒããããžã®çŽæ¥ã®çµè·¯ã¯ãããŸãããå€éšåãã®é信㯠Squid ã«ãããããã·ãçµç±ããAWS ã® API ãžã¯ VPC ãšã³ããã€ã³ããéããŠå°éããŸãã EKS Auto Mode ã«å
èµããã Karpenter ãããŒããèµ·åããåäœã§ãã NodePool ã¯ãçšéå¥ã« 3 ã€çšæããŸãããAPI ãèŒãã NodePool ã¯ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã m5.xlarge ã«åºå®ããŠããŸããã»ãã«ãããçšãšãç£èŠç³»ã®ã³ã³ããŒãã³ããèŒããã·ã¹ãã çšã® NodePool ããããŸããã€ã³ã¹ã¿ã³ã¹ã¿ã€ããåºå®ããçç±ã¯åŸè¿°ããŸãã ã¯ã©ã¹ã¿å
ã®ã³ã³ããŒãã³ãã¯ã管çäž»äœããšã«æ¬¡ã®ããã«åãããŸããEKS Auto Mode ãžã®ç§»è¡ã«ãããVPC CNI ã CoreDNS ãªã©ã®ã³ã³ããŒãã³ã㯠AWS ã®ç®¡çäžã«ç§»ããŸããã 管çäž»äœ ã³ã³ããŒãã³ã AWSïŒEKS Auto Mode ã®çµã¿èŸŒã¿æ©èœïŒ VPC CNIãCoreDNSãkube-proxyãEBS CSI DriverãããŒããã©ã³ãµãŒã®ç®¡çïŒAWS Load Balancer Controller çžåœã®æ©èœïŒ KDDIïŒEKS ã¢ããªã³ãšããŠå°å
¥ïŒ metrics-serverãkube-state-metricsãPrometheus Node ExporterãFluent Bit KDDIïŒHelm ãã£ãŒãã§å°å
¥ïŒ Prometheusãæ¬çš¿ã§ç޹ä»ããèªäœããŒã« å°å
¥æã®èª²é¡ãšå¯ŸåŠïŒèµ·åæã® CPU ã¹ããããªã³ã° 課é¡ã¯çµäºæã§ã¯ãªãèµ·åæã«ãã£ã ç§»è¡åã«æ³šåããŠããã®ã¯ãçµäºæã®å¯Ÿçã§ãããGraceful Shutdown ã«å¯Ÿå¿ããã°ããŒãã®å
¥ãæ¿ãã«äŒŽã圱é¿ã¯æããããã¯ãã§ãããæ€èšŒç°å¢ã«æ§ç¯ããæ°ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ã§ã¯ãããŒãã®å
¥ãæ¿ããè² è·ã®é«ãæé垯ã«ãèµ·ããããåæã§ãPod ãå
¥ãæ¿ããªããè² è·è©Šéšã宿œããŸããããããšæ§ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ãšåãæ§æã®ãŸãŸãäž»èŠãªãµãŒãã¹ã®ã¹ã«ãŒããããååè¿ããŸã§èœã¡ãããŒãã® CPU 䜿çšçã¯äžéã«åŒµãä»ãããŸãŸã«ãªããŸããïŒæ°å€ã¯åŸè¿°ã®è¡šã«ãŸãšããŠããŸãïŒãåå ã調ã¹ããšãåé¡ã¯èµ·åæã«ãããŸããããã㯠EKS Auto Mode åºæã®æ§èœå£åã§ã¯ãããŸãããåŸæ¥ã¯äººæã§åžåããŠãã Pod é
眮ã®åãããç¡äººã®ããŒãæŽæ°ãåæã«ããããšã§å°å
¥ã®éå£ãšããŠè¡šé¢åãããã®ã§ãã API ã® Pod 㯠CPU ã® request ã 200mãlimit ã 2000m ã«èšå®ããŠããŸããã10 åã®ãªãŒããŒã³ãããã§ããKubernetes ã®ã¹ã±ãžã¥ãŒã©ã¯ãªãœãŒã¹ã«ã€ããŠã¯ request ã®å€ãèŠãŠ Pod ãé
眮ããŸãããã®ãããèµ·åæã®å®éã® CPU éèŠãåèšãããšããŒãã®å®¹éã倧ããè¶
ããã»ã©ã®æ°ã® Pod ãã1 å°ã«èŒãããšããããŸããJava ã¢ããªã±ãŒã·ã§ã³ã¯èµ·åçŽåŸãJIT ã³ã³ãã€ã«ãšã¯ã©ã¹ããŒãã§ limit è¿ããŸã§ CPU ã䜿ããŸããè€æ°ã® Pod ãåæã«èµ·åãããšéèŠã容éãè¶
ããlimit ã«éããã³ã³ããã§ CPU ã¹ããããªã³ã°ãçºçããåå±
ãã Pod ã®éã§ CPU ã®ç«¶åãéãªããŸããèµ·åãé
ããã ãã§ãªããåãããŒãã§çšŒåäžã® Pod ãŸã§ CPU ã奪ãããéåžžã®ãªã¯ãšã¹ããã¿ã€ã ã¢ãŠãããŸãã åãäºè±¡ã¯æ§ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ã§ãçºçããŠããŸãããçºçæ¡ä»¶ã¯åãããã€æã§ãæ§ããŒãžã§ã³ã®è² è·è©Šéšãšåãã§ããEKS Auto Mode ãžã®ç§»è¡æã«å€åããŠããã®ã¯ã人ãç«ã¡äŒããã©ããã ãã§ããã ç§»è¡åïŒãããŒãžãããŒãã°ã«ãŒãïŒ ç§»è¡åŸïŒEKS Auto ModeïŒ Pod ãå
¥ãæ¿ãã奿© åãããã€ïŒã¡ã³ããã³ã¹ç¶æ
ã«ããŠäººãç«ã¡äŒãåçšäœæ¥ïŒ ããŒãã®èªåæŽæ°ïŒæå»ãåããªããç¡åæ¢ïŒ é
眮ãåã£ããšã è§£æ¶ãããŸã§åãããã€ãããçŽã ããçŽã人ãããªã èµ·åçŽåŸã® CPU ããŒã¹ã ã¡ã³ããã³ã¹ç¶æ
ãè§£é€ããåã«åãŸã ãšã³ããŠãŒã¶ãŒã®ãªã¯ãšã¹ããåããªããçºçãã ãšã³ããŠãŒã¶ãŒãžã®åœ±é¿ ã¡ã³ããã³ã¹ç¶æ
ã®ãããé
眮ã®åããèµ·åçŽåŸã® CPU ããŒã¹ãã®åœ±é¿ã¯åã°ãªã åãããŒãã®ã»ãã®ãŠãŒã¶ãŒãŸã§ã¿ã€ã ã¢ãŠãããå¯èœæ§ æ¬ã·ã¹ãã ã§ã¯ãPod ã®é
眮ãèªåã§é©æ£åããä»çµã¿ããªããã° EKS Auto Mode ãå°å
¥ã§ããŸããã ãããæåã®èª²é¡ã§ããã 察åŠïŒæ¢åã®å°æ°ã®ãŸãŸ Pod ã®é
眮ã驿£åãã å³ 2: Pod é
眮ã®å¯Ÿçåãšå¯ŸçåŸ å¯ŸçãšããŠãæ€èšãããã®ã®æ¡çšããªãã£ãéžæè¢ãšããã®çç±ã¯æ¬¡ã®ãšããã§ãã éžæè¢ æ¡çšããªãã£ãçç± CPU ã® request ã limit ãšåãå€ã«ãã ãªãŒããŒã³ãããã¯è§£æ¶ããããåçšç°å¢ã§å¿
èŠãªããŒãã®å°æ°ã倧å¹
ã«å¢ãã PodDisruptionBudget Pod ã®éé¿ã®çµè·¯ã«ããå¹ãããèµ·åæã®éäžã¯é²ããªã NodePool ã®æéãããã 1 ããŒãã«åå±
ãã Pod ã®ãŸãšãŸãã¯åè§£ã§ããªã æçµçã«ãããŒãã®å°æ°ãå¢ããã Pod ã®é
眮ã驿£åããæ¹éãæ¡çšããŸãããå
·äœçã«ã¯ãé
眮ã®å¶åŸ¡ãäžå¿ã«æ¬¡ã®å¯ŸåŠãçµã¿åãããŸããã å¯ŸåŠ å
容 topologySpreadConstraints ããŒãéã®åæ£ã DoNotSchedule ãAZ éã®åæ£ã ScheduleAnyway ã§å¶çŽ podAntiAffinity CPU æ¶è²»ã®å€§ãããµãŒãã¹ A ãšãµãŒãã¹ B ã® 1 ãã¢ã«éå®ããåãããŒãã«åå±
ãããªã ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã®åºå® m5.xlarge ã«åºå®ã倧ããã€ã³ã¹ã¿ã³ã¹ã蚱容ãããšãããŒãã®å®¹éã§åå±
æ°ãæããèšèšãæãç«ããªã ALB ã® slow start èµ·åçŽåŸã®ã¿ãŒã²ãããžã®ãã©ããã¯ã段éçã«å¢ããããªã¯ãšã¹ãã®éäžãåé¿ ããŒãé忣ã®å¶çŽã«ã¯ãæ¬æ§æã§ã¯ matchLabelKeys: pod-template-hash ãå¿
èŠã§ãããããããªããš Rolling Update ã§ã®æŽæ°æã«æ°ãã Pod ãæ§ Pod ã®èŒã£ãŠããããŒããåé¿ãç¶ãã maxSurge: 1 ã®æ§æã§ã¯çœ®ãå Žæããªããªã£ãŠ Pending ã®ãŸãŸæ¢ãŸããŸãã è² è·è©Šéšã§ã®å¹ææ€èšŒ 广ã¯ãæ€èšŒç°å¢ïŒm5.xlargeïŒã§ã®è² è·è©Šéšã§ç¢ºãããŸããããã®æ€èšŒã§ã¯åå ã確èªãããããCPU æ¶è²»ã®å€§ãã 3 ãµãŒãã¹ã podAntiAffinity ã§ 1 ããŒãããã 1 Pod ã«éé¢ãããã®åããŒããå¢ãããŠããŸãã衚ã«ã¯ããã®ãã¡åçšç°å¢ã§çžäºæä»ãé©çšãããµãŒãã¹ A ãšãµãŒãã¹ B ã®å€ã瀺ããŸãã ææš ç§»è¡åïŒPod æåå
¥ãæ¿ã ç§»è¡åŸïŒPod å
¥ãæ¿ãæã»å¯Ÿçå ç§»è¡åŸïŒPod å
¥ãæ¿ãæã»å¯ŸçåŸïŒæ€èšŒçšã®é颿§æïŒ ãµãŒãã¹ A ã® RPS 398 216 410 ãµãŒãã¹ B ã® RPS 167 92 179 ããŒãã® CPU 䜿çšçïŒæå€§ïŒ 85% çŽ 100% 72% ã¹ã«ãŒããããš CPU 䜿çšçãç§»è¡åãšåãæ°Žæºã«æ»ããåå ã Pod ã®é
眮ã«ããããšã確èªã§ããŸãããåçšç°å¢ã§ã¯å¿
èŠå°æ°ã®å¢å ãæãããããéé¢ã®å¯Ÿè±¡ã 1 ãã¢ã«çµã£ãŠé©çšããŠããŸãã ãã ãããªãŒããŒã³ãããã®ç¶æ
ãã®ãã®ã¯å€ãã£ãŠããªããããCPU ã¹ããããªã³ã°ã®çºçé »åºŠãäžãã£ã段éã§ãããªãŒããŒã³ãããèªäœãåé¡ãªã®ã§ã¯ãªããèµ·åçŽåŸã® CPU éèŠãåãŸãåã« Pod ããªã¯ãšã¹ããåãä»ããããšãåé¡ã§ããæä¹
çãªå¯Ÿçã¯ãèµ·åçŽåŸã® CPU éèŠãåãŸã£ãŠãã Pod ã healthy ã«ããããšã ãšèããŠããŸãããã®å¯Ÿå¿ã«ã€ããŠã¯ãä»åŸã®å±æãã§è§ŠããŸãã å°å
¥ã®å¹æ EKS Auto Mode ã®å°å
¥ã«ããäžçªã®å¹æã¯ãããŒãã®ç¶ç¶çãªæŽæ°ãéçšã®äžéšã«ãªã£ãããšã§ããããŒãã¯æé· 21 æ¥ã®åšæã§ãAWS ãæäŸããæŽæ°æžã¿ã® AMI ãžå
¥ãæ¿ãããŸããAWS ã AMI ãæŽæ°ãããšãKarpenter ãèšå®ãšã®å·®ç°ïŒDriftïŒãæ€ç¥ããŠããŒããå
¥ãæ¿ããŸãããã®å
¥ãæ¿ãã¯ãDisruption BudgetïŒäžæã®å°æ°ãæé垯ãå¶éããèšå®ïŒã§èš±å¯ããã¡ã³ããã³ã¹ãŠã£ã³ããŠå
ã§è¡ãããŸããåçšå°å
¥ä»¥éã¯ãAMI ã®æŽæ°ã®ãã³ã«å
šããŒãããã®æé垯ã«å
¥ãæ¿ãã£ãŠããŸããAMI ã®æŽæ°ããªããŸãŸæå¹æéãè¿ã¥ããããŒãã¯ãåŸè¿°ãã node-rotation-controller ãåãã¡ã³ããã³ã¹ãŠã£ã³ããŠã§å
¥ãæ¿ããŸããã¯ãŒã«ãŒããŒãåŽã®è匱æ§ãžã®å¯Ÿå¿ãæ±ããããŠãããããŒã OS ã¯èªåã§æŽæ°ããããããååãšããŠåå¥ã®äœæ¥ã¯äžèŠããšåçã§ããããã«ãªããæŽæ°ã®èšç»ãšäœæ¥ã«å
ãŠãŠããå·¥æ°ããªããªããŸããããŸããVPC CNI ã CoreDNS ãªã©ã®åºç€ã³ã³ããŒãã³ãã®æŽæ°ã AWS ã«ä»»ããããããã«ãªã£ãããšãã¡ãªããã®ã²ãšã€ã§ãã ç§»è¡ååŸã®éçšãæ¯ã¹ããšæ¬¡ã®ããã«ãªããŸããåŸåã® 2 ç¹ã¯ EKS Auto Mode ãã®ãã®ã®å¹æã§ã¯ãªããåè¿°ã® Pod é
眮ã®å¯ŸåŠãšãåŸè¿°ãã node-rotation-controller ã«ãããã®ã§ãã é
ç® ç§»è¡åïŒãããŒãžãããŒãã°ã«ãŒãïŒ ç§»è¡åŸïŒEKS Auto ModeïŒ ããŒãã®æŽæ° è匱æ§å¯Ÿå¿ã®ãã³ã«äººãèšç»ããã¡ã³ããã³ã¹ç¶æ
ã«ããŠå€éã«äœæ¥ æé· 21 æ¥ã®åšæã§èªåã§å
¥ãæ¿ããé± 1 åã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠã§ç¡åæ¢ ã¯ãŒã«ãŒããŒãã®è匱æ§ãžã®å¯Ÿå¿ äŸé Œã®ãã³ã«åœ±é¿ã確èªãã察象ã®ããã«ãŠã§ã¢ã ããæŽæ° ãããŒã OS ã¯èªåã§æŽæ°ããããããååãšããŠåå¥ã®äœæ¥ã¯äžèŠããšåç åºç€ã³ã³ããŒãã³ã VPC CNIãCoreDNSãEBS CSI Driver ãªã©ã®ããŒãžã§ã³ã®æŽæ°ãèªåãã¡ã§ç®¡ç AWS ã管ç Pod ã®é
眮 åãããã€æã«åããåºãã人ãããçŽã topologySpreadConstraints ãš podAntiAffinity ã§èªåçã«åæ£ ããŒãã®å
¥ãæ¿ãæå» 人ãäœæ¥ããæé垯 ã¡ã³ããã³ã¹ãŠã£ã³ããŠã«ãŠå®æœïŒEC2 ã®äžæã€ãã³ããªã©ãé€ãïŒ å°å
¥åŸã®éçšèª²é¡ïŒããŒãã®å
¥ãæ¿ãæå»ãå¶åŸ¡ãã å°å
¥åŸã«ããããŒããå
¥ãæ¿ãããã³ã«çŽé¢ãã課é¡ããããŸããããã®èª²é¡ã«å¯ŸããŠçè
ãéçºããã®ããåŸè¿°ãã node-rotation-controller ã§ãã 倱å¹ã«ããå
¥ãæ¿ãã¯ãæé垯ãéžã¹ãªã EKS Auto Mode ã®ããŒãã«ã¯ãOSS ã® Karpenter ã«ã¯ãªãäžéããããŸããæå¹æéïŒ expireAfter ïŒãšã倱å¹åŸã« Pod ã®éé¿ãåŸ
ã€ç¶äºïŒ terminationGracePeriod ïŒã®åèšã 21 æ¥ä»¥å
ã§ãªããã°ãªãããããŒãã¯å¿
ã倱å¹ããŸããKarpenter ã¯ããŒãã®äžæã graceful ãš forceful ã«åããŠããŸããå°æ°ãæé垯ãå¶éãã Disruption Budget ãå¹ãã®ã¯ãgraceful ãªäžæã ãã§ãã äžæã®çš®é¡ Disruption Budget 該åœããäžæ graceful å¹ãïŒå°æ°ã»æé垯ãå¶éã§ããïŒ DriftãUnderutilizedãEmpty forceful å¹ããªãïŒæ¡ä»¶ãæç«ãããš Disruption Budget ãåŸ
ããã«éå§ïŒ ExpirationãInterruption å®éãAMI ã®æŽæ°ã«äŒŽã Drift ã«ããå
¥ãæ¿ãã¯ãDisruption Budget ã®ãšããã¡ã³ããã³ã¹ãŠã£ã³ããŠã«åãŸã£ãŠããŸãããäžæ¹ã倱å¹ïŒExpirationïŒã¯ forceful ã«åé¡ãããŠãããããæé垯ãå¶éã§ããŸãããåè¿°ã®ãšãããæ¬ã·ã¹ãã ã§ã¯ Pod ã®èµ·åæã« CPU ã®éèŠãéäžããŸããã¢ã¯ã»ã¹ã®å€ãæ¥äžã«ããŒããå
¥ãæ¿ãããšéåžžã®ãªã¯ãšã¹ããã¿ã€ã ã¢ãŠããããããå
¥ãæ¿ãã®æå»ãå¶åŸ¡ããææ®µãå¿
èŠã§ããã 察åŠïŒå€±å¹ã®åã«ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã®äžã§å
åãããŠçœ®æãã å³ 3: æšæºã®å€±å¹ãš node-rotation-controller ã«ãã眮æã®æ¯èŒ ããŒãã倱å¹ãè¿ããåã«ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã®äžã§å
åãããŠçœ®æããã«ã¹ã¿ã ã³ã³ãããŒã©ãéçºããŸãããããã node-rotation-controller ã§ããåããŒãã«ã€ããŠãæå¹æéãŸã§ã«ã¡ã³ããã³ã¹ãŠã£ã³ããŠãããšäœåå·¡ã£ãŠããããæ°ããæ®ãã®åæ°ãæå®å€ãäžåã£ãããŒããæ¬¡ã®ãŠã£ã³ããŠã§çœ®æããŸãã眮æã¯æ°ããããŒããå
ã«çšæããŠããå€ãããŒããåé€ããæ¹åŒïŒmake-before-breakïŒã§ã次ã®é ã«é²ã¿ãŸãã 眮æã«å¿
èŠãªå®¹éãèŠæ±ãã placeholder Pod ãäœæãã placeholder Pod ã Pending ã«ãªããKarpenter ãæ°ããããŒããèµ·åãã æ°ããããŒããå©çšå¯èœã«ãªã£ãããšã確èªãã æ§ããŒãã drain ã㊠Pod ãç§»ããæ§ããŒããåé€ãã ãã®æ¹åŒã¯ãKarpenter ã Pending ã® Pod ã«å¿ããŠããŒããèµ·åãã NodePool ãåæãšããŠããŸãã眮æäžã¯äžæçã«ããŒããå¢ãããããNodePool ã® limits ã EC2 ã®ã¯ã©ãŒã¿ã«ã¯äœè£ãæãããŠããŸãã åçšç°å¢ã®èšå®ã¯æ¬¡ã®ãšããã§ããã³ã³ãããŒã©ã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠãš Karpenter åŽã® Disruption Budget ã¯ãåãæéåž¯ã«æããŠããŸãã èšå® å€ æå³ expireAfter 500 æé ããŒãã®æå¹æé terminationGracePeriod 1 æé 倱å¹åŸã« Pod ã®éé¿ãåŸ
ã€ç¶äºãåèš 501 æéïŒ20 æ¥ãš 21 æéïŒã§ãäžéã® 21 æ¥ã«å¯Ÿã㊠3 æéã®äœè£ ã³ã³ãããŒã©ã®ã¡ã³ããã³ã¹ãŠã£ã³ã㊠æ¯é± 1 å 倱å¹åã®çœ®æãå®è¡ããæé垯 Disruption BudgetïŒãŠã£ã³ããŠå
ïŒ åæã«æå€§ 1 å° graceful ãªäžæã®åæå®è¡æ°ãæå€§ 1 å°ã«å¶é Disruption BudgetïŒãŠã£ã³ããŠå€ïŒ 0 å° ã¡ã³ããã³ã¹ãŠã£ã³ããŠå€ã¯èšå®ãšã®å·®ç°ïŒDriftïŒãšäœäœ¿çšçïŒUnderutilizedïŒã«ããäžæãçŠæ¢ã空ããŒãã®åé€ïŒEmptyïŒã¯åžžæãåæã«æå€§ 1 å°ãŸã§èš±å¯ ãã€ã©ã®ããŒããå
¥ãæ¿ããããäºåã«ææ¡ã§ããããã眮æäºå®ãã·ãã¥ã¬ãŒã·ã§ã³ããããŒã«ãããããŠéçºããŸããã åçšå°å
¥åŸã® 1 ãæã¯ AMI ã®æŽæ°ãç¶ããDrift ã«ããå
¥ãæ¿ãã§æå¹æéãæŽæ°ãããŠãããããã³ã³ãããŒã©ã眮æãå®è¡ããããšã¯ãããŸããã§ããããã®åŸãAMI ã®æŽæ°ãéçµ¶ããæéã«åããŠã³ã³ãããŒã©ã眮æãå®è¡ããã¡ã³ããã³ã¹ãŠã£ã³ããŠå
ã« API ããŒãå
šå°ã®çœ®æãå®äºããŸãããAMI ã®æŽæ°ãåéããŠããã¯ãDrift ã«ããå
¥ãæ¿ãã«æ»ã£ãŠããŸãã倱å¹ãš Drift ã«ããããŒãã®å
¥ãæ¿ãã«ã€ããŠã¯ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã«åãŸãç¶æ
ã«ãªã£ãŠããŸãã ä»åŸã®å±æ ãŸãããã°ã®ä¿å
šãé²ããŸããç§»è¡æç¹ã® EKS Auto Mode ã§ã¯ kubelet ã®ãã°ããŒããŒã·ã§ã³èšå®ã倿Žã§ããã1 ã³ã³ãããããåèš 50 MiB ãŸã§ãããã°ãä¿æãããŸããã§ããããã®ããããã°ã®åºåéãå€ãç°å¢ã§ã¯ãFluent Bit ã転éããåã«ãã°ãç Žæ£ãããæãããããŸãããã®å¶çŽã«åããŠãçè
ã¯ãã°ãã¡ã€ã«ãããŒããªã³ã¯ã§éé¿ãã転éã®å®äºã確èªããŠããåé€ãã pod-log-preserver ãéçºããŸãããçŸåšã¯éå®çãªç¯å²ã§æ€èšŒããŠããŸãããŸããæ¬ãããžã§ã¯ãå®äºåŸã® 2026 幎 10 æã®ã¢ããããŒãã§ãNodeClass ã® advancedCompute.kubelet.logging ããããã°ããŒããŒã·ã§ã³ã®ãµã€ãºãšäžä»£æ°ã倿Žã§ããããã«ãªããŸããããã¡ããããããŠå°å
¥ãæ€èšããŠãããŸãã Pod ã®ãªãŒãã¹ã±ãŒã«ã®å°å
¥ãšãããã«ãããããªãœãŒã¹ã®æé©åã«ãåãçµã¿ãŸããKarpenter ã¯ãPod ã®ãªãœãŒã¹èŠæ±ã«å¿ããŠããŒãã®å°æ°ãèªåã§æ±ºããŸããPod ã®ãªãŒãã¹ã±ãŒã«ãå°å
¥ããã°ã墿žãããã©ããã¯ã«ããŒãã®å°æ°ã远éãããããŸããKarpenter ã®æ©èœã掻ãããæ¬¡ã®é åã§ããããããŠãèµ·åçŽåŸã® CPU éèŠãåãŸã£ãŠãã Pod ã healthy ã«ãã察å¿ããã¢ããªã±ãŒã·ã§ã³åŽãšé²ããŸãã node-rotation-controller ã¯ãæ¬ã·ã¹ãã ã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠã®èŠä»¶ã EKS Auto Mode ã®çŸæç¹ã®æ©èœã«åãããŠè£ããã®ã§ãã倱å¹ã®æéåž¯ãæšæºæ©èœã§å¶åŸ¡ã§ããããã«ãªãã°ãæ§æãèŠçŽãäºå®ã§ãã ãŸãšã EKS Auto Mode ã§ã¯ã人ãç«ã¡äŒãããšãåæã«ããéçšã¯æãç«ã¡ãŸãããããŒãã¯ç¡äººã®æé垯ã«å
¥ãæ¿ãããPod ã®é
眮ã®ããçŽãããå
¥ãæ¿ãæå»ã®éžæããäººã®æã«ã¯æ»ã£ãŠããŸãããã ãããããããããèªåã§è¡ãä»çµã¿ãèªåãã¡ã§çšæããå¿
èŠããããŸãããGraceful Shutdown ãžã®å¯Ÿå¿ã¯ã¢ããªã±ãŒã·ã§ã³åŽãšé²ããPod ã®é
眮ãšå
¥ãæ¿ãæå»ã®å¶åŸ¡ã¯ã€ã³ãã©åŽã§è£ããŸããããã®çµæãšããŠåŸãããã®ããããŒãã®ç¶ç¶çãªèªåæŽæ°ã«ããéçšå·¥æ°ã®åæžãšãã¯ãŒã«ãŒããŒãã®ã»ãã¥ãªãã£ã®æ
ä¿ã§ããEKS Auto Mode ã®å°å
¥ãæ€èšãããŠããæ¹ããšãã«ãšã³ã¿ãŒãã©ã€ãºã§ã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ãè€æ°ã®ããŒã ã§åæ
ããŠéçºãããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã èè
ã«ã€ã㊠西 ç·äžæ KDDI æ ªåŒäŒç€Ÿ ã³ã¢æè¡çµ±æ¬æ¬éš æ
å ±ã·ã¹ãã æ¬éš DX ã·ã¹ãã 2 éš ããã³ã SRE ã°ã«ãŒã 2024 幎㫠KDDI ã«å
¥ç€Ÿããéä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ãæ¯ãã AWS äžã®ã€ã³ãã©ã®èšèšã»æ§ç¯ã»éçšã«åŸäºããŠããŸããæ¬äºäŸã§ã¯ EKS Auto Mode ãžã®ç§»è¡ãšãnode-rotation-controller ããã³ pod-log-preserver ã®éçºãæ
åœããŸãããèè
ã®åçã¯ãAWS re:Invent 2025 åå æã«ãç±³åœã©ã¹ãã¬ã¹ã§æ®åœ±ããŸããã
1. ã¯ããã« æ¬èšäºã§ã¯ãOracle WebLogic ServerïŒä»¥äžãWebLogicïŒããApache TomcatïŒä»¥äžãTomcatïŒãžã®ç§»è¡æ€èšŒã玹ä»ããŸãã ãæ¬¡ã®ã·ã¹ãã æŽæ¹ã§ãWebLogicãTomcatã«ç§»è¡ããããããããããã ãšäžåžããèšãããŠãããŠå°ããŸããã ãšã¯ãããæåãããã®ãããé£ããèããŠããããã§ã¯ãããŸããã Oracle WebLogic Server Proxy Plug-InïŒä»¥äžãWebLogic Proxy Plug-InïŒãApplication Request RoutingïŒä»¥äžãARRïŒã«çœ®ãæããŠãTomcatãŸ
















