--- /dev/null
+# ãããã€ã¡ã³ãã®ã³ã³ã»ãã
+
+**FastAPI**ãçšããã¢ããªã±ãŒã·ã§ã³ããããã€ãããšãããããã¯ã©ã®ãããªã¿ã€ãã®Web APIã§ãã£ãŠããããããæ°ã«ãªãã³ã³ã»ãããããã€ããããŸãã
+
+ããããæŽ»çšããããšã§ã¢ããªã±ãŒã·ã§ã³ã**ãããã€ããããã®æé©ãªæ¹æ³**ãèŠã€ããããšãã§ããŸãã
+
+éèŠãªã³ã³ã»ããã®ããã€ãã玹ä»ããŸã:
+
+* ã»ãã¥ãªã㣠- HTTPS
+* èµ·åæã®å®è¡
+* åèµ·å
+* ã¬ããªã±ãŒã·ã§ã³ïŒå®è¡äžã®ããã»ã¹æ°ïŒ
+* ã¡ã¢ãªãŒ
+* éå§åã®äºåã®ã¹ããã
+
+ãããã**ãããã€ã¡ã³ã**ã«ã©ã®ãããªåœ±é¿ãäžããããèŠãŠãããŸãããã
+
+æçµçãªç®çã¯ã**å®å
šãªæ¹æ³ã§**APIã¯ã©ã€ã¢ã³ãã«**ãµãŒãã¹ãæäŸ**ãã**äžæãåé¿**ããã ãã§ãªãã**èšç®ãªãœãŒã¹**ïŒäŸãã°ãªã¢ãŒããµãŒããŒ/ä»®æ³ãã·ã³ïŒãå¯èœãªéãå¹ççã«äœ¿çšããããšã§ããð
+
+ãã®ç« ã§ã¯åè¿°ãã**ã³ã³ã»ãã**ã«ã€ããŠãããã説æããŸãã
+
+ãã®èª¬æãéããŠãæ®æ®µãšã¯éåžžã«ç°ãªãç°å¢ãååšããªãã§ããã**å°æ¥ã®**ç°å¢ã«å¯Ÿãããããã€ã®æ¹æ³ã決ããäžã§å¿
èŠãª**çŽæ**ãäžããŠãããããšãé¡ã£ãŠããŸãã
+
+ãããã®ã³ã³ã»ãããæèããããšã«ããã**ããªãèªèº«ã®API**ããããã€ããããã®æé©ãªæ¹æ³ã**è©äŸ¡**ãã**èšèš**ããããšãã§ããããã«ãªãã§ãããã
+
+次ã®ç« ã§ã¯ãFastAPIã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®**å
·äœçãªã¬ã·ã**ã玹ä»ããŸãã
+
+ããããä»ã¯ãããã®éèŠãª**ã³ã³ã»ããã«åºã¥ãã¢ã€ãã¢**ã確èªããŸãããããããã®ã³ã³ã»ããã¯ãä»ã®ã©ã®ã¿ã€ãã®Web APIã«ãåœãŠã¯ãŸããŸããð¡
+
+## ã»ãã¥ãªã㣠- HTTPS
+
+<!-- NOTE: https.md written in Japanese does not exist, so it redirects to English one -->
+[åãã£ãã¿ãŒã®HTTPSã«ã€ããŠ](./https.md){.internal-link target=_blank}ã§ã¯ãHTTPSãã©ã®ããã«APIãæå·åããã®ãã«ã€ããŠåŠã³ãŸããã
+
+éåžžãã¢ããªã±ãŒã·ã§ã³ãµãŒãã«ãšã£ãŠ**å€éšã®**ã³ã³ããŒãã³ãã§ãã**TLS Termination Proxy**ã«ãã£ãŠæäŸãããããšãäžè¬çã§ãããã®ãããã·ã¯éä¿¡ã®æå·åãæ
åœããŸãã
+
+ããã«ã»ãã¥ã¢ãªéä¿¡ã«ãããŠãHTTPSèšŒææžã®å®æçãªæŽæ°ãè¡ããŸãããããã¯TLS Termination Proxyãšåãã³ã³ããŒãã³ããæ
åœããããšãããã°ãå¥ã®ã³ã³ããŒãã³ããæ
åœããããšããããŸãã
+
+### HTTPS çšããŒã«ã®äŸ
+TLS Termination ProxyãšããŠäœ¿çšã§ããããŒã«ã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
+
+* Traefik
+ * èšŒææžã®æŽæ°ãèªåçã«åŠç âš
+* Caddy
+ * èšŒææžã®æŽæ°ãèªåçã«åŠç âš
+* Nginx
+ * èšŒææžæŽæ°ã®ããã«Certbotã®ãããªå€éšã³ã³ããŒãã³ãã䜿çš
+* HAProxy
+ * èšŒææžæŽæ°ã®ããã«Certbotã®ãããªå€éšã³ã³ããŒãã³ãã䜿çš
+* Nginx ã®ãã㪠Ingress Controller ãæã€ Kubernetes
+ * èšŒææžã®æŽæ°ã« cert-manager ã®ãããªå€éšã³ã³ããŒãã³ãã䜿çš
+* ã¯ã©ãŠãã»ãããã€ããŒããµãŒãã¹ã®äžéšãšããŠå
éšçã«åŠçïŒäžèšãåç
§ðïŒ
+
+ãã1ã€ã®éžæè¢ã¯ãHTTPSã®ã»ããã¢ãããå«ãã ããå€ãã®äœæ¥ãè¡ã**ã¯ã©ãŠãã»ãµãŒãã¹**ãå©çšããããšã§ãã ãã®ãµãŒãã¹ã«ã¯å¶éããã£ãããæéãé«ããªã£ããããå¯èœæ§ããããŸããããããã®å ŽåãTLS Termination Proxyãèªåã§ã»ããã¢ããããå¿
èŠã¯ãªãã§ãã
+
+次ã®ç« ã§å
·äœäŸãããã€ã玹ä»ããŸãã
+
+---
+
+次ã«èæ
®ãã¹ãã³ã³ã»ããã¯ãå®éã®APIãå®è¡ããããã°ã©ã ïŒäŸïŒUvicornïŒã«é¢é£ãããã®ãã¹ãŠã§ãã
+
+## ããã°ã©ã ãš ããã»ã¹
+
+ç§ãã¡ã¯ã**ããã»ã¹**ããšããèšèã«ã€ããŠãããã話ãã®ã§ããã®æå³ãã**ããã°ã©ã **ããšããèšèãšã®éããæç¢ºã«ããŠãããšäŸ¿å©ã§ãã
+
+### ããã°ã©ã ãšã¯äœã
+
+**ããã°ã©ã **ãšããèšèã¯ãäžè¬çã«ãããããªãã®ã衚çŸããã®ã«äœ¿ãããŸãïŒ
+
+* ããã°ã©ããæžã**ã³ãŒã**ã**Pythonãã¡ã€ã«**
+* OSã«ãã£ãŠå®è¡ããããšãã§ãããã¡ã€ã«ïŒäŸ: `python`, `python.exe` or `uvicorn`ïŒ
+* OSäžã§**å®è¡**ããŠããéãCPUã䜿çšããã¡ã¢ãªäžã«äœããä¿åããç¹å®ã®ããã°ã©ã ïŒ**ããã»ã¹**ãšãåŒã°ããïŒ
+
+### ããã»ã¹ãšã¯äœã
+
+**ããã»ã¹**ãšããèšèã¯éåžžãããå
·äœçãªæå³ã§äœ¿ãããOSã§å®è¡ãããŠãããã®ã ããæããŸãïŒå
ã»ã©ã®æåŸã®èª¬æã®ããã«ïŒïŒ
+
+* OSäžã§**å®è¡**ããŠããç¹å®ã®ããã°ã©ã
+ * ããã¯ãã¡ã€ã«ãã³ãŒããæãã®ã§ã¯ãªããOSã«ãã£ãŠ**å®è¡**ããã管çãããŠãããã®ãæããŸãã
+* ã©ããªããã°ã©ã ãã³ãŒãããããã**å®è¡ãããŠãããšãã«ã ãæ©èœ**ããŸããã€ãŸãã**ããã»ã¹ãšããŠå®è¡ãããŠãããšãã ã**ã§ãã
+* ããã»ã¹ã¯ããŠãŒã¶ãŒã«ãããã¯OSã«ãã£ãŠã **çµäº**ïŒããã㯠"kill"ïŒãããããšãã§ããŸãããã®æç¹ã§ãããã»ã¹ã¯å®è¡/å®è¡ãããããšã忢ãããã以éã¯**äœãã§ããªããªããŸã**ã
+* ã³ã³ãã¥ãŒã¿ã§å®è¡ãããŠããåã¢ããªã±ãŒã·ã§ã³ã¯ãå®è¡äžã®ããã°ã©ã ãåãŠã£ã³ããŠãªã©ããã®èåŸã«ããã€ãã®ããã»ã¹ãæã£ãŠããŸãããããŠéåžžãã³ã³ãã¥ãŒã¿ãèµ·åããŠããéã**å€ãã®ããã»ã¹ã**åæã«å®è¡ãããŠããŸãã
+* **åãããã°ã©ã **ã®**è€æ°ã®ããã»ã¹**ãåæã«å®è¡ãããŠããããšããããŸãã
+
+OSã®ãã¿ã¹ã¯ã»ãããŒãžã£ãŒãããã·ã¹ãã ã»ã¢ãã¿ãŒãïŒãŸãã¯åæ§ã®ããŒã«ïŒã確èªããã°ããããã®ããã»ã¹ã®å€ããå®è¡ãããŠããã®èŠãããšãã§ããã§ãããã
+
+äŸãã°ãåããã©ãŠã¶ããã°ã©ã ïŒFirefoxãChromeãEdgeãªã©ïŒãå®è¡ããŠããããã»ã¹ãè€æ°ããããšãããããŸããéåžžã1ã€ã®ã¿ãã«ã€ã1ã€ã®ããã»ã¹ãå®è¡ãããããã«ä»ã®ããã»ã¹ãå®è¡ãããŸãã
+
+<img class="shadow" src="/img/deployment/concepts/image01.png">
+
+---
+
+ããŠã**ããã»ã¹**ãš**ããã°ã©ã **ãšããçšèªã®éãã確èªãããšããã§ããããã€ã¡ã³ãã«ã€ããŠè©±ãç¶ããŸãã
+
+## èµ·åæã®å®è¡
+
+ã»ãšãã©ã®å ŽåãWeb APIãäœæãããšãã¯ãã¯ã©ã€ã¢ã³ãããã€ã§ãã¢ã¯ã»ã¹ã§ããããã«ã**åžžã«**äžæãããããšãªã**å®è¡ããã**ããšãæã¿ãŸãããã¡ãããç¹å®ã®ç¶æ³ã§ã®ã¿å®è¡ããããç¹å¥ãªçç±ãããå Žåã¯å¥ã§ããããã®æéã®ã»ãšãã©ã¯ãåžžã«å®è¡ããã**å©çšå¯èœ**ã§ããããšãæã¿ãŸãã
+
+### ãªã¢ãŒããµãŒããŒäžã§ã®å®è¡
+
+ãªã¢ãŒããµãŒããŒïŒã¯ã©ãŠããµãŒããŒãä»®æ³ãã·ã³ãªã©ïŒãã»ããã¢ãããããšãã«ã§ããæãç°¡åãªããšã¯ãããŒã«ã«ã§éçºãããšããšåãããã«ãUvicornïŒãŸãã¯åæ§ã®ãã®ïŒãæåã§å®è¡ããããšã§ãã ãã®æ¹æ³ã¯**éçºäž**ã«ã¯åœ¹ã«ç«ã€ãšæãããŸãã
+
+ãããããµãŒããŒãžã®æ¥ç¶ãåããå Žåã**å®è¡äžã®ããã»ã¹**ã¯ããããããŠã³ããŠããŸãã§ãããã
+
+ãããŠãµãŒããŒãåèµ·åãããå ŽåïŒã¢ããããŒããã¯ã©ãŠããããã€ããŒããã®ãã€ã°ã¬ãŒã·ã§ã³ã®åŸãªã©ïŒãããããããªãã¯ããã«**æ°ã¥ããªãã§ããã**ããã®ãããããã»ã¹ãæåã§åèµ·åããªããã°ãªããªãããšããæ°ã¥ããªãã§ããããã€ãŸããAPIã¯ããŠã³ãããŸãŸãªã®ã§ããð±
+
+### èµ·åæã«èªåçã«å®è¡
+
+äžè¬çã«ããµãŒããŒããã°ã©ã ïŒUvicornãªã©ïŒã¯ãµãŒããŒèµ·åæã«èªåçã«éå§ããã**人ã®ä»å
¥**ãå¿
èŠãšããã«ãAPIãšäžç·ã«ããã»ã¹ãåžžã«å®è¡ãããããã«ããããšæãããŸãïŒUvicornãFastAPIã¢ããªãå®è¡ãããªã©ïŒã
+
+### å¥ã®ããã°ã©ã ã®çšæ
+
+ãããå®çŸããããã«ãéåžžã¯**å¥ã®ããã°ã©ã **ãçšæããèµ·åæã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããããã«ããŸãããããŠå€ãã®å Žåãä»ã®ã³ã³ããŒãã³ããã¢ããªã±ãŒã·ã§ã³ãäŸãã°ããŒã¿ããŒã¹ãå®è¡ãããããã«ããŸãã
+
+### èµ·åæã«å®è¡ããããŒã«ã®äŸ
+
+å®è¡ããããŒã«ã®äŸãããã€ãæããŸã:
+
+* Docker
+* Kubernetes
+* Docker Compose
+* Swarm ã¢ãŒãã«ãã Docker
+* Systemd
+* Supervisor
+* ã¯ã©ãŠããããã€ããŒããµãŒãã¹ã®äžéšãšããŠå
éšçã«åŠç
+* ãã®ã»ã...
+
+次ã®ç« ã§ãããå
·äœçãªäŸãæããŠãããŸãã
+
+## åèµ·å
+
+èµ·åæã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããããšã確èªããã®ãšåæ§ã«ã倱æåŸã«ã¢ããªã±ãŒã·ã§ã³ã**åèµ·å**ãããããšã確èªããããšæãããŸãã
+
+### æã
ã¯ééããç¯ã
+
+ç§ãã¡äººéã¯åžžã«**ééã**ãç¯ããŸãããœãããŠã§ã¢ã«ã¯ãã»ãšãã©åžžã«**ãã°**ãããããç®æã«é ãããŠããŸããð
+
+### å°ããªãšã©ãŒã¯èªåçã«åŠçããã
+
+FastAPIã§Web APIãæ§ç¯ããéã«ãã³ãŒãã«ãšã©ãŒãããå ŽåãFastAPIã¯éåžžããšã©ãŒãåŒãèµ·ãããåäžã®ãªã¯ãšã¹ãã«ãšã©ãŒãå«ããŸããð¡
+
+ã¯ã©ã€ã¢ã³ãã¯ãã®ãªã¯ãšã¹ãã«å¯ŸããŠ**500 Internal Server Error**ãåãåããŸãããã¢ããªã±ãŒã·ã§ã³ã¯å®å
šã«ã¯ã©ãã·ã¥ããã®ã§ã¯ãªããæ¬¡ã®ãªã¯ãšã¹ãã®ããã«åäœãç¶ããŸãã
+
+### é倧ãªãšã©ãŒ - ã¯ã©ãã·ã¥
+
+ããããªããã**ã¢ããªã±ãŒã·ã§ã³å
šäœãã¯ã©ãã·ã¥ããããããªã³ãŒããæžããŠ**UvicornãšPythonãã¯ã©ãã·ã¥ããããããªã±ãŒã¹ããããããããŸãããð¥
+
+ããã§ããããç®æã§ãšã©ãŒãçºçãããããšãã£ãŠãã¢ããªã±ãŒã·ã§ã³ã忢ããããŸãŸã«ããããªãã§ãããã å°ãªããšãå£ããŠããªã*ãã¹ãªãã¬ãŒã·ã§ã³*ã«ã€ããŠã¯ã**å®è¡ãç¶ããã**ã¯ãã§ãã
+
+### ã¯ã©ãã·ã¥åŸã®åèµ·å
+
+ããããå®è¡äžã®**ããã»ã¹**ãã¯ã©ãã·ã¥ããããããªæ¬åœã«ã²ã©ããšã©ãŒã®å Žåãå°ãªããšã2ã3åã»ã©ããã»ã¹ã**åèµ·å**ãããå€éšã³ã³ããŒãã³ããå¿
èŠã§ãããã
+
+!!! tip
+ ...ãšã¯ãããã¢ããªã±ãŒã·ã§ã³å
šäœã**ããã«ã¯ã©ãã·ã¥ãã**ã®ã§ããã°ããã€ãŸã§ãåèµ·åãç¶ããã®ã¯æå³ããªãã§ãããããããããã®å Žåã¯ããããéçºäžãå°ãªããšããããã€çŽåŸã«æ°ã¥ããšæãããŸãã
+
+ ããã§ã**å°æ¥**ã¯ã©ãã·ã¥ããå¯èœæ§ããããããã§ãåã¹ã¿ãŒããããããšã«æå³ããããããªãäž»ãªã±ãŒã¹ã«çŠç¹ãåœãŠãŠã¿ãŸãã
+
+ããªãã¯ãããã**å€éšã³ã³ããŒãã³ã**ãã¢ããªã±ãŒã·ã§ã³ã®åèµ·åãæ
åœããããšãæããšèããŸãã ãªããªãããã®æç¹ã§UvicornãšPythonã䜿ã£ãåãã¢ããªã±ãŒã·ã§ã³ã¯ãã§ã«ã¯ã©ãã·ã¥ããŠãããåãã¢ããªã±ãŒã·ã§ã³ã®åãã³ãŒãã«å¯ŸããŠäœãã§ããªãããã§ãã
+
+### èªåçã«åèµ·åããããŒã«ã®äŸ
+
+ã»ãšãã©ã®å Žåãåè¿°ãã**èµ·åæã«ããã°ã©ã ãå®è¡ãã**ããã«äœ¿çšãããããŒã«ã¯ãèªåã§**åèµ·å**ããããšã«ãå©çšãããŸãã
+
+äŸãã°ã次ã®ãããªãã®ããããŸãïŒ
+
+* Docker
+* Kubernetes
+* Docker Compose
+* Swarm ã¢ãŒãã«ãã Docker
+* Systemd
+* Supervisor
+* ã¯ã©ãŠããããã€ããŒããµãŒãã¹ã®äžéšãšããŠå
éšçã«åŠç
+* ãã®ã»ã...
+
+## ã¬ããªã±ãŒã·ã§ã³ - ããã»ã¹ãšã¡ã¢ãªãŒ
+
+FastAPI ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãUvicorn ã®ãããªãµãŒããŒããã°ã©ã ã䜿çšãã**1ã€ã®ããã»ã¹**ã§1床ã«è€æ°ã®ã¯ã©ã€ã¢ã³ãã«åæã«å¯Ÿå¿ã§ããŸãã
+
+ããããå€ãã®å Žåãè€æ°ã®ã¯ãŒã«ãŒã»ããã»ã¹ãåæã«å®è¡ããããšèããã§ãããã
+
+### è€æ°ã®ããã»ã¹ - Worker
+
+ã¯ã©ã€ã¢ã³ãã®æ°ãåäžã®ããã»ã¹ã§åŠçã§ããæ°ãè¶
ããŠããïŒããšãã°ä»®æ³ãã·ã³ãããã»ã©å€§ãããªãå ŽåïŒããã€ãµãŒããŒã® CPU ã«**è€æ°ã®ã³ã¢**ãããå Žåãåãã¢ããªã±ãŒã·ã§ã³ã§åæã«**è€æ°ã®ããã»ã¹**ãå®è¡ããããã¹ãŠã®ãªã¯ãšã¹ãã忣ãããããšãã§ããŸãã
+
+åãAPIããã°ã©ã ã®**è€æ°ã®ããã»ã¹**ãå®è¡ããå Žåããããã¯äžè¬çã«**WorkerïŒã¯ãŒã«ãŒ**ãšåŒã°ããŸãã
+
+### ã¯ãŒã«ãŒã»ããã»ã¹ ãš ããŒã
+<!-- NOTE: https.md written in Japanese does not exist, so it redirects to English one -->
+
+[HTTPSã«ã€ããŠ](./https.md){.internal-link target=_blank}ã®ããã¥ã¡ã³ãã§ã1ã€ã®ãµãŒããŒã§1ã€ã®ããŒããšIPã¢ãã¬ã¹ã®çµã¿åããã§ãªãã¹ã³ã§ããã®ã¯1ã€ã®ããã»ã¹ã ãã§ããããšãèŠããŠããŸãã§ããããïŒ
+
+ããã¯ããŸã ã«åãã§ãã
+
+ãã®ããã**è€æ°ã®ããã»ã¹**ãåæã«æã€ã«ã¯**ããŒãã§ãªãã¹ã³ããŠããåäžã®ããã»ã¹**ãå¿
èŠã§ããããããäœããã®æ¹æ³ã§åã¯ãŒã«ãŒã»ããã»ã¹ã«éä¿¡ãéä¿¡ããããšãæ±ããããŸãã
+
+### ããã»ã¹ãããã®ã¡ã¢ãªãŒ
+
+ããŠãããã°ã©ã ãã¡ã¢ãªã«ããŒãããéã«ã¯ãäŸãã°æ©æ¢°åŠç¿ã¢ãã«ã倧ããªãã¡ã€ã«ã®å
容ã倿°ã«å
¥ãããããå Žåã§ã¯ã**ãµãŒããŒã®ã¡ã¢ãªïŒRAMïŒ**ãå°ãæ¶è²»ããŸãã
+
+ãããŠè€æ°ã®ããã»ã¹ã¯éåžžã**ã¡ã¢ãªãå
±æããŸãã**ãããã¯ãå®è¡äžã®åããã»ã¹ãããããç¬èªã®å€æ°ãã¡ã¢ãªçãæã£ãŠããããšãæå³ããŸããã€ãŸããã³ãŒãå
ã§å€§éã®ã¡ã¢ãªãæ¶è²»ããŠããå Žåã**åããã»ã¹**ã¯åçã®éã®ã¡ã¢ãªãæ¶è²»ããããšã«ãªããŸãã
+
+### ãµãŒããŒã¡ã¢ãªãŒ
+
+äŸãã°ãããªãã®ã³ãŒãã **1GBã®ãµã€ãºã®æ©æ¢°åŠç¿ã¢ãã«**ãããŒãããå ŽåãAPIã§1ã€ã®ããã»ã¹ãå®è¡ãããšãå°ãªããšã1GBã®RAMãæ¶è²»ããŸãã
+
+ãŸãã**4ã€ã®ããã»ã¹**ïŒ4ã€ã®ã¯ãŒã«ãŒïŒãèµ·åãããšãããããã1GBã®RAMãæ¶è²»ããŸããã€ãŸããåèšã§APIã¯**4GBã®RAM**ãæ¶è²»ããããšã«ãªããŸãã
+
+ãªã¢ãŒããµãŒããŒãä»®æ³ãã·ã³ã®RAMã3GBãããªãå Žåã4GB以äžã®RAMãããŒãããããšãããšåé¡ãçºçããŸããðš
+
+### è€æ°ããã»ã¹ - äŸ
+
+ãã®äŸã§ã¯ã2ã€ã®**ã¯ãŒã«ãŒã»ããã»ã¹**ãèµ·åãå¶åŸ¡ãã**ãããŒãžã£ãŒã» ããã»ã¹**ããããŸãã
+
+ãã®ãããŒãžã£ãŒã» ããã»ã¹ã¯ãããããIPã®**ããŒã**ã§ãªãã¹ã³ããŠãããã®ã§ãããããŠããã¹ãŠã®éä¿¡ãã¯ãŒã«ãŒã»ããã»ã¹ã«è»¢éããŸãã
+
+ãããã®ã¯ãŒã«ãŒã»ããã»ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã®ã§ããã**ãªã¯ãšã¹ã**ãåããŠ**ã¬ã¹ãã³ã¹**ãè¿ãããã®äž»èŠãªèšç®ãè¡ããããªãã倿°ã«å
¥ãããã®ã¯äœã§ãRAMã«ããŒãããŸãã
+
+<img src="/img/deployment/concepts/process-ram.svg">
+
+ãããŠãã¡ãããåããã·ã³ã§ã¯ãããªãã®ã¢ããªã±ãŒã·ã§ã³ãšã¯å¥ã«ã**ä»ã®ããã»ã¹**ãå®è¡ãããŠããã§ãããã
+
+è峿·±ãããšã«ãåããã»ã¹ã䜿çšãã**CPU**ã®å²åã¯æéãšãšãã«å€§ãã**å€å**ããå¯èœæ§ããããŸããã**ã¡ã¢ãªïŒRAMïŒ**ã¯éåžžãå€ããå°ãªãã**å®å®**ããŸãã
+
+æ¯ååçšåºŠã®èšç®ãè¡ãAPIããããå€ãã®ã¯ã©ã€ã¢ã³ããããã®ã§ããã°ã**CPU䜿çšç**ããããã**å®å®**ããã§ãããïŒåžžã«æ¥æ¿ã«äžäžããã®ã§ã¯ãªãïŒã
+
+### ã¬ããªã±ãŒã·ã§ã³ã»ããŒã«ãšæŠç¥ã®äŸ
+
+ãããå®çŸããã«ã¯ããã€ãã®ã¢ãããŒãããããŸãããå
·äœçãªæŠç¥ã«ã€ããŠã¯æ¬¡ã®ç« (Dockerãã³ã³ããã®ç« ãªã©)ã§è©³ãã説æããŸãã
+
+èæ
®ãã¹ãäž»ãªå¶çŽã¯ã**ãããªãã¯IP**ã®**ããŒã**ãåŠçãã**åäžã®**ã³ã³ããŒãã³ããååšããªããã°ãªããªããšããããšã§ãã
+
+ãããŠãã¬ããªã±ãŒãããã**ããã»ã¹/ã¯ãŒã«ãŒ**ã«éä¿¡ã**éä¿¡**ããæ¹æ³ãæã€å¿
èŠããããŸãã
+
+èããããçµã¿åãããšæŠç¥ãããã€ã玹ä»ããŸãïŒ
+
+* **Gunicorn**ã**Uvicornã¯ãŒã«ãŒ**ã管ç
+ * Gunicornã¯**IP**ãš**ããŒã**ããªãã¹ã³ãã**ããã»ã¹ãããŒãžã£**ã§ãã¬ããªã±ãŒã·ã§ã³ã¯**è€æ°ã®Uvicornã¯ãŒã«ãŒã»ããã»ã¹**ãæã€ããšã«ãã£ãŠè¡ãããã
+* **Uvicorn**ã**Uvicornã¯ãŒã«ãŒ**ã管ç
+ * 1ã€ã®Uvicornã®**ããã»ã¹ãããŒãžã£ãŒ**ã**IP**ãš**ããŒã**ããªãã¹ã³ãã**è€æ°ã®Uvicornã¯ãŒã«ãŒã»ããã»ã¹**ãèµ·åããã
+* **Kubernetes**ããã®ä»ã®åæ£**ã³ã³ããã»ã·ã¹ãã **
+ * **Kubernetes**ã¬ã€ã€ãŒã®äœãã**IP**ãš**ããŒã**ããªãã¹ã³ãããã¬ããªã±ãŒã·ã§ã³ã¯ã**è€æ°ã®ã³ã³ãã**ã«ãããã**1ã€ã®Uvicornããã»ã¹**ãå®è¡ãããããšã§è¡ãããã
+* **ã¯ã©ãŠãã»ãµãŒãã¹**ã«ããã¬ããªã±ãŒã·ã§ã³
+ * ã¯ã©ãŠãã»ãµãŒãã¹ã¯ãããã**ããªãã®ããã«ã¬ããªã±ãŒã·ã§ã³ãåŠç**ããŸãã**å®è¡ããããã»ã¹**ã䜿çšãã**ã³ã³ããã€ã¡ãŒãž**ãå®çŸ©ã§ãããããããŸãããããããã«ãããããã¯ãããã**åäžã®Uvicornããã»ã¹**ã§ãããã¯ã©ãŠããµãŒãã¹ã¯ãã®ã¬ããªã±ãŒã·ã§ã³ãæ
åœããã§ãããã
+
+!!! tip
+ ãããã®**ã³ã³ãã**ãDockerãããŠKubernetesã«é¢ããé
ç®ãããŸã ããŸãæå³ããªããŠããªããŠãå¿é
ããªãã§ãã ããã
+ <!-- NOTE: the current version of docker.md is outdated compared to English one. -->
+
+ ã³ã³ããã»ã€ã¡ãŒãžãDockerãKubernetesãªã©ã«ã€ããŠã¯ã次ã®ç« ã§è©³ãã説æããŸã: [ã³ã³ããå
ã®FastAPI - Docker](./docker.md){.internal-link target=_blank}.
+
+## éå§åã®äºåã®ã¹ããã
+
+ã¢ããªã±ãŒã·ã§ã³ã**éå§ããå**ã«ãããã€ãã®ã¹ããããå®è¡ãããå Žåãå€ããããŸãã
+
+äŸãã°ã**ããŒã¿ããŒã¹ã»ãã€ã°ã¬ãŒã·ã§ã³** ãå®è¡ããããããããŸããã
+
+ãããã»ãšãã©ã®å Žåããããã®æé ã**1床**ã«å®è¡ããããšèããã§ãããã
+
+ãã®ãããã¢ããªã±ãŒã·ã§ã³ãéå§ããåã®**äºåã®ã¹ããã**ãå®è¡ãã**åäžã®ããã»ã¹**ãçšæããããšæãããŸãã
+
+ãããŠããããã®äºåã®ã¹ããããå®è¡ããŠããã®ãåäžã®ããã»ã¹ã§ããããšã確èªããå¿
èŠããããŸãããã®ããšã¯ãã®åŸã¢ããªã±ãŒã·ã§ã³èªäœã®ããã«**è€æ°ã®ããã»ã¹**ïŒè€æ°ã®ã¯ãŒã«ãŒïŒãèµ·åããå Žåãåæ§ã§ãã
+
+ãããã®ã¹ãããã**è€æ°ã®ããã»ã¹**ã«ãã£ãŠå®è¡ãããå Žåã**䞊å**ã«å®è¡ãããããšã«ãã£ãŠäœæ¥ã**éè€**ããããšã«ãªããŸãããããŠããããã®ã¹ããããããŒã¿ããŒã¹ã®ãã€ã°ã¬ãŒã·ã§ã³ã®ãããªç¹çްãªãã®ã§ãã£ãå Žåãäºãã«ç«¶åãåŒãèµ·ããå¯èœæ§ããããŸãã
+
+ãã¡ãããäºåã®ã¹ããããäœåºŠãå®è¡ããŠãåé¡ããªãå Žåãããããã®éã¯å¯ŸåŠãããªã楜ã«ãªããŸãã
+
+!!! tip
+ ãŸããã»ããã¢ããã«ãã£ãŠã¯ãã¢ããªã±ãŒã·ã§ã³ãéå§ããåã®**äºåã®ã¹ããã**ãå¿
èŠãªãå ŽåãããããšãèŠããŠãããŠãã ããã
+
+ ãã®å Žåã¯ããã®ãããªããšãå¿é
ããå¿
èŠã¯ãªãã§ããð€·
+
+### äºåã¹ãããã®æŠç¥äŸ
+
+ããã¯**ã·ã¹ãã ã**ãããã€ããæ¹æ³ã«**倧ããäŸå**ããã ããããããããããã°ã©ã ã®èµ·åæ¹æ³ãåèµ·åã®åŠçãªã©ã«ãé¢ä¿ããŠããã§ãããã
+
+èããããã¢ã€ãã¢ãããã€ãæããŠã¿ãŸãïŒ
+
+* ã¢ããªã³ã³ããã®åã«å®è¡ãããKubernetesã®Initã³ã³ãã
+* äºåã®ã¹ããããå®è¡ããã¢ããªã±ãŒã·ã§ã³ãèµ·åããbashã¹ã¯ãªãã
+ * å©çšããbashã¹ã¯ãªãããèµ·åïŒåèµ·åãããããšã©ãŒãæ€åºãããããæ¹æ³ã¯ä»¥åãšããŠå¿
èŠã«ãªãã§ãããã
+
+!!! tip
+ <!-- NOTE: the current version of docker.md is outdated compared to English one. -->
+ ã³ã³ããã䜿ã£ãå
·äœçãªäŸã«ã€ããŠã¯ã次ã®ç« ã§ç޹ä»ããŸã: [ã³ã³ããå
ã®FastAPI - Docker](./docker.md){.internal-link target=_blank}.
+
+## ãªãœãŒã¹ã®å©çš
+
+ããªãã®ãµãŒããŒã¯**ãªãœãŒã¹**ã§ãããããã°ã©ã ãå®è¡ãCPUã®èšç®æéãå©çšå¯èœãªRAMã¡ã¢ãªãæ¶è²»ãŸãã¯**å©çš**ããããšãã§ããŸãã
+
+ã·ã¹ãã ãªãœãŒã¹ãã©ããããæ¶è²»ïŒå©çšãããã§ããïŒ ãå°ãªãæ¹ãè¯ãããšèããã®ã¯ç°¡åãããããªãã§ãããå®éã«ã¯ã**ã¯ã©ãã·ã¥ããã«å¯èœãªéã**æå€§éã«æŽ»çšãããã§ãããã
+
+3å°ã®ãµãŒããŒã«ãéãæã£ãŠããã«ãé¢ãããããã®RAMãšCPUãå°ããã䜿ã£ãŠããªããšãããããããã**ãéãç¡é§ã«ããŠãã** ðžããããã**ãµãŒããŒã®é»åãç¡é§ã«ããŠãã** ðããšã«ãªãã§ãããã
+
+ãã®å Žåã¯ããµãŒããŒã2å°ã ãã«ããŠããã®ãªãœãŒã¹ïŒCPUãã¡ã¢ãªããã£ã¹ã¯ããããã¯ãŒã¯åž¯åå¹
ãªã©ïŒãããé«ãå²åã§äœ¿çšããæ¹ãããã§ãããã
+
+äžæ¹ã2å°ã®ãµãŒããŒãããããã®CPUãšRAMã®**100%ã䜿çšããŠãã**å Žåãããæç¹ã§1ã€ã®ããã»ã¹ãããå€ãã®ã¡ã¢ãªãèŠæ±ãããµãŒããŒã¯ãã£ã¹ã¯ããã¡ã¢ãªããšããŠäœ¿çšããªããšãããŸãããïŒäœååãé
ããªãå¯èœæ§ããããŸããïŒ
+ãããã¯**ã¯ã©ãã·ã¥**ããããšãããã°ããããã¯ããããã»ã¹ãäœããã®èšç®ãããå¿
èŠãããããããŠCPUãåã³ç©ºããŸã§åŸ
ããªããã°ãªããªããããããŸããã
+
+ãã®å Žåã**1ã€äœåãªãµãŒããŒ**ãçšæãããã®äžã§ããã€ãã®ããã»ã¹ãå®è¡ãããã¹ãŠã®ãµãŒããŒã**ååãªRAMãšCPUæéãæã€ããã«ãã**ã®ãããã§ãããã
+
+ãŸããäœããã®çç±ã§APIã®å©çšãæ¥å¢ããå¯èœæ§ããããŸãããããããããããæµè¡ã£ãã®ãããããªãããä»ã®ãµãŒãã¹ããããã䜿ãå§ããã®ãããããªãã§ãããã®ãããªå Žåã«åããŠãäœåãªãªãœãŒã¹ãçšæããŠãããšå®å¿ã§ãããã
+
+äŸãã°ããªãœãŒã¹äœ¿çšçã®**50%ãã90%ã®ç¯å²**ã§**ä»»æã®æ°å**ãã¿ãŒã²ãããšããããšãã§ããŸãã
+
+éèŠãªã®ã¯ããããã€ã¡ã³ãã埮調æŽããããã«ã¿ãŒã²ãããèšå®ã枬å®ããããšãããããã䜿çšãããäž»èŠãªèŠçŽ ã§ããããšã§ãã
+
+`htop`ã®ãããªåçŽãªããŒã«ã䜿ã£ãŠããµãŒããŒã§äœ¿çšãããŠããCPUãRAMããããã¯åããã»ã¹ã§äœ¿çšãããŠããéãèŠãããšãã§ããŸãããããã¯ãããè€éãªç£èŠããŒã«ã䜿ã£ãŠããµãŒãã«åæ£ããŠäœ¿çšããããšãã§ããŸãã
+
+## ãŸãšã
+
+ã¢ããªã±ãŒã·ã§ã³ã®ãããã€æ¹æ³ã決å®ããéã«ãèæ
®ãã¹ãã§ãããäž»èŠãªã³ã³ã»ããã®ããã€ãã玹ä»ããŠãããŸããïŒ
+
+* ã»ãã¥ãªã㣠- HTTPS
+* èµ·åæã®å®è¡
+* åèµ·å
+* ã¬ããªã±ãŒã·ã§ã³ïŒå®è¡äžã®ããã»ã¹æ°ïŒ
+* ã¡ã¢ãªãŒ
+* éå§åã®äºåã¹ããã
+
+ãããã®èãæ¹ãšãã®é©ç𿹿³ãçè§£ããããšã§ããããã€ã¡ã³ããèšå®ããã調æŽãããããéã«å¿
èŠãªçŽæçãªå€æãã§ããããã«ãªãã¯ãã§ããð€
+
+次ã®ã»ã¯ã·ã§ã³ã§ã¯ãããªããåãåŸãæŠç¥ã«ã€ããŠãããå
·äœçãªäŸãæããŸããð