å®å šã§ä¿¡é Œã§ããã¯ã©ãŠãããŒã¹ã®Webã¢ããªã±ãŒã·ã§ã³ã®éçºã¯ãéåžžã«è€éãªåé¡ã§ãã éã£ãèãæ¹ãããå Žåãããªãã¯ãã®äžçã«å±ããŠããªããã人çãããŸã æèšãåŸãããŠããŸããã
ãæå°å®è¡å¯èœè£œåãïŒ MVP-æå°å®è¡å¯èœè£œåãçŽTranslãïŒã®ã¢ã€ãã¢ã«ãã§ã«ææããŠããå Žåã1ãæã§äŸ¿å©ã§å®å šãªè£œåãäœæã§ãããšèããŠãã ããããªãªãŒã¹ããåã«ããèããŠãã ããã ãã§ãã¯ãªã¹ãã確èªãããšãå€ãã®è匱æ§ãæ®ã£ãŠããããšãããããŸãã
ãã®ãããªç¶æ³ã§ã§ããããšã¯ã補åããŸã ãããã¿ã€ãã®æ®µéã«ãããå®å šãªå®å šæ§ããŸã ä¿èšŒãããŠããªãããšããŠãŒã¶ãŒã«æ£çŽã«èŠåããããšã§ãã
ãã§ãã¯ãªã¹ãã¯éåžžã«ã·ã³ãã«ã§ããŸã å®å šã§ã¯ãããŸããã ç§ã¯14幎以äžã«ããã£ãŠå®å šãªWebã¢ããªã±ãŒã·ã§ã³ãéçºããŠããããã®éã«ééããæãéèŠãªåé¡ããªã¹ãã«å«ããŸããã 補åãäœæãããšãã«ãçå£ã«åãæ¢ããŠãããããšãé¡ã£ãŠããŸãã
ããŒã¿ããŒã¹
- ãŠãŒã¶ãŒèå¥ããŒã¿ãšæ©å¯ããŒã¿ïŒããŒã¯ã³ãé»åã¡ãŒã«ã¢ãã¬ã¹ãæ¯æãã®è©³çŽ°ïŒãæå·åããã圢åŒã§ä¿åããŸãã
- ããŒã¿ããŒã¹ãæ ŒçŽãããããŒã¿ã®æå·åããµããŒãããŠããå ŽåïŒAWS Auroraãªã©ïŒããããæ¥ç¶ããŠãã£ã¹ã¯äžã®ããŒã¿ãä¿è·ããŸãã ãã¹ãŠã®ããã¯ã¢ãããæå·åãããŠããããšã確èªããŠãã ããã
- ããŒã¿ããŒã¹å ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãã«ã¢ã¯ã»ã¹ããã«ã¯ãæå°ã®ç¹æš©ã¬ãã«ã䜿çšããŸãã ããŒã¿ããŒã¹ã®ã«ãŒãã¢ã«ãŠã³ãã䜿çšããªãã§ãã ããã
- ãã®ç®çã®ããã«èšèšãããããŒã¹ãã¢ã§æ©å¯ããŒã¿ãä¿åããã³å ±æããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ããŒãã³ãŒãã䜿çšããªãã§ãã ããã
- å°çšã«æºåãããSQLã¯ãšãªã䜿çšããŠãSQLã€ã³ãžã§ã¯ã·ã§ã³ãé²æ¢ããŸãã ããšãã°ãNPMã䜿çšããå Žåã¯ãnpm-mysqlã䜿çšããã«ãæºåãããåŒããµããŒãããnpm-mysql2ã䜿çšããŸãã
éçº
- å®çšŒåç°å¢ã«éä¿¡ãããåããŒãžã§ã³ã®è匱æ§ã«ã€ããŠããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ãããã§ãã¯ãããŠããããšã確èªããŠãã ããã ããã«ã¯ãO / Sãã©ã€ãã©ãªãããã³ããã±ãŒãžãå«ãŸããŸãã æ€èšŒã¯ãCI-CDããã»ã¹ã§èªååããå¿ èŠããããŸãïŒCI-ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³-ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãCD-ç¶ç¶çããªããªãŒ-ç¶ç¶çããªããªãŒãçŽTranslãïŒã
- éçºç°å¢ã®ã»ãã¥ãªãã£ãšéçšãµãŒããŒã®ã»ãã¥ãªãã£ã®äž¡æ¹ã«ã€ããŠåæ§ã«èŠæããŠãã ããã å®å šã§åé¢ãããéçºç°å¢ã§ãœãããŠã§ã¢ãäœæããŸãã
身å蚌ææž
- ãã¹ãŠã®ãã¹ã¯ãŒãããbcryptãªã©ã®é©åãªæå·åæ©èœã䜿çšããŠããã·ã¥ãããŠããããšã確èªããŠãã ããã ç¬èªã®ããã·ã¥é¢æ°ãäœæãããã䜿çšããæå·åã©ã€ãã©ãªãã©ã³ãã ããŒã¿ã§æ£ããåæåããªãã§ãã ããã
- ãŠãŒã¶ãŒã«é·ããŠäžæã®ãã¹ã¯ãŒãã®å ¥åãä¿ããã·ã³ãã«ã ãé©åãªãã¹ã¯ãŒãã«ãŒã«ãå®è£ ããŸãã
- ãã¹ãŠã®ãµãŒãã¹ã«ã€ããŠãå€èŠçŽ èªèšŒã䜿çšããŠãã°ã€ã³ããŸãã
DDoSä¿è·
- APIã«å¯ŸããDDoSæ»æããµã€ãã«å®³ãäžããªãããã«ããŠãã ããã å°ãªããšãããã°ã€ã³ãããŒã¯ã³çææé ãªã©ã®APIããã«ããã¯ãä¿è·ããŠãã ããã
- ãŠãŒã¶ãŒæäŸã®ããŒã¿ãšã¯ãšãªã®ãµã€ãºãšæ§é ã«åççãªå¶éãèšããŸãã
- CloudFlareã®ãããªã°ããŒãã«ãã£ãã·ã³ã°ãããã·ãµãŒãã¹ã§DDoSæ»æã軜æžããŸãã DDOSæ»æãåããŠãããšãã«ãªã³ã«ãªããéåžžã¢ãŒãã§ã¯DNSã«ãã¯ã¢ãããšããŠæ©èœããŸãã
Webãã©ãã£ãã¯
- ãã°ã€ã³ããã³å¿çãã©ãŒã ã ãã§ãªãããµã€ãå šäœã§TLSã䜿çšããŸãã TLSããã°ã€ã³ãã©ãŒã ãšããŠäœ¿çšããªãã§ãã ããã
- Cookieã¯ãã»ãã¥ã¢ããã€httpOnlyã§ããå¿ èŠããããã¹ã³ãŒãã¯ãã¹ãšãã¡ã€ã³å±æ§ã«ãã£ãŠæ±ºå®ãããå¿ èŠããããŸãã
- CSP ïŒã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ãŒïŒã䜿çšããŠãå®å šã§ãªãããã¯ãã¢ãé²æ¢ããŸãã å°éºŠç²ã®èšå®ã¯äŸ¡å€ããããŸãã
- ã¯ã©ã€ã¢ã³ãå¿çã§X-Frame-OptionãX-XSS-ProtectionããããŒã䜿çšããŸãã
- HSTSã¡ã«ããºã ã䜿çšããŠãTLSãããã³ã«ãä»ããã¢ã¯ã»ã¹ã匷å¶ããŸãã äžäœäºææ§ã®ããã«ããã¹ãŠã®HTTPèŠæ±ããµãŒããŒäžã®HTTPSã«ãªãã€ã¬ã¯ãããŸãã
- ãã¹ãŠã®ãã©ãŒã ã§CSRFããŒã¯ã³ã䜿çšããæ°ããSameSite Cookieå¿çããããŒã䜿çšããŠããã¹ãŠã®ãã©ãŠã¶ãŒã§CSRFã1åã ããã£ããã£ããŸãã
API
- APIã«ãããªãã¯ãªãœãŒã¹ããªãããšã確èªããŠãã ããã
- APIã䜿çšãããšãã¯ããŠãŒã¶ãŒãå®å šã«èå¥ããã³æ¿èªãããŠããããšã確èªããŠãã ããã
æ€èšŒ
- è¿ éãªãŠãŒã¶ãŒãã£ãŒãããã¯ã®ããã«ã¯ã©ã€ã¢ã³ãåŽã®å ¥åæ€èšŒãå®è¡ããŸããã決ããŠä¿¡é Œããªãã§ãã ããã
- ãµãŒããŒäžã®ãã¯ã€ããªã¹ãã䜿çšããŠããŠãŒã¶ãŒå ¥åã®ãã¹ãŠã®ãããã確èªããŸãã å¿çã«ã«ã¹ã¿ã ã³ã³ãã³ããçŽæ¥å ¥åããªãã§ãã ããã SQLã¯ãšãªã§ãŠãŒã¶ãŒå ¥åã䜿çšããªãã§ãã ããã
ã¯ã©ãŠãæ§æ
- ãã¹ãŠã®ãµãŒãã¹ã«éããŠããããŒãã®æå°æ°ãããããšã確èªããŠãã ããã ããããŸããã«ããã»ãã¥ãªãã£ãã®ååã¯å®å šãªä¿è·ãæäŸããŸããããéæšæºããŒãã®äœ¿çšã¯æ»æè ã®ç掻ãå°ãè€éã«ããŸãã
- ãããªãã¯ãããã¯ãŒã¯ã§ã¯è¡šç€ºãããªããã©ã€ããŒãVPCã§ããã¯ãšã³ãããŒã¿ããŒã¹ããã¹ãããŸãã AWSã»ãã¥ãªãã£ã°ã«ãŒããšãã¢ããŒãã¢VPCãèšå®ãããšãã¯éåžžã«æ³šæããŠãã ããâãµãŒãã¹ãäžæ³šæã«å ¬éããŠããŸãå¯èœæ§ããããŸãã
- ãµãŒãã¹ééä¿¡ã®ããã«ãåå¥ã®VPCãšãã¢ããŒãã¢VPCã§è«çãµãŒãã¹ãåé¢ããŸãã
- ãã¹ãŠã®ãµãŒãã¹ãæå°éã®IPã¢ãã¬ã¹ã®ã»ããããã®ããŒã¿ã®ã¿ãåãå ¥ããããã«ããŠãã ããã
- ã¢ãŠãããŠã³ãIPããã³ããŒããã©ãã£ãã¯ãå¶éããŠãAPTãšããããã£ã±ãŒã·ã§ã³ãæå°éã«æããŸãã
- ã«ãŒãèªèšŒæ å ±ã§ã¯ãªããåžžã«AWS IAMããŒã«ã䜿çšããŸãã
- ãã¹ãŠã®åŸæ¥å¡ãšéçºè ã«æå°éã®æš©éã䜿çšããŸãã
- ã¹ã±ãžã¥ãŒã«ã«åŸã£ãŠå®æçã«ãã¹ã¯ãŒããšãã¹ããŒãå€æŽããŸãã
ã€ã³ãã©
- ããŠã³ã¿ã€ã ãªãã§ã¢ããã°ã¬ãŒããè¡ããããœãããŠã§ã¢ãèªåçã«æŽæ°ãããããšã確èªããŠãã ããã
- ã¯ã©ãŠãã³ã³ãœãŒã«ã§ã¯ãªããTerraformãªã©ã®ããŒã«ã䜿çšããŠã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã³ãŒãããšããŠå®çŸ©ãããã¿ã³ãã¯ãªãã¯ããã ãã§åäœæããå¿ èŠããããŸãã
- ãã¹ãŠã®ãµãŒãã¹ã«éäžãã°ã䜿çšããŸãã ãã°ãžã®ã¢ã¯ã»ã¹ãŸãã¯ãã°ã®åä¿¡ã«SSHã䜿çšããªãã§ãã ããã
- ã¯ã³ã¿ã€ã 蚺æ以å€ã®ãµãŒãã¹ã§SSHã䜿çšããªãã§ãã ããã éåžžãSSHãå®æçã«äœ¿çšãããšããããšã¯ããã¹ãŠãèªååããå¿ èŠããªãã£ãããšãæå³ããŸãã
- AWSãµãŒãã¹ã°ã«ââãŒãã§ããŒã22ãåžžã«éãããŸãŸã«ããªãã§ãã ããã
- ããããé©çšããŠã¢ããã°ã¬ãŒãããé·æéæå¹ãªãµãŒããŒã®ä»£ããã«ãäžå€ã®ãã¹ããäœæããŸãã
- äŸµå ¥æ€ç¥ã·ã¹ãã ã䜿çšããŠãAPTãæå°éã«æããŸãã
éå¶
- æªäœ¿çšã®ãµãŒãã¹ãšãµãŒããŒããªãã«ããŸãã æãå®å šãªãµãŒããŒã¯ã·ã£ããããŠã³ãµãŒããŒã§ãã
ãã¹ãäž
- ãããžã§ã¯ããšå®æããå®è£ ã®äž¡æ¹ã®ç£æ»ãå®æœããŸãã
- äŸµå ¥ãã¹ããè¡ããŸã-èªåèªèº«ãããã¯ããä»ã®èª°ãã«ããªããã¯ã©ãã¯ããããã«é Œã¿ãŸãã
äž»ãªããšã¯èšç»ããããšã§ã
- è åšã®ã¢ããªã³ã°ã䜿çšããŠãèªåãä¿è·ããããã«å¿ èŠãªãã®ã確èªããŸãã ã¢ãã«ã¯ãèããããè åšãšèãããããã¹ãŠã®è¡çºè ããªã¹ãããåªå é äœãä»ããå¿ èŠããããŸãã
- ã€ã³ã·ãã³ããã©ã³ãäœæããŸãã ãã€ããããå¿ èŠã«ãªããŸãã
åºç瀟ããã®åºåã®å
ç§ãã¡ã¯åçšããã°ã§ããããããªã³ã¯ãªãã§ã¯ãããŸãã:)ä»åã¯ãããã°ã©ã ã Profession Web-developer ããšã Profession frontend-developer ãã«2ã€ããããããŸããã
Webéçºã«èå³ããããäœç³»çãªæ¹æ³ã§ç¥èãåãåãã®ã奜ããªäººã®ããã«ãNetologiaã¯ããã°ã©ã Profession Web Developerã®ã»ããããªãŒãã³ããŸããã
ã³ãŒã¹ã§åŠç¿ããããã®ïŒ
- ã¯ãã¹ãã©ãŠã¶ãŒHTMLããã³CSSã¬ã€ã¢ãŠãã
- ã¬ã€ã¢ãŠãã«åºã¥ãWebããŒãžã®ã¬ã€ã¢ãŠãã
- PHPããã¯ãšã³ãéçºã
- MySQL
- ããŒã¿ããŒã¹æ§é ã®èšèšã
- Javascript
- AJAXã
- ã€ã³ã¿ã©ã¯ãã£ããªWebããŒãžãäœæããŸãã
ãã¬ãŒãã³ã°æé-6ãæã YandexãMedia StormãCondéNastã®ã¹ãã·ã£ãªã¹ããæããŸãã
ã¯ã©ã¹ã®éå§ã¯6æ23æ¥ã§ãã 詳现ã¯ãã¡ãâ
ãŸããããã³ããšã³ãéçºã¹ãã«ããŒãããç¿åŸããããšã«éç¹ã眮ããã³ãŒã¹ã§ããã ããã³ããšã³ãéçºè å°éè· ãã®åéããããŸãã