ã¯ããã«
çŸåšãEC2ã€ã³ã¹ã¿ã³ã¹ã§å€æ°ã®Webãµã€ããéçšããŠããŸãããã
ãã¡ã€ã³ãå¢ãããã³ã«èšå®ãè€éåãããµãŒããŒç®¡çã®æéãå¢å€§ãããšããæ©ã¿ãæ±ããŠããæ¹ã¯å€ããããããŸããã
ãã®èšäºã§ã¯ãããããEC2éçšã®èª²é¡ã«å¯Ÿããæåãªè§£æ±ºçãšããŠãAWS Fargateãžã®ç§»è¡ãååŸç·šã«ããã£ãŠã玹ä»ããŸãã
åç·šã®æ¬èšäºã§ã¯ããŸããçŸç¶ã®EC2éçšã§å€ãã®æ¹ãçŽé¢ããŠããå¯èœæ§ã®ããå
·äœçãªèª²é¡ãæŽçããŸãã
ãããŠEC2ãåå²ããæ¡ãšæ¯èŒããªãããFargateç§»è¡ããªãæåãªã®ãããã®ã¡ãªããã詳ãã解説ããŸãã
EC2éçšã®èª²é¡
åŸæ¥ã®ãªã³ãã¬ãã¹ãèžè¥²ããŠãããããªEC2éçšã«ã¯ãããã€ãã®æ ¹æ·±ã課é¡ãååšããŸãã
- ãã¡ã€ã³éå€ã»å¯çµå:
- åäžãããã¯å°æ°ã®EC2ã€ã³ã¹ã¿ã³ã¹ãžå€æ°ã®ãã¡ã€ã³ãéçŽãããŠããŸãã
- ããã«ããããããã¡ã€ã³ã®èšå®å€æŽãä»ã®ãã¡ã€ã³ãžäºæãã¬åœ±é¿ãäžãããªã¹ã¯ãé«ãŸããŸãã
- é害çºçæã®åœ±é¿ç¯å²ç¹å®ãåãåããå°é£ã§ãã
- åãã¡ã€ã³ã®ãªãœãŒã¹äœ¿çšç¶æ³ãç°ãªãã«ãé¢ããããªãœãŒã¹ãå ±æããããããç¡é§ãçºçããããç¶æ ã§ãã
- èšå®ã»éçšã®è€éå:
- WebãµãŒããŒïŒApacheãNginxãªã©ïŒã®èšå®ãã¡ã€ã«ã¯è¥å€§åããããŒãžã§ã³ç®¡çããããŠããªãã±ãŒã¹ãèŠãããŸãã
- ãã¡ã€ã³ããšã®SSL/TLSèšŒææžã®ç®¡çã¯ç ©éã§ãã
- ãã°ã¯ãµãŒããŒå ã«æ£åšãã調æ»ãåæã«æéãããããŸãã
- ä¿å®ãªã¹ã¯ãšå·¥æ°:
- ä»®æ³ãã¹ãèšå®ããªãã€ã¬ã¯ãã«ãŒã«ãè€éã«çµ¡ã¿åããä¿å®äœæ¥ã¯å°é£ã極ããŸãã
- ãµãŒããŒãžçŽæ¥SSHæ¥ç¶ãã
viãšãã£ã¿ãªã©ã§èšå®ãã¡ã€ã«ãçŽæ¥ç·šéããäœæ¥ã¯ãã¿ã€ããã¹äžã€ã§ãµãŒãã¹å šäœã忢ããããªã¹ã¯ãåžžã«äŒŽããŸãã倿Žåã®ç¶æ ã«æ»ãã®ãäžèŠåŽã§ãã - OSã®ãããé©çšãããã«ãŠã§ã¢ã®ã¢ããããŒãäœæ¥ããå šãã¡ã€ã³ãžã®åœ±é¿ãèæ ®ããå¿ èŠããã倧ããªè² æ ã§ãã
- ãªãœãŒã¹å¹çã®æªå:
- å€ãã®ãã¡ã€ã³ãæããããã€ã³ã¹ã¿ã³ã¹ã¯ããŒã¯æã«åããããªãŒããŒã¹ããã¯ã«ãªããã¡ã§ãã
- å®éã®CPU䜿çšçãäœããŸãŸæšç§»ããããã¡ã¢ãªäœ¿çšçã®å€åãå°ãªãã£ããããå ŽåããªãœãŒã¹ãæãŠäœãã³ã¹ãã®ç¡é§ãçããŠããå¯èœæ§ããããŸãã
- ç¡¬çŽæ§:
- æ°ããæè¡ã¹ã¿ãã¯ã®å°å ¥ããã¡ã€ã³ã®è¿œå ã»åé€ã¯ãæ¢åç°å¢ãžã®åœ±é¿ãèãããšå®¹æã§ã¯ãããŸããã
- ã€ã³ãã©ã®å€æŽã«é«ãã³ã¹ããšæéãããããããããžãã¹ã®ã¹ããŒããžã®è¿œåŸãé£ãããªããŸãã
ãããã®èª²é¡ã¯ãçµæçã«éçšã³ã¹ãã®å¢å€§ããµãŒãã¹æäŸã®é å»¶ãã»ãã¥ãªãã£ãªã¹ã¯ã®å¢å ãžãšç¹ãããŸãã
æ ¹æ¬çãªåé¡ç¹
ãããã®èª²é¡ã®æ ¹åºã«ã¯ãäž»ã«äºã€ã®åé¡ãååšãããšèããããŸãã
- ãã¡ã€ã³ã®é床ãªéçŽ: æ¬æ¥åé¢ãã¹ããã¡ã€ã³ãç°å¢ããäžã€ã®ãµãŒããŒãžéçŽããŠããŸã£ãŠããããšã
- æåã«ããè€éãªèšå®ç®¡ç: èšå®å€æŽã®å±¥æŽè¿œè·¡ãåçŸæ§ã®ç¢ºä¿ãé£ãããæäœæ¥äžå¿ã®éçšã§ããããšã
解決çã®æ€èš
ãããã®èª²é¡ã解決ãããããã©ã®ãããªã¢ãããŒããããã§ããããã
ããã§ã¯ãäºã€ã®æ¡ãæ¯èŒæ€èšããŸãã
æ¡1ïŒEC2 åå² (1 EC2ã€ã³ã¹ã¿ã³ã¹ â 1ãã¡ã€ã³)
äžã€ã®æ¹æ³ã¯ããã¡ã€ã³ããšããŸãã¯é¢é£æ§ã®é«ããã¡ã€ã³çŸ€ããšã«EC2ã€ã³ã¹ã¿ã³ã¹ãåå²ããã¢ãããŒãã§ãã
| ã¡ãªãã | ãã¡ãªãã |
|---|---|
| ãã¡ã€ã³éã®è«ççãªå颿§ãåäžãã | ãµãŒããŒç®¡ç察象ã®å°æ°ãå¢å ãã |
| ãã¡ã€ã³ããšã«ãªãœãŒã¹ãæé©åã§ããå¯èœæ§ããã | äŸç¶ãšããŠOSãããé©çšãMWæŽæ°ãç£èŠèšå®ãªã©ã®éçšè² è·ãå°æ°åå¢å ããå¯èœæ§ãé«ã |
| åã€ã³ã¹ã¿ã³ã¹ã®ã»ãã¥ãªãã£å¯Ÿçãåå¥ã«å¿ èŠãšãªã | |
| çµæçã«ãä¿å®ãªã¹ã¯ãå·¥æ°ãå¥ã®åœ¢ã§å¢å€§ããæãããã |
ãã®æ¡ã¯ãã¡ã€ã³éã®å颿§ãé«ããŸããããµãŒããŒç®¡çã®æ ¹æ¬çãªè² æ ã¯è§£æ±ºãããããããæªåãããå¯èœæ§ããããŸãã
æ¡2ïŒECS Fargate (ã³ã³ããåãšãµãŒããŒã¬ã¹å)
ããäžã€ã®æ¹æ³ã¯ãã¢ããªã±ãŒã·ã§ã³ãã³ã³ããåããAWS Fargateäžã§å®è¡ããã¢ãããŒãã§ãã
Fargateã¯ããµãŒããŒãã¯ã©ã¹ã¿ãŒã®ç®¡çãäžèŠãªãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãšã³ãžã³ã§ãã
| ã¡ãªãã | ãã¡ãªãã |
|---|---|
| ãµãŒããŒïŒOSïŒç®¡çãäžèŠã«ãªã | ã³ã³ããæè¡ïŒDockerãªã©ïŒã®ç¥èç¿åŸãå¿ èŠãšãªã |
| è² è·ã«å¿ããèªåã¹ã±ãŒãªã³ã°ãå¯èœã«ãªã | æ¢åã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããåé©åæ§ç¢ºèªãä¿®æ£ãå¿ èŠã«ãªãå Žåããã |
| ç°å¢æ§ç¯ãšèšå®ãã¡ã€ã«ãã³ãŒãåïŒDockerfileïŒãGit管çã§åçŸæ§åäžã»ãã¹åæž | ã³ã³ãã³ãæŽæ°ãããŒã®èŠçŽããå¿ èŠã«ãªãå ŽåãããïŒäŸ: SFTPããã®è±åŽïŒ |
| ACMãALBãCloudWatchãªã©ä»ã®AWSãµãŒãã¹ãšã®é£æºã容æã«ãªã | åæèšèšãç§»è¡äœæ¥ã«é¢ããã³ã¹ããçºçãã |
ãã®æ¡ã¯ã³ã³ããæè¡ã®ç¿åŸãåæç§»è¡ã³ã¹ããå¿ èŠã§ããããµãŒããŒç®¡çã®è² æ ãå€§å¹ ã«åæžããå€ãã®ã¡ãªããã享åã§ããå¯èœæ§ããããŸãã
EC2 åå² vs ECS Fargate æ¯èŒ
äž¡æ¡ãã課é¡è§£æ±ºã®èгç¹ããæ¯èŒããŠã¿ãŸãããã
| èŠ³ç¹ | EC2 åå² | ECS Fargate | åè |
|---|---|---|---|
| ãµãŒããŒç®¡ç | è² æ å¢ïŒå°æ°å¢å ïŒ | å€§å¹ åæžïŒAWSãããŒãžãïŒ | Fargateã®å€§ããªå©ç¹ |
| ä¿å®æ§ | äœïŒåå察å¿ïŒ | é«ïŒDockerfileïŒ | å®å šãªèšå®å€æŽã»ããŒã«ãã㯠|
| ã¹ã±ãŒãªã³ã° | å¥éAuto Scaling Groupãäœæããããšã§å¯èœ | èªåïŒECS Service Auto ScalingïŒ | ãªãœãŒã¹å¹çãã³ã¹ãæé©å |
| ãªãœãŒã¹å¹ç | éšåçãªæé©åã¯å¯èœã ãéå®ç | é«ïŒã¿ã¹ã¯åäœã§ã®ãªãœãŒã¹æå®ãèªåã¹ã±ãŒã«ïŒ | ç¡é§ãªã³ã¹ããåæž |
| ä¿ææ§ | äœïŒã€ã³ãã©ã»èšå®å€æŽã倧å€ïŒ | é«ïŒã³ã³ãããã³ãŒãã«ããæ§æç®¡çïŒ | ããžãã¹å€åãžã®å¯Ÿå¿ååäž |
| AWS飿º | åå¥ã«èšå®ãå¿ èŠã«å¿ããŠè¿œå éçº | 容æïŒåãããä»ã®AWSãµãŒãã¹ãšå¯æ¥ã«é£æºããããã«èšèšãããŠããïŒ | èšŒææžããã°ç£èŠãªã©å¹çå |
| ç§»è¡é£æåºŠ | äžïŒãµãŒããŒæ§ç¯ãã¹ã¯ãªããä¿®æ£ãªã©ïŒ | é«ïŒã³ã³ããåãåŠç¿ã³ã¹ããèšèšãã¢ããªã±ãŒã·ã§ã³æ¹ä¿®ã®å¯èœæ§ïŒ | åææè³ãã¹ãã«ã·ãããå¿ èŠ |
| ã³ã¹ã | éçšã³ã¹ãå¢ã®å¯èœæ§ããµãŒããŒè²»çšã¯å°æ°äŸå | å®è¡æéããªãœãŒã¹éã«å¿ããåŸé課éãã¹ã±ãŒã«ã¡ãªããã§æé©åå¯èœ | äœ¿ãæ¹æ¬¡ç¬¬ã§EC2ããå®äŸ¡ã«ãªãå¯èœæ§ããã |
æ¯èŒãããšEC2å岿¡ã¯çŸç¶ã®èª²é¡ãéšåçã«ãã解決ã§ããããããéçšè² è·ãå¢å€§ãããæžå¿µããããŸãã
äžæ¹ãECS Fargateã¯ãµãŒããŒç®¡çããã®è§£æŸãèªåã¹ã±ãŒãªã³ã°ãç°å¢æšæºåãšãã£ãã¡ãªããã«ãããçŸç¶ã®èª²é¡ãæ ¹æ¬çã«è§£æ±ºã§ããå¯èœæ§ãç§ããŠããŸãïŒ
Fargate ç§»è¡ãããããã¡ãªãã
Fargateãžç§»è¡ããããšã§ãå ·äœçã«ã©ã®ãããªã¡ãªãããæåŸ ã§ããã®ã§ããããã
- ãµãŒããŒç®¡çäžèŠ â éçšè² è·ãšãªã¹ã¯ãæ¿æžïŒ
- OSã®ãããé©çšãã»ãã¥ãªãã£ã¢ããããŒãããµãŒããŒã®é害察å¿ãšãã£ãã€ã³ãã©ç®¡çäœæ¥ããè§£æŸãããŸãïŒ AWSã責任ãæã£ãŠåºç€ã管çããŠãããŸããããã«ããããšã³ãžãã¢ã¯ã¢ããªã±ãŒã·ã§ã³éçºãæ¹åã«éäžã§ããŸãã
- èªåã¹ã±ãŒãªã³ã° â ãªãœãŒã¹ãšã³ã¹ããæé©å
- CPU䜿çšçããªã¯ãšã¹ãæ°ãªã©ã®ã¡ããªã¯ã¹ã«åºã¥ããŠãã³ã³ããïŒã¿ã¹ã¯ïŒã®æ°ãèªåã§å¢æžã§ããŸãã
- ã¢ã¯ã»ã¹ãå°ãªãæéåž¯ã¯æå°éã®ãªãœãŒã¹ã§çšŒåãããããŒã¯æã«ã¯èªåã§ã¹ã±ãŒã«ã¢ãŠãããããããªãœãŒã¹ãç¡é§ãªãå¹ççã«å©çšã§ãã³ã¹ãæé©åã«ç¹ãããŸãã
- ç°å¢æšæºå (Dockerfile) â èšå®ãã¹åæžãšåçŸæ§åäž
- Dockerfileãšããããã¹ããã¡ã€ã«ã«ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡ç°å¢æ§ç¯æé ãã³ãŒããšããŠèšè¿°ããŸãã
- ããã«ãããéçºç°å¢ããæ¬çªç°å¢ãŸã§äžè²«ããç°å¢ã容æã«åçŸã§ããèšå®ãã¹ã«ããåé¡ãåæžã§ããŸãããèªåã®PCã§ã¯åããã®ã«ãµãŒããŒã§ã¯åããªãããšãã£ãåé¡ãé²ãããããªããŸãã
- Dockerfileã®COPYåœä»€ã䜿ãã°ãApacheã® httpd.conf ãPHPã® php.ini ãšãã£ããåŸæ¥ã¯ãµãŒããŒå ã§çŽæ¥ç·šéãããã¡ã ã£ãèšå®ãã¡ã€ã«ããDockerfileãšäžç·ã«ã³ãŒããšããŠç®¡çã§ããŸãããŸããé¢é£ããèšå®ãã¡ã€ã«ãGitãªããžããªã«éçŽã§ããèŠéããè¯ããªããŸãã
ãŸãšãïŒåç·šïŒ
æ¬èšäºïŒåç·šïŒã§ã¯ãåäžEC2ã§å€æ°ã®ãã¡ã€ã³ãéçšããéã«çºçããã¡ãªèª²é¡ãšããã®æ ¹æ¬åå ã«ã€ããŠè§£èª¬ããŸããã
解決çãšããŠEC2å岿¡ãšECS Fargateç§»è¡æ¡ãæ¯èŒããFargateãæã€å€ãã®ã¡ãªããã瀺ããŸãããç¹ã«ãµãŒããŒç®¡çè² è·ã®è»œæžãèªåã¹ã±ãŒãªã³ã°ãç°å¢æšæºåãšãã£ãç¹ã§åªäœæ§ããããŸãã
ãããããããã®ã¡ãªããã¯æ¬åœã«äº«åã§ããã®ã§ããããã
åŸç·šã§ã¯å®éã«Fargateç°å¢ãæ§ç¯ããåã¡ãªãããæ¬åœã«å®çŸã§ããã®ããæ€èšŒããŠãããŸãã
åèããã¥ã¡ã³ã
AWS Fargate
https://aws.amazon.com/jp/fargate/
Amazon ECS
https://aws.amazon.com/jp/ecs/
Dockerfile reference
https://docs.docker.com/engine/reference/builder/