APIã¬ãŒãå¶éã®å æ¬çãªã¬ã€ãããã®éèŠæ§ãæ§ã ãªå®è£ æŠç¥ãå ç¢ã§ã¹ã±ãŒã©ãã«ãªAPIãæ§ç¯ããããã®ãã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
APIã¬ãŒãå¶éïŒã¹ã±ãŒã©ãã«ãªAPIã®ããã®å®è£ æŠç¥
仿¥ã®çžäºæ¥ç¶ãããäžçã§ã¯ãAPIïŒã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ãŒã¹ïŒã¯æ°ãåããªãã»ã©ã®ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã®ããã¯ããŒã³ãšãªã£ãŠããŸããAPIã¯ãç°ãªãã·ã¹ãã éã®ã·ãŒã ã¬ã¹ãªéä¿¡ãšããŒã¿äº€æãå¯èœã«ããŸããããããAPIãžã®äŸå床ãé«ãŸãã«ã€ããŠãç¹ã«ã¹ã±ãŒã©ããªãã£ãšã»ãã¥ãªãã£ã«é¢ãã課é¡ãçããŠããŸããAPI管çã®éèŠãªåŽé¢ã®äžã€ãã¬ãŒãå¶éã§ãããããã¯äžæ£å©çšã®é²æ¢ãå ¬å¹³ãªå©çšã®ç¢ºä¿ããããŠAPIã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã®å®å®æ§ç¶æã«äžå¯æ¬ ãªåœ¹å²ãæãããŸãã
APIã¬ãŒãå¶éãšã¯ïŒ
APIã¬ãŒãå¶éã¯ãã¯ã©ã€ã¢ã³ããç¹å®ã®æéæ å ã«APIã«å¯ŸããŠè¡ãããªã¯ãšã¹ãã®æ°ãå¶åŸ¡ããæè¡ã§ããããã¯ã²ãŒãããŒããŒãšããŠæ©èœãããµãŒãã¹æåŠïŒDoSïŒã忣åãµãŒãã¹æåŠïŒDDoSïŒã®ãããªæªæã®ããæ»æããèšèšã®äžååãªã¢ããªã±ãŒã·ã§ã³ã«ããæå³ããªãéè² è·ãé²ããŸããã¬ãŒãå¶éãå®è£ ããããšã§ãAPIãªãœãŒã¹ãä¿è·ããäžè²«ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã確ä¿ãããµãŒãã¹ã®äžæãé²ãããšãã§ããŸãã
ãªãã¬ãŒãå¶éã¯éèŠãªã®ãïŒ
ã¬ãŒãå¶éã¯ãããã€ãã®çç±ã§äžå¯æ¬ ã§ãïŒ
- äžæ£å©çšã®é²æ¢ïŒæªæã®ããè ãéå°ãªãªã¯ãšã¹ãã§APIãå§åãããµãŒããŒãã¯ã©ãã·ã¥ãããããå€é¡ã®ã³ã¹ããçºçããããããã®ãé²ããŸãã
- å ¬å¹³ãªå©çšã®ç¢ºä¿ïŒãã¹ãŠã®ãŠãŒã¶ãŒãAPIãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããå ¬å¹³ãªæ©äŒãåŸãããããã«ããåäžã®ãŠãŒã¶ãŒããµãŒãã¹ãç¬å ããã®ãé²ããŸãã
- APIã®å®å®æ§ç¶æïŒãªã¯ãšã¹ãã¬ãŒããå¶åŸ¡ããããšã§ãAPIãéè² è·ã«ãªãã®ãé²ããäžè²«ããããã©ãŒãã³ã¹ãšå¯çšæ§ã確ä¿ããŸãã
- ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ä¿è·ïŒéå°ãªãã©ãã£ãã¯ã«ãã£ãŠåºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ãå§åãããã®ãé²ããæœåšçãªåæ¢ãããŒã¿æå€±ãé²ããŸãã
- åçåãšéå±€åã¢ã¯ã»ã¹ïŒäœ¿çšéã«åºã¥ããŠç°ãªãã¬ãã«ã®APIã¢ã¯ã»ã¹ãæäŸã§ããããã«ãªããAPIãåçåããããŸããŸãªé¡§å®¢ããŒãºã«å¯Ÿå¿ã§ããŸãã
å®è£ æŠç¥
APIã¬ãŒãå¶éãå®è£ ããã«ã¯ãããããã«é·æãšçæãããããã€ãã®ç°ãªãã¢ãããŒãããããŸãã以äžã¯ãæãäžè¬çãªæŠç¥ã®äžéšã§ãïŒ
1. ããŒã¯ã³ãã±ããã¢ã«ãŽãªãºã
ããŒã¯ã³ãã±ããã¢ã«ãŽãªãºã ã¯ãã¬ãŒãå¶éã«å¯Ÿãã人æ°ã®ããæè»ãªã¢ãããŒãã§ããããŒã¯ã³ãä¿æãããã±ãããæ³åããŠãã ãããåãªã¯ãšã¹ãã¯ããŒã¯ã³ã1ã€æ¶è²»ããŸããå©çšå¯èœãªããŒã¯ã³ãããã°ãªã¯ãšã¹ãã¯åŠçãããŸããããªããã°æåŠãŸãã¯é å»¶ãããŸãããã±ããã¯ãç¹å®ã®ã¬ãŒãã§å®æçã«ããŒã¯ã³ã§è£å ãããŸãã
ä»çµã¿ïŒ
- åã¯ã©ã€ã¢ã³ãã«å¯ŸããŠãæå€§å®¹éãšè£å ã¬ãŒããæã€ãã±ãããäœæãããŸãã
- ã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ããè¡ããã³ã«ããã±ããããããŒã¯ã³ã1ã€åé€ãããŸãã
- ãã±ããã空ã®å Žåããªã¯ãšã¹ãã¯ããŒã¯ã³ãå©çšå¯èœã«ãªããŸã§æåŠãŸãã¯é å»¶ãããŸãã
- ãã±ããã¯ãæå€§å®¹éãŸã§åºå®ã¬ãŒãã§ããŒã¯ã³ã§è£å ãããŸãã
å©ç¹ïŒ
- æè»æ§ïŒè£å ã¬ãŒããšãã±ãããµã€ãºã¯ãããŸããŸãªAPIèŠä»¶ã«åãããŠèª¿æŽã§ããŸãã
- ããŒã¹ãã®èš±å®¹ïŒã¬ãŒãå¶éãããªã¬ãŒããããšãªããææçºçãããã©ãã£ãã¯ã®ããŒã¹ãã蚱容ããŸãã
- å®è£ ã®å®¹æãïŒå®è£ ãšçè§£ãæ¯èŒçç°¡åã§ãã
æ¬ ç¹ïŒ
- è€éãïŒåã¯ã©ã€ã¢ã³ãã®ãã±ãããšããŒã¯ã³ã管çããå¿ èŠããããŸãã
- èšå®ïŒè£å ã¬ãŒããšãã±ãããµã€ãºã®æ éãªèšå®ãå¿ èŠã§ãã
äŸïŒ
ããŒã¯ã³ãã±ããã¢ã«ãŽãªãºã ã䜿çšããŠããŠãŒã¶ãŒããšã«æ¯ç§10ãªã¯ãšã¹ãã®ã¬ãŒãå¶éãããAPIããããšããŸããåãŠãŒã¶ãŒã¯æå€§10åã®ããŒã¯ã³ãä¿æã§ãããã±ãããæã£ãŠããŸããæ¯ç§ããã±ããã¯10åã®ããŒã¯ã³ã§è£å ãããŸãïŒæå€§å®¹éãŸã§ïŒããŠãŒã¶ãŒã1ç§éã«15åã®ãªã¯ãšã¹ããè¡ã£ãå Žåãæåã®10åã®ãªã¯ãšã¹ãã¯ããŒã¯ã³ãæ¶è²»ããæ®ãã®5åã®ãªã¯ãšã¹ãã¯æåŠãŸãã¯é å»¶ãããŸãã
2. ãªãŒããŒãã±ããã¢ã«ãŽãªãºã
ãªãŒããŒãã±ããã¢ã«ãŽãªãºã ã¯ããŒã¯ã³ãã±ããã«äŒŒãŠããŸããããªã¯ãšã¹ãã®æµåºãå¶åŸ¡ããããšã«çŠç¹ãåœãŠãŠããŸããäžå®ã®æŒåºçãæã€ãã±ãããæ³åããŠãã ãããå ¥ã£ãŠãããªã¯ãšã¹ãã¯ãã±ããã«è¿œå ããããã±ããã¯åºå®ã¬ãŒãã§ãªã¯ãšã¹ããæŒåºãããŸãããã±ãããæº¢ãããšããªã¯ãšã¹ãã¯ç Žæ£ãããŸãã
ä»çµã¿ïŒ
- åã¯ã©ã€ã¢ã³ãã«å¯ŸããŠãæå€§å®¹éãšæŒåºçãæã€ãã±ãããäœæãããŸãã
- å ¥ã£ãŠããåãªã¯ãšã¹ãã¯ãã±ããã«è¿œå ãããŸãã
- ãã±ããã¯åºå®ã¬ãŒãã§ãªã¯ãšã¹ããæŒåºãããŸãã
- ãã±ããããã£ã±ãã«ãªããšãå ¥ã£ãŠãããªã¯ãšã¹ãã¯ç Žæ£ãããŸãã
å©ç¹ïŒ
- ã¹ã ãŒãºãªãã©ãã£ãã¯ïŒãªã¯ãšã¹ãã®æµåºãã¹ã ãŒãºã«ãããã©ãã£ãã¯ã®ããŒã¹ããé²ããŸãã
- ã·ã³ãã«ãªå®è£ ïŒå®è£ ãæ¯èŒçç°¡åã§ãã
æ¬ ç¹ïŒ
- ããŒã¹ã蚱容ã®å¶éïŒããŒã¯ã³ãã±ããã¢ã«ãŽãªãºã ã»ã©ç°¡åã«ã¯ããŒã¹ããã©ãã£ãã¯ã蚱容ããŸããã
- ãªã¯ãšã¹ãç Žæ£ã®å¯èœæ§ïŒãã±ãããæº¢ãããšããªã¯ãšã¹ããç Žæ£ãããå¯èœæ§ããããŸãã
äŸïŒ
ç»åãåŠçããAPIãèããŠã¿ãŸãããããµãŒãã¹ãéè² è·ã«ãªãã®ãé²ãããã«ãæ¯ç§5ç»åã®æŒåºçãæã€ãªãŒããŒãã±ãããå®è£ ãããŠããŸãããã®ã¬ãŒããè¶ ããç»åã®ã¢ããããŒãã¯ç Žæ£ãããŸããããã«ãããç»ååŠçãµãŒãã¹ãã¹ã ãŒãºãã€å¹ççã«å®è¡ãããããšãä¿èšŒãããŸãã
3. åºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒ
åºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã¢ã«ãŽãªãºã ã¯ãæéãåºå®ãµã€ãºã®ãŠã£ã³ããŠïŒäŸïŒ1åã1æéïŒã«åå²ããŸããåã¯ã©ã€ã¢ã³ãã«ã€ããŠãçŸåšã®ãŠã£ã³ããŠå ã§è¡ããããªã¯ãšã¹ãã®æ°ãã«ãŠã³ãããŸããã«ãŠã³ããå¶éãè¶ ããå ŽåãåŸç¶ã®ãªã¯ãšã¹ãã¯ãŠã£ã³ããŠããªã»ããããããŸã§æåŠãããŸãã
ä»çµã¿ïŒ
- æéã¯åºå®ãµã€ãºã®ãŠã£ã³ããŠã«åå²ãããŸãã
- åã¯ã©ã€ã¢ã³ãã«å¯ŸããŠã«ãŠã³ã¿ãŒãç¶æãããçŸåšã®ãŠã£ã³ããŠå ã®ãªã¯ãšã¹ãæ°ã远跡ããŸãã
- ã«ãŠã³ã¿ãŒãå¶éãè¶ ããå ŽåãåŸç¶ã®ãªã¯ãšã¹ãã¯ãŠã£ã³ããŠããªã»ããããããŸã§æåŠãããŸãã
- ãŠã£ã³ããŠããªã»ããããããšãã«ãŠã³ã¿ãŒã¯ãŒãã«ãªã»ãããããŸãã
å©ç¹ïŒ
- ã·ã³ãã«ãïŒå®è£ ãéåžžã«ç°¡åã§ãã
- äœãªãŒããŒãããïŒæå°éã®ãªãœãŒã¹ããå¿ èŠãšããŸããã
æ¬ ç¹ïŒ
- ããŒã¹ããã©ãã£ãã¯ã®å¯èœæ§ïŒãŠã£ã³ããŠã®å¢çã§ãã©ãã£ãã¯ã®ããŒã¹ãã蚱容ããå¯èœæ§ããããŸãããŠãŒã¶ãŒã¯ãŠã£ã³ããŠããªã»ãããããçŽåã«èš±å®¹ããããªã¯ãšã¹ãæ°ãè¡ããæ°ãããŠã£ã³ããŠã®éå§æã«ããã«å¥ã®å®å šãªãªã¯ãšã¹ãã»ãããè¡ãããšã§ãå®è³ªçã«èš±å®¹ã¬ãŒãã2åã«ããããšãã§ããŸãã
- äžæ£ç¢ºãªã¬ãŒãå¶éïŒãªã¯ãšã¹ãããŠã£ã³ããŠã®æåãŸãã¯æåŸã«éäžãããšãäžæ£ç¢ºã«ãªãå¯èœæ§ããããŸãã
äŸïŒ
åºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã¢ã«ãŽãªãºã ã䜿çšããŠãæ¯å100ãªã¯ãšã¹ãã®ã¬ãŒãå¶éãããAPIãæ³åããŠãã ããããŠãŒã¶ãŒã¯çè«çã«ã¯ãããåã®æåŸã®1ç§ã§100åã®ãªã¯ãšã¹ããè¡ããæ¬¡ã®åã®æåã®1ç§ã§ããã«100åã®ãªã¯ãšã¹ããè¡ãããšãã§ããå®è³ªçã«èš±å®¹ã¬ãŒãã2åã«ããããšãã§ããŸãã
4. ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°
ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ã¢ã«ãŽãªãºã ã¯ãã¹ã©ã€ãã£ã³ã°æéãŠã£ã³ããŠå ã§è¡ããããã¹ãŠã®ãªã¯ãšã¹ãã®ãã°ãä¿æããŸãããªã¯ãšã¹ããè¡ããããã³ã«ãã¢ã«ãŽãªãºã ã¯ãã°å ã®ãªã¯ãšã¹ãæ°ãå¶éãè¶ ããŠããªããã確èªããŸããè¶ ããŠããå Žåã¯ããªã¯ãšã¹ãã¯æåŠãããŸãã
ä»çµã¿ïŒ
- åã¯ã©ã€ã¢ã³ãã«å¯ŸããŠãã°ãç¶æãããã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠå ã§è¡ããããã¹ãŠã®ãªã¯ãšã¹ãã®ã¿ã€ã ã¹ã¿ã³ããä¿åãããŸãã
- æ°ãããªã¯ãšã¹ããè¡ããããšããã°ããã§ãã¯ããããŠã£ã³ããŠå ã®ãªã¯ãšã¹ãæ°ãå¶éãè¶ ããŠããªããã©ããã確èªãããŸãã
- å¶éãè¶ ããŠããå Žåããªã¯ãšã¹ãã¯æåŠãããŸãã
- å€ããšã³ããªã¯ãã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã®å€ã«åºããšãã°ããåé€ãããŸãã
å©ç¹ïŒ
- æ£ç¢ºæ§ïŒåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãããæ£ç¢ºãªã¬ãŒãå¶éãæäŸããŸãã
- ãŠã£ã³ããŠå¢çã®åé¡ãªãïŒãŠã£ã³ããŠã®å¢çã§ã®ããŒã¹ããã©ãã£ãã¯ã®å¯èœæ§ãåé¿ããŸãã
æ¬ ç¹ïŒ
- é«ããªãŒããŒãããïŒåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãããå€ãã®ã¹ãã¬ãŒãžãšåŠçèœåãå¿ èŠãšããŸãã
- è€éãïŒå®è£ ãããè€éã§ãã
äŸïŒ
ãœãŒã·ã£ã«ã¡ãã£ã¢APIã¯ãã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ã䜿çšããŠããŠãŒã¶ãŒã1æéããã500æçš¿ã«å¶éããããšãã§ããŸãããã°ã«ã¯ãæåŸã®500æçš¿ã®ã¿ã€ã ã¹ã¿ã³ããä¿åãããŸãããŠãŒã¶ãŒãæ°ããã¡ãã»ãŒãžãæçš¿ããããšãããšãã¢ã«ãŽãªãºã ã¯éå»1æé以å ã«ãã§ã«500ä»¶ã®æçš¿ããããã©ããã確èªããŸãããããããªããæçš¿ã¯æåŠãããŸãã
5. ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã«ãŠã³ã¿ãŒ
ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã¯ãåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãšã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ã®äž¡æ¹ã®å©ç¹ãçµã¿åããããã€ããªããã¢ãããŒãã§ãããŠã£ã³ããŠãããå°ããªã»ã°ã¡ã³ãã«åå²ããéã¿ä»ãèšç®ã䜿çšããŠã¬ãŒãå¶éãæ±ºå®ããŸããããã«ãããåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãããæ£ç¢ºãªã¬ãŒãå¶éãæäŸããã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ããããªãœãŒã¹éçŽçã§ã¯ãããŸããã
ä»çµã¿ïŒ
- æéãŠã£ã³ããŠãããå°ããªã»ã°ã¡ã³ãïŒäŸïŒ1åå ã®ç§ïŒã«åå²ããŸãã
- åã»ã°ã¡ã³ãã®ã«ãŠã³ã¿ãŒãç¶æããŸãã
- å®äºããã»ã°ã¡ã³ããšçŸåšã®ã»ã°ã¡ã³ããèæ ®ããŠãçŸåšã®ãªã¯ãšã¹ãã¬ãŒããèšç®ããŸãã
- èšç®ãããã¬ãŒããå¶éãè¶ ããå Žåããªã¯ãšã¹ãã¯æåŠãããŸãã
å©ç¹ïŒ
- 粟床ã®åäžïŒåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãšæ¯èŒããŠãããåªãã粟床ãæäŸããŸãã
- äœããªãŒããŒãããïŒã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ããããªãœãŒã¹éçŽçã§ã¯ãããŸããã
- è€éããšããã©ãŒãã³ã¹ã®ãã©ã³ã¹ïŒç²ŸåºŠãšãªãœãŒã¹äœ¿çšéã®éã®è¯ã劥åç¹ã§ãã
æ¬ ç¹ïŒ
- ããè€éãªå®è£ ïŒåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒãããå®è£ ãè€éã§ãã
- äŸç¶ãšããŠè¿äŒŒå€ïŒåºå®ãŠã£ã³ããŠãããæ£ç¢ºã§ãããäŸç¶ãšããŠè¿äŒŒå€ã§ãã
äŸïŒ
eã³ããŒã¹APIã¯ãæ¯å200ãªã¯ãšã¹ãã®ã¬ãŒãå¶éãæã€ã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã䜿çšããåã10ç§ã®ã»ã°ã¡ã³ãã«åå²ãããããããŸãããã¢ã«ãŽãªãºã ã¯ã以åã®å®å šãªã»ã°ã¡ã³ããšçŸåšã®ã»ã°ã¡ã³ãããã®ãªã¯ãšã¹ãã®å éå¹³åãèšç®ããŠããŠãŒã¶ãŒãã¬ãŒãå¶éãè¶ ããŠãããã©ããã倿ããŸãã
é©åãªæŠç¥ã®éžæ
APIã«æé©ãªã¬ãŒãå¶éæŠç¥ã¯ãç¹å®ã®èŠä»¶ãšå¶çŽã«ãã£ãŠç°ãªããŸãã以äžã®èŠå ãèæ ®ããŠãã ããïŒ
- æ£ç¢ºæ§ïŒã¬ãŒãå¶éã¯ã©ã®çšåºŠæ£ç¢ºã§ããå¿ èŠããããŸããïŒå°ããªãã©ãã£ãã¯ã®ããŒã¹ãã§ããé²ãå¿ èŠããããŸããïŒ
- ããã©ãŒãã³ã¹ïŒã¬ãŒãå¶éã¢ã«ãŽãªãºã ã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã¯ã©ã®ãããã§ããïŒäºæ³ããããã©ãã£ãã¯éãåŠçã§ããŸããïŒ
- è€éãïŒã¢ã«ãŽãªãºã ã®å®è£ ãšç¶æã¯ã©ã®ãããè€éã§ããïŒ
- ãªãœãŒã¹äœ¿çšéïŒã¢ã«ãŽãªãºã ã¯ã©ã®ãããã®ã¹ãã¬ãŒãžãšåŠçèœåãæ¶è²»ããŸããïŒ
- æè»æ§ïŒå€åããèŠä»¶ã«é©å¿ããããã«ã¢ã«ãŽãªãºã ã¯ã©ã®ãããæè»ã§ããïŒ
- ãŠãŒã¹ã±ãŒã¹ïŒAPIã®ç¹å®ã®ããŒãºãäŸãã°ããããéèŠãªãµãŒãã¹ã§ããå Žåã粟床ã¯é«ãå¿ èŠããããŸãããåæAPIã§ã¯å€å°ã®äžæ£ç¢ºãã蚱容ãããå ŽåããããŸãã
äžè¬çã«ãåºå®ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã®ãããªããåçŽãªã¢ã«ãŽãªãºã ã¯ãèŠä»¶ãããã»ã©å³ãããªãAPIã«é©ããŠããŸãããã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠãã°ãã¹ã©ã€ãã£ã³ã°ãŠã£ã³ããŠã«ãŠã³ã¿ãŒã®ãããªããæŽç·Žãããã¢ã«ãŽãªãºã ã¯ãããæ£ç¢ºãªã¬ãŒãå¶éãå¿ èŠãªAPIã«ããé©ããŠããŸãã
å®è£ ã«é¢ããèæ ®äºé
APIã¬ãŒãå¶éãå®è£ ããéã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ãèæ ®ããŠãã ããïŒ
- ã¯ã©ã€ã¢ã³ãã®èå¥ïŒAPIããŒãèªèšŒããŒã¯ã³ããŸãã¯IPã¢ãã¬ã¹ã䜿çšããŠã¯ã©ã€ã¢ã³ããèå¥ããŸãã
- ã¬ãŒãå¶éã®å®çŸ©ïŒåã¯ã©ã€ã¢ã³ããŸãã¯APIãšã³ããã€ã³ãã«å¯ŸããŠé©åãªã¬ãŒãå¶éãå®çŸ©ããŸãã
- ã¬ãŒãå¶éããŒã¿ã®ä¿åïŒã¬ãŒãå¶éããŒã¿ã«é©ããã¹ãã¬ãŒãžã¡ã«ããºã ãéžæããŸããäŸãã°ãã€ã³ã¡ã¢ãªãã£ãã·ã¥ïŒRedisãMemcachedïŒãããŒã¿ããŒã¹ããŸãã¯åæ£ã¬ãŒãå¶éãµãŒãã¹ãªã©ã§ãã
- æçãªãšã©ãŒã¡ãã»ãŒãžã®æäŸïŒã¯ã©ã€ã¢ã³ããã¬ãŒãå¶éãè¶ ããå Žåã«æçãªãšã©ãŒã¡ãã»ãŒãžãè¿ããŸããå詊è¡ãããŸã§ã«åŸ æ©ããå¿ èŠãããæéãªã©ã®è©³çްãå«ããŸãïŒäŸïŒ`Retry-After`ããããŒã䜿çšïŒã
- ç£èŠãšåæïŒã¬ãŒãå¶éããŒã¿ãç£èŠããã³åæããŠãæœåšçãªåé¡ãç¹å®ããã¬ãŒãå¶éãæé©åããŸãã
- APIããŒãžã§ãã³ã°ã®èæ ®ïŒç°ãªãAPIããŒãžã§ã³ã«ã¯ãç°ãªãã¬ãŒãå¶éãå¿ èŠãªå ŽåããããŸãã
- 匷å¶ã®å ŽæïŒã¬ãŒãå¶éã¯ãç°ãªãã¬ã€ã€ãŒïŒäŸïŒAPIã²ãŒããŠã§ã€ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒïŒã§åŒ·å¶ã§ããŸããAPIã²ãŒããŠã§ã€ããã°ãã°æšå¥šãããéžæè¢ã§ãã
- ã°ããŒãã«å¯ŸããŒã«ã«ã®ã¬ãŒãå¶éïŒã¬ãŒãå¶éããã¹ãŠã®ãµãŒããŒã«ã°ããŒãã«ã«é©çšããããåãµãŒããŒã«ããŒã«ã«ã«é©çšããããæ±ºå®ããŸããã°ããŒãã«ãªã¬ãŒãå¶éã¯ããæ£ç¢ºã§ãããå®è£ ã¯ããè€éã§ãã
- 段éçãªæ©èœäœäžïŒGraceful DegradationïŒïŒã¬ãŒãå¶éãµãŒãã¹ã倱æããå Žåã®æ®µéçãªæ©èœäœäžæŠç¥ãæ€èšããŸãã
- åçãªèšå®ïŒãµãŒãã¹ãäžæããããšãªãå¿ èŠã«å¿ããŠã¬ãŒãå¶éã倿Žã§ããããã«ãèšå®ãåçã«æŽæ°ã§ããããã«ããŸãã
äŸïŒRedisãšAPIã²ãŒããŠã§ã€ã«ããã¬ãŒãå¶éã®å®è£
ãã®äŸã§ã¯ãã¬ãŒãå¶éããŒã¿ãä¿åããããã«Redisã䜿çšããå¶éã匷å¶ããããã«APIã²ãŒããŠã§ã€ïŒKongãTykããŸãã¯AWSãAzureãGoogle Cloudãªã©ã®ã¯ã©ãŠããããã€ããŒã®API管çãµãŒãã¹ãªã©ïŒã䜿çšããç°¡ç¥åãããå®è£ ã®æŠèŠã説æããŸãã
- ã¯ã©ã€ã¢ã³ãèªèšŒïŒAPIã²ãŒããŠã§ã€ããªã¯ãšã¹ããåãåããAPIããŒãŸãã¯JWTã䜿çšããŠã¯ã©ã€ã¢ã³ããèªèšŒããŸãã
- ã¬ãŒãå¶éãã§ãã¯ïŒã²ãŒããŠã§ã€ã¯ã¯ã©ã€ã¢ã³ãã®IDïŒäŸïŒAPIããŒïŒãååŸãããã®ã¯ã©ã€ã¢ã³ããšç¹å®ã®APIãšã³ããã€ã³ãã®çŸåšã®ãªã¯ãšã¹ãæ°ãRedisã§ç¢ºèªããŸããRedisããŒã¯`rate_limit:api_key:{api_key}:endpoint:{endpoint}`ã®ããã«ãªããŸãã
- ã«ãŠã³ãã®ã€ã³ã¯ãªã¡ã³ãïŒãªã¯ãšã¹ãæ°ãå®çŸ©ãããå¶éãäžåã£ãŠããå Žåãã²ãŒããŠã§ã€ã¯Redisã®ã¢ãããã¯æäœïŒäŸïŒRedisã®`INCR`ããã³`EXPIRE`ã³ãã³ãïŒã䜿çšããŠã«ãŠã³ã¿ãŒãã€ã³ã¯ãªã¡ã³ãããŸãã
- èš±å¯ãŸãã¯æåŠïŒã€ã³ã¯ãªã¡ã³ããããã«ãŠã³ããå¶éãè¶ ããå Žåãã²ãŒããŠã§ã€ã¯`429 Too Many Requests`ãšã©ãŒã§ãªã¯ãšã¹ããæåŠããŸãããã以å€ã®å Žåããªã¯ãšã¹ãã¯ããã¯ãšã³ãAPIã«è»¢éãããŸãã
- ãšã©ãŒåŠçïŒã²ãŒããŠã§ã€ã¯ãã¯ã©ã€ã¢ã³ããå詊è¡ãããŸã§ã«åŸ æ©ãã¹ãæéã瀺ã`Retry-After`ããããŒãå«ãã圹ç«ã€ãšã©ãŒã¡ãã»ãŒãžãæäŸããŸãã
- Redisã®èšå®ïŒæ°žç¶æ§ãšé«å¯çšæ§ã®ããã«é©åãªèšå®ã§Redisãæ§æããŸãã
ãšã©ãŒã¡ãã»ãŒãžã®äŸïŒ
`HTTP/1.1 429 Too Many Requests` `Content-Type: application/json` `Retry-After: 60` `{"error": "ã¬ãŒãå¶éãè¶ ããŸããã60ç§åŸã«ããäžåºŠã詊ããã ããã"}`
ã¯ã©ãŠããããã€ããŒã®ãœãªã¥ãŒã·ã§ã³
AWSãAzureãGoogle Cloudãªã©ã®äž»èŠãªã¯ã©ãŠããããã€ããŒã¯ãã¬ãŒãå¶éæ©èœãå«ãçµã¿èŸŒã¿ã®API管çãµãŒãã¹ãæäŸããŠããŸãããããã®ãµãŒãã¹ã¯ããã°ãã°æ¬¡ã®ãããªããé«åºŠãªæ©èœãæäŸããŸãïŒ
- ã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ïŒã¬ãŒãå¶éãèšå®ããããã®äœ¿ããããã€ã³ã¿ãŒãã§ãŒã¹ã
- åæïŒAPIã®äœ¿çšç¶æ³ãšã¬ãŒãå¶éã«é¢ãã詳现ãªåæã
- çµ±åïŒä»ã®ã¯ã©ãŠããµãŒãã¹ãšã®ã·ãŒã ã¬ã¹ãªçµ±åã
- ã¹ã±ãŒã©ããªãã£ïŒéåžžã«ã¹ã±ãŒã©ãã«ã§ä¿¡é Œæ§ã®é«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã
- ããªã·ãŒåŒ·å¶ïŒæŽç·Žãããããªã·ãŒåŒ·å¶ãšã³ãžã³ã
äŸïŒ
- AWS API GatewayïŒäœ¿çšéãã©ã³ãšã¹ããããªã³ã°èšå®ã䜿çšããŠãã¬ãŒãå¶éã®çµã¿èŸŒã¿ãµããŒããæäŸããŸãã
- Azure API ManagementïŒAPIã«é©çšã§ããããŸããŸãªã¬ãŒãå¶éããªã·ãŒãæäŸããŸãã
- Google Cloud API GatewayïŒã¬ãŒãå¶éãšã¯ã©ãŒã¿ç®¡çæ©èœãæäŸããŸãã
çµè«
APIã¬ãŒãå¶éã¯ãå ç¢ã§ã¹ã±ãŒã©ãã«ãªAPIãæ§ç¯ããããã®éèŠãªåŽé¢ã§ããé©åãªã¬ãŒãå¶éæŠç¥ãå®è£ ããããšã§ãAPIãªãœãŒã¹ãä¿è·ããå ¬å¹³ãªå©çšã確ä¿ããAPIã€ã³ãã©ã¹ãã©ã¯ãã£å šäœã®å®å®æ§ãç¶æã§ããŸããé©åãªæŠç¥ã®éžæã¯ãç¹å®ã®èŠä»¶ãšå¶çŽã«äŸåããå®è£ ã®ãã¹ããã©ã¯ãã£ã¹ã«ã¯æ éãªèæ ®ãå¿ èŠã§ããã¯ã©ãŠããããã€ããŒã®ãœãªã¥ãŒã·ã§ã³ããµãŒãããŒãã£ã®API管çãã©ãããã©ãŒã ãæŽ»çšããããšã§ãå®è£ ãç°¡çŽ åããããé«åºŠãªæ©èœãæäŸã§ããŸãã
ããŸããŸãªã¬ãŒãå¶éã¢ã«ãŽãªãºã ãšå®è£ ã«é¢ããèæ ®äºé ãçè§£ããããšã§ã仿¥ã®çžäºæ¥ç¶ãããäžçã®èŠæ±ã«å¿ãããå埩åããããå®å šã§ãã¹ã±ãŒã©ãã«ãªAPIãæ§ç¯ã§ããŸããAPIãã©ãã£ãã¯ãç¶ç¶çã«ç£èŠã»åæããã¬ãŒãå¶éã調æŽããŠæé©ãªããã©ãŒãã³ã¹ã確ä¿ããããšãå¿ããªãã§ãã ãããé©åã«å®è£ ãããã¬ãŒãå¶éæŠç¥ã¯ãåªããéçºè ãšã¯ã¹ããªãšã³ã¹ãšå®å®ããã¢ããªã±ãŒã·ã§ã³ãšã³ã·ã¹ãã ã«å€§ããè²¢ç®ããŸãã