å æ¥ãå®éã«èªåã®ããã°ãç«ã¡äžããã®ãã©ãã»ã©é£ããã®ãèå³ããããŸããããã³ã³ããã§ãããè¡ãã®ãã©ãã»ã©ç°¡åãã«èå³ããããŸããã ããªãã®ããã«ããã°ããã¹ããããã©ãããã©ãŒã ã¯ãããããããŸãããèªåã§ããã°ãå®è¡ããã®ã¯æ¬åœã«ç°¡åã§ãã?
éå§ããã«ã¯ãDocker ID ã«ãµã€ã³ã¢ããããããæ¢åã® Docker ID ã䜿çšããŠãæ°ãã Compose on ECS ãšã¯ã¹ããªãšã³ã¹ãå«ãææ°ããŒãžã§ã³ã® Docker Desktop Edge ãããŠã³ããŒãããŸããÂ
å°å ã®çµéšããå§ãã
ãŸããèªåã®ãã·ã³ã«ããŒã«ã«ã®WordPressã€ã³ã¹ã¿ã³ã¹ãã»ããã¢ããããçŽ æŽãããã³ã³ããŒãºãªããžããªããäœæãã¡ã€ã«ã®äŸãååŸããŸãã
åœåãç§ã¯ãããDocker Composeã§ããŒã«ã«ã§å®è¡ããããšã«ææŠããŸããã
$ docker-compose up -d
次ã«ãå®è¡äžã®ã³ã³ããã®ãªã¹ããååŸã§ããŸãã
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------
deploywptocloud_db_1 docker-entrypoint.sh --def ... Up 3306/tcp, 33060/tcp
deploywptocloud_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:80->80/tcp
ãããŠæåŸã«ããããæ£ããå®è¡ãããŠããããšã確èªããŸããã 
ã¯ã©ãŠããžã®ãããã€
ãããïŒæ¬¡ã«ãComposeãã¡ã€ã«ã®å 容ã調ã¹ãŠãã¯ã©ãŠãã«ç§»è¡ãããšãã«äœã倿Žããããçè§£ããå¿ èŠããããŸããã
ããã¯ãDocker CLIã®æ°ããDocker ECSçµ±åã䜿çšããŠãAWSã®Elastic Container Serviceã§å®è¡ããŸãã ããã¯ãåŸæ¥ã®docker-composeã³ãã³ãã§ã¯ãªããããã€ãã®æ°ããdocker ecs composeã³ãã³ãã䜿çšããŠå®è¡ããããšãæå³ããŸãã(å°æ¥çã«ã¯ã©ãã«ã§ãç§»åããŸã docker compose !
version: '3.7'
services:
db:
image: mysql:8.0.19
command: '--default-authentication-plugin=mysql_native_password'
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=somewordpress
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress
wordpress:
image: wordpress:latest
ports:
- 80:80
restart: always
environment:
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=wordpress
- WORDPRESS_DB_NAME=wordpress
volumes:
db_data:
éåžžãããã§ã¯DBãã¹ã¯ãŒããã·ãŒã¯ã¬ããã«ç§»åããŸããã ECS çµ±åã§ã¯ãŸã ã·ãŒã¯ã¬ããã®ãµããŒããæäŸãããŠããªããããä»ã®ãšããã·ãŒã¯ã¬ãããComposeãã¡ã€ã«ã«ä¿æããŸãã
次ã®ã¹ãããã¯ãAWSã§ãããã©ã®ããã«å®è¡ããããæ€èšããããšã§ã, ç¶è¡ããã«ã¯ã AWSã¢ã«ãŠã³ããèšå®ããå¿ èŠããããŸã.Â
ããŒã¿ããŒã¹ã»ãµãŒãã¹ã®éžæ
çŸåšãDocker ã§ã® ECS ã®äœæãµããŒãã¯ããªã¥ãŒã ããµããŒãããŠããªããã ( ãã¡ãã®ããŒããããã«æç¥šããŠãã ãã)ã代ããã«äœ¿çšããããŒã¿ããŒã¹ ãµãŒãã¹ãéžæããããšããå§ãããŸãã ãã®äŸã§ã¯ãRDS ãéžæããŸããããÂ
ãŸããAWS ã³ã³ãœãŒã«ãéããRDS ã€ã³ã¹ã¿ã³ã¹ãããããžã§ãã³ã°ããŸãã

ããã§ã¯RDSã»ã¯ã·ã§ã³ã«å ¥ããããŒã«ã«ã§äœ¿çšããŠãããã®ãšäžèŽããMySQLã€ã³ã¹ã¿ã³ã¹ã¿ã€ããéžæããDBã®æäžäœå±€ãéžæããŸããÂ
DBã®è©³çްãå
¥åããComposeãã¡ã€ã«ã«å«ãããã¹ã¯ãŒããã¡ã¢ããŸãã
ããŠãä»åºŠã¯äœæãã¡ã€ã«ãæŽæ°ããŠãããŒã«ã«MYSQLã䜿çšããã代ããã«RDSã€ã³ã¹ã¿ã³ã¹ã䜿çšããå¿ èŠããããŸãã ãã®ããã«ã䜿çšãããprodãäœæãã¡ã€ã«ãäœæããŸãããRDSããDBãã¹ãåãååŸããå¿ èŠããããŸããÂ

äœæãã¡ã€ã«ã®é©å¿
ã³ã³ããã§å®è¡ãããŠããDBãåé€ããç°å¢æ å ±ã远å ããããšã§ãäœæãã¡ã€ã«ãæŽæ°ã§ããããã«ãªããŸãããÂ
version: '3.7'
services:
wordpress:
image: wordpress:latest
ports:
- 80:80
restart: always
environment:
WORDPRESS_DB_HOST: wordpressdbecs.c1unvilqlnyq.eu-west-3.rds.amazonaws.com:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress123
WORDPRESS_DB_NAME: wordpressdbecs
ç§ãã¡ãèŠãããšãã§ããã®ã¯ãæåã§äœæãããRDSã€ã³ã¹ã¿ã³ã¹ã«äŸåããŠãããããComposeãã¡ã€ã«ãã¯ããã«å°ãããªã£ãŠããããšã§ãã ç§ãã¡ã¯åäžã®ãµãŒãã¹(ãã¯ãŒããã¬ã¹ã)ããæã£ãŠãããããã以äžã®ãdbããµãŒãã¹ã¯å¿ èŠãããŸãããÂ
ecs ã³ã³ããã¹ãã®äœæãšãããã€
ãã¹ãŠã®ããŒãããããã€ããæºåãã§ããã®ã§ãæ¬¡ã®æé ã«åŸã£ãŠECSã³ã³ããã¹ããèšå®ããããšããå§ããŸãÂ
- 次ã®ã³ãã³ããå®è¡ããŠãæ°ãã ECS ã³ã³ããã¹ããäœæããŸãã
docker ecs setup
- ã³ã³ããã¹ãã«ååãä»ããããã«æ±ããããŸãããEnterããŒãæŒããŠã³ã³ããã¹ãã«ååãä»ããŸã
ecs - 次ã«ãAWSãããã¡ã€ã«ãéžæããããã«æ±ããããŸãããAWSæ¡åŒµæ©èœããŸã ã€ã³ã¹ããŒã«ããŠããªããããæ°ãããããã¡ã€ã«ãéžæããŠãmyecsprofileããšããååãä»ããŸãã
- 次ã«ãå°åãéžæããå¿
èŠããããŸããç§ã¯ãšãŒãããã«æ ç¹ã眮ããŠããã®ã§ãå
¥åããŸã
eu-west-3(以åã«DBããããã€ããã®ãšåãå°åã§ãããè¡ãããã«ããŠãã ãã! - ããã§ãããã«AWSã¢ã¯ã»ã¹ããŒãå ¥åãããããã§ã« AWS ãªã¯ã¿ãAWS CLIãªã©ã䜿çšããŠããå Žåã¯ãããã§Nãšèšã£ãŠæ¢åã®èªèšŒæ å ±ã䜿çšããå¿ èŠããããŸã
- ããããã¹ãŠãå®äºããŠãããæ°ããARN圢åŒã«ç§»è¡ã(AmazonãªãœãŒã¹å)ããå¿
èŠããããšãããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããå ŽåããããŸãã 詳现ã«ã€ããŠã¯ããã¡ãã®Amazon ããã°æçš¿ãã芧ãã ããã
倿Žãå®äºããã«ã¯ã AWS ã¢ã«ãŠã³ãã®ã³ã³ãœãŒã« èšå®ã«ç§»åãããªããã€ã³ããæå¹ãç¶æ ã«ç§»åããŠãããèšå®ãä¿åããå¿ èŠããããŸãã
- 次ã«ãã䜿çšããŠäœ¿çšå¯èœãªã³ã³ããã¹ããäžèŠ§è¡šç€ºããããšã«ãããECSã³ã³ããã¹ããæ£åžžã«äœæãããããšã確èªããŸãããã
docker context ls - ããã§ãæ°ãã ECS ã³ã³ããã¹ãã䜿çšããŠãããã€ã§ããããã«ãªããŸããã ECSã³ã³ããã¹ããçŸåšã®çŠç¹ãšããŠèšå®ããå¿
èŠããããŸãã
docker context use ecs
- 次ã«ãæ°èŠäœæã³ãã³ãã䜿çšããŠãäœæã¢ããªã±ãŒã·ã§ã³ãECSã«ãããã€ããããšãã§ããŸãã
docker ecs compose upÂ
- ãããå®äºãããšãWordPressã®ãã°ããã§ãã¯ããŠããã¹ãŠãæ£ããæ©èœããŠããããšã確èªã§ããŸãã
docker ecs compose logsÂ
- WordPressã€ã³ã¹ã¿ã³ã¹ãDBã«ã¢ã¯ã»ã¹ã§ããªãããã§ãããAmazon Webã³ã³ãœãŒã«ã«æ»ããæŠèŠããŒãžã®[倿Ž]ãã¿ã³ã䜿çšããŠDBèšå®ã確èªãããšãã»ãã¥ãªãã£ã°ã«ãŒãã§WordPressãããã€ã¡ã³ããå«ãŸããŠããªãããšãããããŸãããã©ã«ãã®ã°ã«ãŒãã®ã¿ã¯æ¬¡ã®ãšããã§ãã

ã³ã³ãããããžã§ã¯ãåã衚瀺ãããã¯ãã§ã(ãã®ããã°æçš¿ãæ°åæºåããŠããããã«ããã€ããããŸã! ãã®ã°ã«ãŒããåããããžã§ã¯ãåã§è¿œå ãã倿Žãä¿åããŠããã«é©çšã§ããŸããÂ
ecs ã³ã³ããã¹ãã®äœæãšãããã€
ä»ç§ã¯å®è¡ããŸã:ããã«ãŒecsã¯psãäœæããŸã

ã³ãã³ãåºåãããããŒããå«ãå®å šãªURLãååŸããWebãã©ãŠã¶ã䜿çšããŠã¯ã©ãŠãã«æ°ãããããã€ããããµã€ãã«ç§»åã§ããŸããÂ

ãããïŒããã§ãããŒã«ã«ã§äœæ¥ã§ãããã¡ã€ã«ãšãRDSã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠã¯ã©ãŠãã§ãããå®è¡ã§ãããã¡ã€ã«ã®2ã€ã®äœæãã¡ã€ã«ãã§ããŸãããÂ
ãªãœãŒã¹ã®ã¯ãªãŒãã³ã°
Docker compose ã䜿çšããããã« Web ãµã€ããå®è¡ãç¶ããããªã (ãããŠæ¯æããç¶ããããªã) å Žåã¯ãå®äºããããRDS ã€ã³ã¹ã¿ã³ã¹ãåé€ããããšããå§ãããŸãã
çµè«
ããã§ãæ°žç¶çãªç¶æ ã§ããŒã«ã«ãŸãã¯ã¯ã©ãŠãã«å±éã§ããWordPressã€ã³ã¹ã¿ã³ã¹ãã§ããŸããã
éå§ããã«ã¯ãDocker Desktopã®ææ°ã®EdgeããŒãžã§ã³ãå¿ èŠã§ãããããããŒãããè¡ãå Žåã¯ã WordPressã®å ¬åŒ ã€ã¡ãŒãžããå§ããããHubäžã®ä»ã® å ¬åŒã€ã¡ãŒãž ã®1ã€ã§ããã詊ãããšãã§ããŸãã ãŸããECS ã€ã³ã¹ã¿ã³ã¹ã§ããŒã«ã«ã«äœæãããã®ãå®è¡ããå Žåã¯ãæåã« Docker Hub ã«ä¿åããŠããå¿ èŠããããŸãã Hubã§ã³ã³ãã³ãã®å ±æãéå§ããã«ã¯ãHubã®ã¹ã¿ãŒãã¬ã€ããã芧ãã ããã