ç§ã¯ããŸããŸãªãµã€ããããžã§ã¯ããå§ããã®ã倧奜ãã§ããããã¯ãæ°ãããŠæ¬åœã«äŸ¡å€ã®ããããšãåŠã¶ããã®æè¯ã®æ¹æ³ã®1ã€ã ãšæããŸãããããŠãç§ã«ã¯1ã€ã®éå€§ãªæ¬ é¥ããããŸã-ç§ã¯ã»ãšãã©ç©äºãæãéããããšããããŸããããã¡ãããããã¯ç§ãéçšäž»ã«ãã£ãŠèšå®ãããççŽãã¿ã¹ã¯ãäžããããç ç©¶ãããžã§ã¯ãã«é¢ãããã®ã§ã¯ãããŸãããç§ã¯ãçµ¶ãéãªãä»äºãå匷ã®å€ã§ç§ãç §ãããŠããèªåã®èãã«ã€ããŠè©±ããŠãããéèŠããããšæããããŸã£ããæ°ããã¹ãã«ãç¿åŸãããã³ã«ããã®ãããªããšãåŠã¶èŠèŸŒã¿ããªãã®ã§ããããžã§ã¯ãã®ããšãå¿ããŠããŸããŸãããããä»åãç§ã¯èªåèªèº«ãæ¹åããããšã«æ±ºããŸãã-ãããžã§ã¯ããéå§ãããããå®äºããç§ããã©ã£ãéã«ã€ããŠè©±ããŸãã
ç§èªèº«ã«ã€ããŠå°ã
ç§ã¯å°éæè²ãæ°åŠã®åŠå£«å·ãITã®ä¿®å£«å·ãæã£ãŠããŸããé©ããããšã«ãç§ã倧åŠã§ç¿åŸããå€ãã®ããšãç¹ã«ä¿®å£«å·ã¯ç§ã«ãšã£ãŠåœ¹ã«ç«ã¡ãŸããããããã«ãããç§ã¯å¿
èŠãªæ
å ±ãçç£çã«åžåãããã®åéã§èªåèªèº«ãããŸã瀺ããä»äºãèŠã€ãããããŠç§ã®ãã£ãªã¢ãåé²ãããããã«ãç§ã®è³ãæ£ããæ¹åã«èª¿æŽããããšãã§ããŸããã
å匷ããŠããéãç§ã¯C ++ãã¡ã³ã§ã²ãŒã éçºè
ã§ãããããããç§ã¯èªäœã®ãšã³ãžã³ãéçºããããã«ã²ãŒã ãæžããŠã¿ãŸãããç§ã¯Cã§åæ¥èšŒæžãæã£ãŠããŠãèšç®ã§ã®ã°ã©ãã£ãã¯ããã»ããµã®äœ¿çšã«é¢é£ããŠããŸãããããããç§ã¯JavaãšAndroidã®éçºã«èå³ãæã¡ãŸããã圌ã¯ãã®èšèªã§ããã€ãã®æè²ãããžã§ã¯ããå®äºãããã®åŸãåŠçãããžã§ã¯ãã®äžç°ãšããŠãåœéäŒæ¥ã®æ¯æŽãåããŠãããã°ã©ã ã®ããã©ãŒãã³ã¹ãåæããããã®ã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ãäœæããŸãããããããã¹ãŠããããã©ãŒãã³ã¹ã®èгç¹ããæºåž¯é»è©±ããã¹ãããä»ã®æºåž¯é»è©±ãšæ¯èŒããæ©èœãåããAndroidã¢ããªã±ãŒã·ã§ã³ã«æé·ããŸããã
ãã€ãœã³ã®äžçãéè¿ã«è¿«ã£ãŠããŸãããæå€ãªããšã«ã芪åã®ææ¡ã§ããŒã¿ãµã€ãšã³ã¹ãšãã€ãœã³ã«èå³ãæã¡å§ããã®ã¯4幎以äžåã®ããšã§ããå¶ç¶ã«ããç§ã¯è»¢è·ããªããã°ãªãããç§ã®ã¹ãã«ã¯ãå
éšåæãµãŒãã¹ã®ããã¯ãšã³ãã§ã®äœæ¥ãéå§ããã®ã«é©ããŠãããšè©äŸ¡ãããŸãããããã§ãããŒã¿åæãéããŠãç§ã¯ãã®èšèªã§ã®ãŠã§ãéçºã«è¡ãçããŸããã
矩åãšããŠãå®éã®ããã³ããšã³ãéçºè
ãéåžžã«å¿ãããšãããŸãã¯UIåè³ªåºæºããããããªãã£ããšãããç§ã¯ãã«ã¹ã¿ãã¯éçºè
ã§ãªããã°ãªããŸããã§ããã
ããã¯ãæè¡çãªè©³çްã«å®å šã«æ²¡é ããããšãªããç¬èªã®æ¬æ ŒçãªWebã¢ããªã±ãŒã·ã§ã³ãäœæããããã«èŠãããã¹ã®èª¬æã§ãããªããžããªããã®ã³ããããžã®ãªã³ã¯ã¯éäžã§åé€ãããŸãããã®æ ã®æ®µéã«ã€ããŠç°¡åã«èª¬æããŸãã
- UI
- , , CI
- production-
- production-
- https
- AWS. , .
ã¢ããªã±ãŒã·ã§ã³ã®äž»é¡ã®éžæã¯å¥ã®è©±ã§ãããæçµçãªéžæã¯è¿œè·¡ã®ç¿æ £ã«ãããŸãããããŒã ããŒãžã«ã¯ã远跡ãããç¿æ £ãæã€ãã¿ã³ã®ã»ããããããŸããç§ãã¡ã¯è¡åãèµ·ãããŸãã-ãã¿ã³ãæŒããŸãã-ãããŠæ¯æ¥ãããŒã¿ã¯ä¿åããŠå¥ã®ããŒãžã«è¡šãç¿æ £ãè¡ãæŠæ¥ãåã®åœ¢åŒã§è¡šç€ºããå¿ èŠããããŸããå¡ãã€ã¶ãããã»ã«ã¯ãå¿ èŠãªã¢ã¯ã·ã§ã³ããã®æ¥ã«å®è¡ãããããšã瀺ããŸããåçŽãªçŽã®ç¿æ £ãã©ãã«ãŒã®ããã«ã
æè¡çãªã¹ã¿ãã¯ã¯ç§ã«ã¯æçœã§ããïŒreactãdjangoãpostgresãnginxãuwsgiã
åæUIã®ã¬ã€ã¢ãŠã
ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ããå§ããŠãnodejs.org / en / download / package- managerãgithub.com / facebook / create-react-appãã€ã³ã¹ããŒã«ãããããžã§ã¯ããäœæããããšã«ããŸããã
npx create-react-app easytrack
ãããŠãã¬ã€ã¢ãŠããå§ããŸãããåœåãããããžãã¹ããžãã¯ãªããžã§ã¯ãã®ãªã¹ããããã°ã©ã ã«çŽæ¥ããŒãã³ãŒãã£ã³ã°ããããããulã¿ã°ã®ãªã¹ããšããŠè¡šç€ºããããšã»ã©ç°¡åãªããšã¯èããããŸããã§ããããããã®ãªããžã§ã¯ãã¯ããããã¯ã°ã«ãŒãã远跡察象ã¢ã€ãã ãç¹å®ã®æ¥ã®ç¹å®ã®ã¢ã€ãã ã®å®éã®è¿œè·¡ã¬ã³ãŒãã§ãã
æåã®ããŒãžã«ããŒãå¥ã°ã«ãŒããããããããã®ãããããã¯ãªãã¯ãããšã远跡å¯èœãªã¢ã€ãã ã®ãªã¹ããéããŸããã
ãŸããé廿°æ¥éã®çµ±èšãå«ãç°¡åãªè¡šãå«ãå¥ã®ããŒãžãäœæããŸããã
ããã¯ãšã³ããéçºãã
ãã®æ®µéã§ã¯ãããã¯ãšã³ããå¿ èŠã§ããããªããžã§ã¯ããããŒã¿ããŒã¹ã«ä¿åãããŠãŒã¶ãŒã管çããæš©éãåºå¥ããå¿ èŠããããŸããç§ã¯ãã§ã«èªåã®ãããžã§ã¯ãã«Djangoã䜿çšããå¿ èŠããããŸãããïŒãã¡ãããè«ççãªçµè«ã«ã¯è³ããŸããã§ããïŒã1ã€ã®åé¡ããããŸãããDjangoRestFrameworkã䜿çšããå¿ èŠããããŸãããDjango 2.0Webã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã«æè¬ããŸã[1]ã圌ããDRFã§APIãäœæããæåŸã®ç« ãé€ããŠãç§ã¯ãããã«ããŒããã«ããŒãžãšèª¿ã¹ãŸãããç§ã¯ç§ã®ç®ã§ããããã£ãšèŠãŸããã話ã®éäžã§ãç§ã¯äœåºŠã圌女ã«ç®ãåããŸãã
ã©ãã«ãè¡ãããwww.django-rest-framework.orgã®ããã¥ã¡ã³ããéããŠå«ç ãéå§ããèšåãããæ¬ã«ãç®ãåããŸããã
ä»®æ³ç°å¢ãã€ã³ã¹ããŒã«ããŠã¢ã¯ãã£ãåããDjangoãã€ã³ã¹ããŒã«ããŠããããžã§ã¯ãã®ã«ãŒãã«djangoãããžã§ã¯ããäœæããŸããã
virtualenv venv
. ./venv/bin/activate
pip install django
django createproject config
ã¡ã€ã³ãã©ã«ãã®ååãdjangoã«å€æŽããŸããããã«ãããååã«ãã£ãŠãã®å 容ã«é¢ãããã¹ãŠãããã«æç¢ºã«ãªããŸãããã®äžã«ã¯configãšåŒã°ããpythonã¢ãžã¥ãŒã«ããããŸãããããéåžžã«äŸ¿å©ã§ããåå¿ãã©ã«ãã«ã©ãããããããã³ããšã³ãã³ãŒãããããäžè¬çãªãã©ã«ãæ§é ã®éçºæ¹æ³ã§ããã仿¥ãŸã§åç¶ããŠããŸãïŒGithubãåç §ïŒã
ãããžã§ã¯ãã®ã«ãŒãã§ãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãäœæããŸããã
django createapp core
ããã³ããã·ãªã¢ã©ã€ã¶ãŒããã¥ãŒïŒGithubã§ã³ãããããããã®ãªã³ã¯ïŒã§ããŒãã³ãŒãã£ã³ã°ããã®ãšãŸã£ããåã圢åŒã§ããžãã¹ããžãã¯ã¢ãã«ã®ã¯ã©ã¹ãäœæããŸããã
ããŒã¿ããŒã¹ãæ°ã«ãããããã©ã«ãã®SQLiteã䜿çšããŸãã管çããã«ãããåã«ããŒãã³ãŒãã£ã³ã°ããããã€ãã®ãã¹ãããŒã¿ãµã³ãã«ãã¢ããããŒãããŸãããããã³ããšã³ãã«æ¥ç¶ããããšããŠããŸãã python3 manage.py runserverã1ã€ã®ã¿ãã§ãyarnãå¥ã®ã¿ãã§éå§ããŠé転ããŸããã
ReactéçºãµãŒããŒã¯ããŒã3000ã§å®è¡ãããDjangoã¯ããŒã8000ââã§å®è¡ãããŸããåé¢ã«ãã§ããïŒ 'httpïŒ// localhostïŒ8000 / ...'ïŒèŠæ±ãæžã蟌ãããšã»ã©ç°¡åãªããšã¯ãããŸãããããããcors-originã¯ããµã€ãããµãŒããŒã«èªåãªã¯ãšã¹ããéä¿¡ã§ããªãããã«ããç¹å¥ãªä¿è·æ©èœã§ããããããã®ããã«ã¯æ©èœããŸããã§ããããããã£ãŠãããèããã«ãããã¯ãšã³ãã«çµã¿èŸŒã¿ãŸããdjango-cors-headersïŒãæ§æããŸãã-åäœããŸããããã®åŸãpackage.jsonã«ãããã·ã»ã¯ã·ã§ã³ã远å ããŠããã¯ãšã³ãããã€ã³ããããšæšæž¬ãããã§ããïŒ '/ api / v1 / ...'ïŒãæ£åžžã«æ©èœãå§ãã远å ã®èšå®ã¯äžèŠã«ãªããŸããã
æåã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã§éåæãªã¯ãšã¹ããè¡ã£ããããã²ã©ããã€ãŒãã§ããããã¹ãŠãããŸãããã倧äžå€«ã§ãããåŸã«ãªã£ãŠããããããã®çš®ã®äœæ¥ãå®è¡ã§ããå Žæãšå®è¡ããŠã¯ãªããªãã©ã€ããµã€ã¯ã«æ¹æ³ã«ã€ããŠåŠã³ãŸãããããã§èŠçŽ ã衚瀺ãããæ°ããèŠçŽ ãäœæã§ããŸããã
ãŠãŒã¶ãŒç®¡çãšæš©å©ã®åé¢ãå®è£ ãã
ãã®æ®µéã§æ¬ ããŠããã®ã¯ãããŒã¿èŠçŽ ã«å¯Ÿããæš©å©ã®åé¢ã ãã§ããããããã¯ãã¹ãŠãå¿åã®éãã°ã€ã³ãŠãŒã¶ãŒã«ä»£ãã£ãŠäœæãããŸããã djangoã®ãšã³ã·ã¹ãã ãå£ãããšãªããã©ããããããããã«çµ±åããå¿ èŠããããŸããã
ãŸããããã³ããšã³ãã§ãã°ã€ã³/ãã¹ã¯ãŒããããŒãã³ãŒãã£ã³ã°ããå€ 'Basic' + base64.encodeïŒãŠãŒã¶ãŒå+ "ïŒ" +ãã¹ã¯ãŒãïŒã§AuthorizationããããŒãäœæããŸãããæ¬¡ã«ãbase64圢åŒã®æååãçæãããŠãŒã¶ãŒå/ãã¹ã¯ãŒããå ¥åãããšãã«ã¯ã©ã€ã¢ã³ãã«ä¿åããããšãèããŸãããããããå®å šæ§ã®èгç¹ãããã®æ±ºå®ã«ã¯å€§ããªçåããããŸãããç§ã¯å¥ã®ããšã詊ã¿ããã£ãã®ã§ãã
ç§ã¯ã€ã³ã¿ãŒãããã§å°ãã®ééšããJWTãã¯ãããžãŒãšdjango-rest-framework-simplejwã¢ãžã¥ãŒã«ã«ã€ããŠåŠã³ãŸãããããã¯ãããŒã¯ã³ã®ãã¢ãååŸããã¢ã¯ã»ã¹ããŒã¯ã³ãæŽæ°ããããã®DRFãšãã¥ãŒã®èªèšŒã¯ã©ã¹ãæäŸããŸããã
ããã³ããšã³ãåŽããã¯ãlocalStorageã«ããã€ãã®ããŒã¯ã³ãä¿åããå€ããBeareraccess-tokenãã®AuthorizationããããŒãæž¡ãã ãã§ååã§ãããæåŸã«ããã°ã€ã³ããŒãžãã¬ã€ã¢ãŠãããæš©éã¯ã©ã¹ïŒGithub commitãžã®ãªã³ã¯ïŒã䜿çšããŠãèš±å¯ãããŠããªããŠãŒã¶ãŒã®ãµã€ããžã®ãã¹ãŠã®ã¢ã¯ã»ã¹ãéããŸãããåé¢ã«ãæŽæ°ããŒã¯ã³ããªãå Žåã¯ããã°ã€ã³ããŒãžã«ãªãã€ã¬ã¯ãããŸããïŒGithubã³ããããžã®ãªã³ã¯ïŒã
次ã«ããµã€ããžã®ç»é²ãããã¯ãšã³ãã§ã®ãã¥ãŒã®äœæãããŒãžã®ã¬ã€ã¢ãŠããéä¿¡ãªã¯ãšã¹ãã®èšå®ãå¯èœã«ããŸãããå°æ¥ãç§ã®å€¢ã¯ã¡ãŒã«ã§ã¢ã«ãŠã³ãã¢ã¯ãã£ããŒã·ã§ã³ãæžãããšã§ããã
ãªãã¡ã¯ã¿ãªã³ã°ãäžè¶³ããŠããåºæ¬æ©èœã®å®è£ ãCI
ãã®æç¹ã§ãæå°éã®äœ¿çšå¯èœãªã¢ããªã±ãŒã·ã§ã³ã倿ãããã£ãŒãããã¯ãåéããããšæããŸãããç§ã¯åŠ»ã«ã¢ããªã±ãŒã·ã§ã³ãèŠããŠãç§ã®åŽããã®åäžã®ããã³ãããªãã§ããã䜿çšããããã«é Œã¿ãŸãããç»é²ã¯å€§æåã§ããããæã£ããšããã«ãã¹ãŠãããŸããããŸããã§ãããæ¬¡ã«ããµããžã§ã¯ããã©ã«ããŒãæåç·ã«çœ®ãã®ã§ã¯ãªããè£å©ããŒã«ã«ããå¿ èŠãããããšã«æ°ä»ããŸããããŸãããã¿ã³ã®ã»ãããäœæããŠ1æ¥1åã¯ãªãã¯ã§ããããã«ãããã³ãã远å ããå¿ èŠããããŸãã圌女ã¯ãããããªãã现èã®äžã«å¡ãå¿ èŠãããã¹ãã¬ããã·ãŒããåããéåžžã®çŽã®ç¿æ £ãã©ãã«ãŒã®ããã§ãããšæåŸ ããŸãããããã«æ°ã¥ãããšããç§ã¯ãªãã¡ã¯ã¿ãªã³ã°ãå§ããŸããããããŠãã以å€ã«ããªãã¡ã¯ã¿ãªã³ã°ãããã®ããããŸãããã¢ãžã¥ãŒã«æ§é ãã»ãŒãŒããã調ã¹ãŸããã
ãã®æç¹ã§ãçŸãããcssã¹ã¿ã€ã«ãå¿çæ§ã®é«ãã¬ã€ã¢ãŠãã远å ããããšã«ããŸããããã®ç¹ã§ãç§ã¯ç¹ã«åŒ·ãã¯ãªããCSSãã¬ãŒã ã¯ãŒã¯ã«äŸåããŠããŸããéžæã¯ã«èœã¡ããã«ãæããã®ããŠã³ããŒãæ°ã«åºã¥ããŠãnpmjs.comç§ã¯ããŒãã¹ãã©ãããåããããªãã£ããšããäºå®ã«ããããããããå°ãªããšããç§ã¯ãã®ã¿ã¹ã¯ã«å¯ŸåŠããŸããã
䞊è¡ããŠãããã¯ãšã³ãæ©èœãæ¹åããŸãããå®å šãªCRUDãäœæããŸãããã¡ãŒã«ã§ç»é²ã確èªãããšãã倢ãå®çŸããŸãããç§ã¯æçŽãéãæ©èœãçè§£ãããããã°ã¡ãŒã«ãµãŒããŒãä»ããŠãã¹ãŠããããã°ããèœåãç²åŸããŸããã
python -m smtpd -n -c DebuggingServer localhost:1025
ã¹ããŒãžã³ã°ã®ããã«ãç§ã¯ãžã£ã³ã¯Googleã¢ã«ãŠã³ããéå§ãããªããšãGoogleã¡ãŒã«ã§æçŽãéãããã«èšå®ããŸããã
ããã¯ãšã³ãã®ãã¹ãã«ãã¬ããžã«é¢ããŠã¯ããã¹ãŠãããèªäœã§éåžžã«ããŸããããŸããããããã³ããšã³ãã®å Žåããã¹ãŠããŸã ããªãé ãã§ããããããç§ã¯çµ¶æããŠããŸãããçªç¶ãããã¯èª¿æŽãããããšã倿ããŸãã
次ã®ã¹ãããã¯CIãèšå®ããããšã§ããããã¹ããå®è¡ããããã«ãGithubActionsãèµ·åããæ§æã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšããŠå®è¡ããå°ã調æŽããŸãããããã ãã§ãã
å®çšŒåç°å¢ã®èšå®ãçæãã
ãã°ããããŠãã³ãŒããšããžãã¯ã®çްéšãæŽçããåŸãæ¬çªæ§æã®äœæãéå§ããå¿ èŠããããŸããããã®ããã«ç§ã¯åãæ¬[1]ã«è§ŠçºãããŸãããdjango-configurationãã¡ã€ã«ãpython-dependenciesã3ã€ã®éšåã«åå²ããŸããïŒGithubã³ããããžã®ãªã³ã¯ïŒïŒ
- å ±é-ããããç°å¢ã«å¿ èŠãªãã¹ãŠ
- dev â
- prod â
, .
uwsgi, nginx , dockerfile, .
[1] «1 â 1 », , , . phusion/baseimage, Ubuntu, .
, , postgres, . ( Github).
production-
, [1], AWS, . , - . , , , , . Free Tier, , , ? .
, AWS - , . , . , ECS.
Elastic Container Service
Github Actions Builderã䜿çšãããšãAWSECSã§ç¶ç¶çãªã³ã³ãããŒå±éã¿ã¹ã¯ã®æ§æãäœæã§ããããšãããããŸããããã®ãµãŒãã¹ã詳ãã調ã¹å§ãããšããŸããããããŒã«ã«ã³ã³ãœãŒã«ã§ãã¯ã©ã¹ã¿ãŒãäœæããã¿ã¹ã¯å®çŸ©ãäœæããã³ã³ãããŒãèšè¿°ããå¿ èŠãããããšã«æ°ä»ããŸããã以åã¯ããã®ã€ã¡ãŒãžãå¥ã®AWS ECRãµãŒãã¹ïŒæ©èœçã«ã¯DockerhubïŒã«ä¿åããŠããŸãããã³ã³ãœãŒã«ã«ã¯ãFargateãšEC2ã®2çš®é¡ã®ã¯ã©ã¹ã¿ãŒãçšæãããŠããŸãããæåã®ãã¯ãããžãŒã¯å®å šã«ãµãŒããŒã¬ã¹ã§ããã€ãŸããã³ã³ãããŒãèµ·åããã ãã§ãã©ã³ã¿ã€ã ããã¹ãŠãåŠçããŸãã 2çªç®ã®ã¿ã€ãã®ã¯ã©ã¹ã¿ãŒã®ã³ã³ãããŒã¯ãã¯ã©ãŠãå ã®ç¬èªã®ä»®æ³ãã·ã³ã€ã³ã¹ã¿ã³ã¹ã§å®è¡ãããŸããé·ãéããã«é£ã³èŸŒã¿ãããªãã£ãã®ã§ãç§ã¯Fargateã«åºã¥ããŠã¯ã©ã¹ã¿ãŒãäœæããŸãããããããç§ã¯ç§å¯ã®å€ãã³ã³ããã«æž¡ãããšãã§ããªãã£ããšããäºå®ã«ééããŸããããã®ãããã¿ã¹ã¯ã¯åžžã«äœäžããŠããŸããã
ã³ã³ãããåäœç¶æ ã«ããããšããŠããéãã¯ã©ã¹ã¿ã¯æ°æéåäœããŠããŠããµãŒãã¹ã®æ¯æãã§ã¿ãã«ãéã远å ãããŸããããã¯ãããžãŒèªäœã¯ææã§ããããšã倿ããç¡æå©çšæ ã«ã¯é©çšãããŸãããç§ã¯ã¯ã©ã¹ã¿ãŒã宿žããå°ãåŸã§æ¯æããåŠçããããšã«ããŸãããEC2ãªãœãŒã¹ã䜿çšããå Žåãé€ããŠãEC2ã®äžã§ECSã䜿çšããããã«è¿œå æéãæ¯æãå¿ èŠããªãããšãããã¥ã¡ã³ãã§èªã¿ãŸããããEC2ã¯ç¡æå©çšæ ã§ã«ããŒãããŠããããããã®ãã¹ã詊ãããšã«ããŸããã
AWSãµããŒã
çµå±ã誰ããç§ã«åãã€ãã圌ãã¯ç§ã«ãã®æ§æã®ããã«ããå°ããéãè«æ±ããŸãããå°é¡ã§ã¯ãããŸãããããã§ãæ®å¿µã§ããããåèš0.32ãã«ã§ããããããããç§ã¯ã»ããã¢ããã«åé¡ããããåžžã«ç¡ææ ã«åãŸããšæã£ãŠãããšèšããŸããããäœãããŸããããããéãåŒãåºãããŸãããç§ã¯å©ããæ±ãããç§ã®é»è©±ã«å¿ããŠã圌ãã¯åãã§å¿çãããã¹ãŠã®äºæããªãè²»çšãã«ããŒãã1ãã«ã®ããŠãã£ãŒãäžããŸãããããŸãã
ãã®çµæãç§ã¯ãã®ã³ã³ãããµãŒãã¹ãšãã¹ã¿ãŒEC2ãæãçŽç²ãªåœ¢ã§å¿ããªããã°ãªããŸããã§ããã
Elastic Computing Cloud
EC2 â . Free Tier 750 . , , - , .
[1] docker-machine, . , EC2. docker .
, dockre-machine create⊠EC2. docker-compose up -d . 80 . , «Public DNS» , .
Relational Database Service
AWS RDS. . , ( postgres) , Free Tier, . , , .
Simple Email Service
ç§ã¯ãŸããæçŽãéãããŠããªããšããäºå®ã«çŽé¢ããªããã°ãªããŸããã§ãããäºå®ããã¹ãŠã®ã¡ãŒã«ãµãŒãã¹ã¯ãã¹ãã ã«å¯Ÿæããããã«EC2ã€ã³ã¹ã¿ã³ã¹ã«äžèŽããIPãçŠæ¢ããŠããŸããSESã䜿çšããããšãäžå¯æ¬ ã§ãããå¥ã®AWSãµãŒãã¹ã
ãŸãããããæ§æããæçŽãéä¿¡ããã¡ãŒã«ããã¯ã¹ã瀺ããŸããããã¹ãŠåé¡ãããŸããããããããããŸã§ã®ãšãããã¹ãŠãããã»ã©ãã©è²ã§ããããã§ã¯ãããŸãããæ°ããã¢ã«ãŠã³ãã¯ããã©ã«ãã§ãµã³ãããã¯ã¹ã¢ãŒãã«ãªã£ãŠãããæªç¢ºèªã®ã¡ãŒã«ããã¯ã¹ã«ã¡ãŒã«ãéä¿¡ããããšã¯ã§ããŸãããããŒã¿ãã¹ã¿ãŒã®ããã¯ã¹ã確èªããå¿ èŠããããŸããã
ãã¡ã€ã³ãç»é²ããhttpsã¢ã¯ã»ã¹çšã®èšŒææžãæ§æããŸã
ã¢ããªã±ãŒã·ã§ã³ãå®å šã«ãã¹ãããã«ã¯ãhttpsæ¥ç¶ãã»ããã¢ããããå¿ èŠããããŸããããããã¯ãã¡ã€ã³ãç»é²ããªããšäžå¯èœã§ããããšã倿ããŸãããå®å šã§ãªãæ¥ç¶ãä»ããŠè»¢éããããšã«ãããé»åã¡ãŒã«ã¢ãã¬ã¹ããã¹ã¯ãŒããããã³ããŒã¯ã³ãå±éºã«ããããããããŸããã§ããããã®å Žåãç§ã¯ã€ã³ã¿ãŒãããå šäœãæ€çŽ¢ããŸãããäžéšã®ã¬ãžã¹ãã©ã¯é«äŸ¡ã§ããããé©åããŸããã§ããããã©ããã§éåžžã«é«äŸ¡ã§ããããã®äžãå€ãã®ã¬ãžã¹ãã©ã¯ã²ã©ãã¬ãã¥ãŒãæã£ãŠããŸããç§ãæ¢ããŠãããšããYandexåºåãããã¯ãŒã¯ã¯ç§ãäœãæãã§ããããçè§£ããããã«39ã«ãŒãã«ã®ãã¡ã€ã³ãç»é²ã§ããäŒç€ŸãæäŸããŠãããŸããããã®ãµãŒãã¹ã«ã€ããŠã®ã¬ãã¥ãŒããã£ãšãã£ãã®ã§ãç§ã¯ã¢ã«ãŠã³ããäœæããç¡æã®ãã¡ã€ã³ãéžæããŠç»é²ããŸããã
次ã«ããã®ãã¡ã€ã³ã䜿çšããŠEC2ã€ã³ã¹ã¿ã³ã¹ã«ã¢ã¯ã»ã¹ããããã«ãAWS Route 53ãµãŒãã¹ã§ãã¹ãã£ã³ã°ãŸãŒã³ãäœæããDNSèšå®ãç»é²ãããã¡ã€ã³ãç»é²ããããµãŒãã¹ã®å人ã¢ã«ãŠã³ãã®NSã¬ã³ãŒããAmazonã®ãã®ã«æžãçŽããŸããã
Let'sEncryptãµãŒãã¹ã䜿çšããŠèšŒææžãäœæããŸãããç§ã¯ãã®æ§æã«èœã¡çããŸãããããŒã«ã«nginxãã³ã³ãããŒã¢ãã¬ã¹ãžã®proxy_passãäœæããã³ã³ãããŒãå転ããããŒã8080ããã¢ã¯ã»ã¹ã§ããŸããcertbotã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ã䜿çšããŠèšŒææžãçæããhttpsãèªåçã«æ§æããããšã¯é£ãããããŸããã§ãããæåŸã«ãããŒã443ã§ä»®æ³ââãã·ã³ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããŸãã
ãããžã§ã¯ãã®éçºã¯è«ççãªçµè«ã«éããŸãã
, . , , SES , . , . , , , , , , , , . , , . :
- , , . .
- -
- ,
- , -
â , , . React , AWS, , , .
ããããäž»ãªèªèã¯ãçŸå Žã®äººã¯ãŸã£ããæŠå£«ã§ã¯ãªããšããããšã§ããç§ã¯ãã®ãããžã§ã¯ãã«2ãæä»¥äžã空ãæéã«äœæéãåãçµãã§ããŸãã...ãããŠããªãã¯äœãç¥ã£ãŠããŸããïŒç§ã¯ãŸã ããã»ã©ã²ã©ãçž«ãä»ããŠããŸããã幎ããšãã»ã©ãããã®ãããªãããšãåŠã³ãããšããæ¬²æ±ãå°ãªããªããããã é¢çœããããšã«ã€ããŠå€ãã®ããšãåŠã³ãããšããæ¬²æ±ãå°ãªããªãããšãããããŸãããããåæã«ãããªãã¯å©çã®ããã«äœããããããã®ããå€ãã®å©çšå¯èœãªæ©äŒãããããšã«æ°ã¥ããŸããããªãã¯éäžçãªåªåãããŒã ã¯ãŒã¯ããããŠãªã©ãã¯ã¹ã芪ãã人ã
ãšéããæéã«æè¬ãå§ããŸãã