ã¯ã©ãŠããã©ãããã©ãŒã ã䜿çšããããšã§ãããŸããŸãªãªãœãŒã¹æ§æãšã³ã³ãã¥ãŒãã£ã³ã°å®¹éãå©çšã§ããŸãã ãã ããã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠããã©ãããã©ãŒã ã«ãããã€ããããšã¯ãç¹ã«ãã®ãã©ãããã©ãŒã ã®äœ¿ç𿹿³ã«é¢ããå°éç¥èããªãæ°èŠãŠãŒã¶ãŒã«ãšã£ãŠã¯éåžžã«å°é£ã§ããããšã蚌æãããŠããŸãã åãã©ãããã©ãŒã ã¯ç¹å®ã® API ãæäŸããå Žåããããããã³ã³ãããŒåãããã¢ããªã±ãŒã·ã§ã³ã®ãããã€ã調æŽããã®ã¯é¢åãªå ŽåããããŸãã
Docker Composeã¯ãDocker ãã¹ãã«ãããã€ãããã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ã管çããããã«äœ¿çšãããéåžžã«äººæ°ã®ããããŒã«ã§ãããã®äººæ°ã¯ããããããComposeãã¡ã€ã«ã§ã¢ããªã±ãŒã·ã§ã³ãšãã®ã³ã³ããŒãã³ããå®çŸ©ããæ¹æ³ã®åçŽããšããã®å±éã管çããããã®ã³ã³ãã¯ããªã³ãã³ãã«ãããã®ã§ãã
ã³ã³ããçšã®ã¯ã©ãŠããã©ãããã©ãŒã ãç»å ŽããŠä»¥æ¥ããããã«Composeã¢ããªã±ãŒã·ã§ã³ããããã€ã§ããããšã¯ãããŒã«ã«éçºã«Docker Composeã䜿çšããå€ãã®éçºè ã«ãšã£ãŠæãæ±ããããŠããæ©èœã§ãã
ãã®ããã°æçš¿ã§ã¯ãDocker Compose ã䜿çšããŠã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ã Amazon ECS ã«ãããã€ããæ¹æ³ã«ã€ããŠèª¬æããŸãã ããŒã«ã«ã® Docker ç°å¢ãžã®ãããã€ãã Amazon ECS ãžã®ãããã€ãžã®ç§»è¡ãããã«ç°¡åã§ãäž¡æ¹ã®ç°å¢ã§åãæ¹æ³ã§ã¢ããªã±ãŒã·ã§ã³ã管çããããã瀺ãããšãç®çãšããŠããŸãã
å¿ èŠæ¡ä»¶
ãã®ããã°æçš¿ã®äŸãå®è¡ããã«ã¯ã次ã®ããŒã«ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
- ãŠã£ã³ããŠãºãšMacOS:Docker Desktopãã€ã³ã¹ããŒã«ãã
- Linux: Docker Engine ãš Compose CLIãã€ã³ã¹ããŒã«ãã
- Amazon ECS ã«ãããã€ããã«ã¯: AWS ã¢ã«ãŠã³ã
äœæãã¡ã€ã«ã Amazon ECS ã«ãããã€ããã«ã¯ãDocker CLI ãã€ããªã«åã蟌ãŸããæ°ãã Docker äœæå®è£ ã«äŸåããŠããŸãã ãããã£ãŠãããã«ãŒäœæã³ãã³ãã®ä»£ããã«ããã«ãŒäœæã³ãã³ããå®è¡ããŸãã ããŒã«ã«ãããã€ã®å ŽåãDocker Composeã®äž¡æ¹ã®å®è£ ãæ©èœããã¯ãã§ãã 䜿çšããŠããäžè¶³ããŠããæ©èœãèŠã€ããå Žåã¯ã 課é¡ãã©ãã«ãŒã§å ±åããŠãã ããã
ãã®ããã°æçš¿ã§ã¯ãæ¬¡ã®æ¹æ³ã«ã€ããŠèª¬æããŸãã
- äœæã¢ããªã±ãŒã·ã§ã³ããã«ãããŠåºè·ããŸãã Composeãã¡ã€ã«ã§å®çŸ©ãããã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ã§å®è¡ããæ¹æ³ãšããã®ã€ã¡ãŒãžããã«ãããŠDocker Hubã«éä¿¡ããã©ãããã§ãã¢ã¯ã»ã¹ã§ããããã«ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
- Amazon ECS ãã¿ãŒã²ãããšãã ECS ã³ã³ããã¹ããäœæããŸãã  Â
- Amazon ECS ã§äœæã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŸããÂ
- äœæã¢ããªã±ãŒã·ã§ã³ã®ãã«ããšåºè·
æ¬¡ã®æ§é ã®ã¢ããªã±ãŒã·ã§ã³äŸãèŠãŠã¿ãŸãããã
$ããªãŒãã€ãããžã§ã¯ã/ |
ãã¡ã€ã«ã®å 容㯠ããã«ãããŸãã Compose ãã¡ã€ã«ã§ã¯ã次ã®ããã« 2 ã€ã®ãµãŒãã¹ã®ã¿ãå®çŸ©ããŸãã
$ cat compose.yaml |
ãã®ãã¡ã€ã«ã Docker ãšã³ãžã³ã«ããŒã«ã«ã«ãããã€ããã®ã¯éåžžã«ç°¡åã§ãã
$ docker compose up -d |
ã¢ããªã±ãŒã·ã§ã³ãããŒã«ã«ã§å®è¡ãããŠããããšã確èªããŸãã
$ ããã«ãŒ ps |
ããã³ããšã³ããç §äŒããŸãã
$ã«ãŒã«ããŒã«ã«ãã¹ã:80 |
ã¢ããªã±ãŒã·ã§ã³ãåé€ããã«ã¯:
$ ããã«ãŒ äœæ² ããŠã³ |
ãã®ã¢ããªã±ãŒã·ã§ã³ã ECS ã«ãããã€ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã³ããšã³ããšããã¯ãšã³ãã®ã€ã¡ãŒãžã Docker Hub ãªã©ã®ãããªã㯠ã€ã¡ãŒãž ã¬ãžã¹ããªã«æ ŒçŽããå¿ èŠããããŸãã ããã«ãããã©ãããã§ãç»åããã«ã§ããŸãã
ã€ã¡ãŒãžã Docker Hub ã«ã¢ããããŒãããã«ã¯ã次ã®ããã«äœæãã¡ã€ã«ã«ã€ã¡ãŒãžåãèšå®ããŸãã
$ cat compose.yamlservices: |
Docker Compose ã䜿çšããŠã€ã¡ãŒãžããã«ãããŸãã
$ ããã«ãŒäœæãã«ã |
ãã«ãåºåã§ã¯ãComposeãã¡ã€ã«ã®ç»åãã£ãŒã«ãã«åŸã£ãŠç»åã«ååãä»ããããã¿ã°ä»ããããŠããããšãããããŸãã
ã€ã¡ãŒãžã Docker Hub ã«ããã·ã¥ããåã«ããã°ã€ã³ããŠããããšã確èªããŠãã ããã
$ ããã«ãŒãã°ã€ã³ |
ç»åãããã·ã¥ããŸãã
$ docker compose push |
ããã§ãã€ã¡ãŒãžã Docker Hub ã«æ ŒçŽãããŸãã
- ECS ããã«ãŒã³ã³ããã¹ããäœæãã
Docker Compose ã Amazon ECS ãã©ãããã©ãŒã ãã¿ãŒã²ããã«ããã«ã¯ããŸã ECS ã¿ã€ãã® Docker ã³ã³ããã¹ã ãäœæããå¿ èŠããããŸããDocker ã³ã³ããã¹ãã¯ãã³ãã³ããããŸããŸãª Docker ãã¹ããŸãã¯ã¯ã©ãŠã ãã©ãããã©ãŒã ã«ãªãã€ã¬ã¯ãã§ããããã«ããã¡ã«ããºã ã§ããÂ
ãã®æç¹ã§ãECS ãã©ãããã©ãŒã ã§èªèšŒããããã«ããŒã«ã«ç°å¢ã« AWS èªèšŒæ å ±ãèšå®ãããŠããããšãåæãšããŠããŸããÂ
ECS ã³ã³ããã¹ããäœæããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ docker context create ecs myecscontext |
AWS èªèšŒæ å ±ã®ã»ããã¢ãããš AWS ããŒã«ã®äœ¿çšã«é¢ããç¥èã«åºã¥ããŠã3 ã€ã®ã³ã³ããã¹ãèšå®ããéžæããããæ±ããããŸãã AWS èªèšŒæ å ±ã®èšå®ã®è©³çްãã¹ãããããã«ã¯ãç°å¢å€æ°ã䜿çšãããªãã·ã§ã³ãéžæããŸãã
$ docker context create ecs myecscontext |
ããã«ã¯ãAmazon ECS ãã¿ãŒã²ãããšãã Docker ã³ãã³ããå®è¡ãããšãã«ãããŒã«ã«ç°å¢ã§ AWS_ACCESS_KEY ãš AWS_SECRET_KEY ãèšå®ããå¿ èŠããããŸãã
çŸåšäœ¿çšäžã®ã³ã³ããã¹ãã¯ãã³ã³ããã¹ããªã¹ãã®åºåã§*ã§ããŒã¯ãããŸãã
$ ããã«ãŒã³ã³ããã¹ã lsåå ã¿ã€ã 説æ ããã«ãŒãšã³ããã€ã³ã ããã©ã«ã * moby çŸåšã®DOCKER_HOSTããŒã¹ã®æ§æ unix:///var/run/docker.sockmyecscontext ç°å¢ããèªã¿åããã ECS èªèšŒæ
å ± Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â |
åŸç¶ã®ãã¹ãŠã®ã³ãã³ãã Amazon ECS ãã¿ãŒã²ããã«ããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŠãæ°ããäœæãã ECS ã³ã³ããã¹ãã䜿çšäžã®ã³ã³ããã¹ãã«ããŸãã
$ docker context use myecscontext |
-  Amazon ECS ã§äœæã¢ããªã±ãŒã·ã§ã³ãå®è¡ãã
ãããã³ã³ããã¹ããšããŠäœ¿çšãã代ããã«ãECS ã察象ãšãããã¹ãŠã®ã³ãã³ãã«ã³ã³ããã¹ã ãã©ã°ãèšå®ããããšãã§ããŸãã
èŠåïŒ ECSå±éã§çºçããå¯èœæ§ã®ããã³ã¹ããäºåã«ç¢ºèªããŠãã ãã 2ã€ã®ECSãµãŒãã¹ãè² è·åæ£(ALB)ãã¯ã©ãŠãããã(DNS解決)ãªã©ãÂ
次ã®ã³ãã³ãã§ã¯ãECS ã³ã³ããã¹ããçŸåšã®ã³ã³ããã¹ããšããŠäœ¿çšããŸãã ECS ã§ã³ãã³ããå®è¡ããåã«ã ããã¥ã¡ã³ãã§èª¬æãããŠããããã«ãAmazon ã¢ã«ãŠã³ãã®èªèšŒæ å ±ã§ã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹ã管çããããã®ã¢ã¯ã»ã¹æš©ãä»äžãããŠããããšã確èªããŠãã ããã
 ããã§ãã³ãã³ããå®è¡ããŠãECSã«æ£åžžã«ã¢ã¯ã»ã¹ã§ããããšã確èªã§ããŸãã
$ AWS_ACCESS_KEY="*****" AWS_SECRET_KEY="******" docker compose ls |
AWS èªèšŒæ å ±ããšã¯ã¹ããŒãããŠããã¹ãŠã®ã³ãã³ãã«èšå®ããªãããã«ããŸãã
$ ãšã¯ã¹ããŒã AWS_ACCESS_KEY="*****" |
ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ãECSã«ãããã€ãããšãããŒã«ã«ãããã€ãšåãã³ãã³ããå®è¡ã§ããŸãã
$ ããã«ãŒ æ§æãã |
Docker Compose ã¯ãCompose ãã¡ã€ã«ããäžé£ã® AWS ãªãœãŒã¹ãå®çŸ©ãã CloudFormation ãã³ãã¬ãŒãã«å€æããŸãã ãªãœãŒã¹ ãããã³ã°ã®è©³çްã«ã€ããŠã¯ã ããã¥ã¡ã³ããåç §ããŠãã ããã çæããã CloudFormation ãã³ãã¬ãŒãã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ ããã«ãŒäœæå€æ |
ãµãŒãã¹ã®ç¶æ ã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ docker compose ps |
ããŒã«ã«å®è¡ãšåæ§ã«ãã¢ããªã±ãŒã·ã§ã³ã®ããã³ããšã³ããç §äŒã§ããŸãã
$ ã«ãŒã« mypro-LoadB-1ROWIHLNOG5RZ-1172432386.eu-west-3.elb.amazonaws.com:80 |
ECS ã³ã³ãããããã°ãååŸããã«ã¯ããã°ã®äœæã³ãã³ããå®è¡ããŸãã
$ ããã«ãŒäœæãã° |
Compose ã¢ããªã±ãŒã·ã§ã³ãçµäºããAWS ãªãœãŒã¹ãè§£æŸããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ ããã«ãŒ äœæ² ããŠã³ |
Docker ã®ããã¥ã¡ã³ãã«ã¯ãCompose ãã¡ã€ã« ã®äŸ ããµããŒããããŠããæ©èœãECS ã§å®è¡ãããŠãã Compose ã¢ããªã±ãŒã·ã§ã³ã®ãããã€æ¹æ³ãš æŽæ° æ¹æ³ã®è©³çްãªã©ãèšèŒãããŠããŸãã
æ¬¡ã®æ©èœã«ã€ããŠè©³ãã説æããŸãã
- ãã©ã€ããŒãç»åã®äœ¿çš
- ãµãŒãã¹æ€åº
- ããªã¥ãŒã ãš ã·ãŒã¯ã¬ãã ã®å®çŸ©
- èªåã¹ã±ãŒãªã³ã°ãIAM ããŒã« ã è² è·åæ£ã®ããã® AWS åºæã®ãµãŒãã¹ããããã£
- æ¢åã® AWS ãªãœãŒã¹ã®äœ¿çš
æŠèŠ
Compose ã¢ããªã±ãŒã·ã§ã³ã®ããŒã«ã«ãããã€ãã Amazon ECS ã§ã®ãããã€ãžã®ç§»è¡ã«ã€ããŠèª¬æããŸããã Docker Compose ã¯ã©ãŠãæ©èœã®äœ¿ç𿹿³ã瀺ãããã«ãæå°éã®äžè¬çãªäŸã䜿çšããŸããã Compose ãã¡ã€ã«ãæŽæ°ããç¹å®ã® AWS æ©èœã䜿çšããæ¹æ³ãããããçè§£ããããã«ãããã¥ã¡ã³ãã«ã¯ããã«å€ãã®è©³çްãèšèŒãããŠããŸãã
ãªãœãŒã¹ïŒ
- Docker CLI ã«åã蟌ãŸãã Docker Compose
- ECS ãµããŒããžã®äœæ
- ECS åºæã®äœæã®äŸ:
- ECS ãžã® Docker ã³ã³ããã®ãããã€:
- äœæã³ãã³ãã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«äœ¿çšãããµã³ãã«: