ããã«ã¡ã¯ãCSãã¼ã ã®åæ¬ã§ãã
ä»åããååã®ãNginx + WordPress S3ç¯ãã«å¼ãç¶ãããNginx + WordPress ãã¼ããã©ã³ãµã¼ç¯ãã®æ§æã§ã®éç¨ä¸ã®åé¡ç¹ããAWSã®ãµã¼ãã¹ã使ã£ã¦è§£æ¶ãã¦ããããã¨æãã¾ãã
ç»åã®ã¢ãããã¼ãå ã®åé¡ã¯è§£æ±ºãã¾ããããMySQLã®ãã¼ã¿ãã¼ã¹ãµã¼ãã¼ãã¾ã SPOFï¼åä¸é害ç¹ï¼ã¨ãªã£ã¦ãã¾ããEC2ã§ã¤ã³ã¹ã¿ã³ã¹ããã1å°èµ·åãã¦ã¬ããªã±ã¼ã·ã§ã³ç°å¢ãæ§ç¯ãããã¨ãå¯è½ã§ãããä»åã¯AWSã®ãµã¼ãã¹ãAmazon RDSãã使ã£ã¦ãã®åé¡ãç°¡åã«è§£æ±ºãããã¨æãã¾ãã
ç®æ¬¡
- Amazon RDSã¨ã¯ï¼
- Multi-AZã¨ã¯ï¼
- RDSã¤ã³ã¹ã¿ã³ã¹ã®ä½æ
- ãã¼ã¿ãã¼ã¹ã®ããã¯ã¢ããããªã¹ãã¢
- WordPressã®è¨å®å¤æ´
- ã¾ã¨ã
1. Amazon RDSã¨ã¯ï¼
ä»åããã¼ã¿ãã¼ã¹ã¨ãã¦å©ç¨ããAWSã®ãµã¼ãã¹ã¯ãAmazon RDSãã¨ãããèé害æ§ã®é«ããAWSã®ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ãµã¼ãã¹ã§ãã
ãã®ãµã¼ãã¹ã使ããã¨ã§ç°¡åã«MySQLã®ç°å¢ãæ§ç¯ã§ãããMulti-AZãã¨ããè¨å®ããããªãã ãã§ãSPOFã¨ãªãå¿é ããªããªãã¾ãã
ã©ãã ãç°¡åã«æ§ç¯ã§ããã®ãã¯ã以ä¸ã®3. RDSã¤ã³ã¹ã¿ã³ã¹ã®ä½æã§ç¢ºèªãã¦ã¿ã¦ãã ããã
2. Multi-AZã¨ã¯ï¼
Multi-AZã¨ã¯ãç°ãªãAvailability Zoneéã§ã¬ããªã±ã¼ã·ã§ã³ç°å¢ãæ§ç¯ãã¦ãããä»çµã¿ã§ãã
Multi-AZãè¨å®ããã¨ã以ä¸ã®å³ã®ããã«Zone-aã«ãã¹ã¿ã¼ãããå ´åã¯ãZone-bã«ã¹ã¬ã¼ããç½®ãããåæã¬ããªã±ã¼ã·ã§ã³ããããªã£ã¦ããã¾ãã
Zone-aã®ãã¹ã¿ã¼ã§é害ãèµ·ããå ´åã¯ãZone-bã®ã¹ã¬ã¼ãã«æ°åã§åãæ¿ããã¾ãã
â²ç°ãªãAvailability Zoneéã§åæã¬ããªã±ã¼ã·ã§ã³
3. RDSã¤ã³ã¹ã¿ã³ã¹ã®ä½æ
ã§ã¯ãã©ã®ãããç°¡åã«ãèé害æ§ã®é«ããMySQLã®ç°å¢ããæ§ç¯ã§ããã®ãã確èªãã¦ã¿ã¾ãããã
ã¾ããAWS Management Consoleã®RDSã®ç»é¢ãããLaunch DB Instanceããã¿ã³ãæ¼ãã¨ãLaunch DB Instance Wizardã表示ããã¾ãã®ã§ããENGINE SELECTIONãã§ãMySQLãã鏿ãã¦é²ã¿ã¾ãããã
Multi-AZã«ããããã«ã次ã®ãDB INSTANCE DETAILSãã®ãMulti-AZ Deploymentãã§ãYesãã鏿ãã¾ãããã®é¸æã ãã§ãå ã»ã©ã®ã¬ããªã±ã¼ã·ã§ã³ç°å¢ã®è¨å®ãã§ãã¾ãã
ãã¨ã¯ãLaunch DB Instance Wizardã«å¾ã£ã¦ãè¨å®ãã¦ãã ããã
ä»åã®è¨å®ã確èªå¾ããLaunch DB Instanceããã¿ã³ãæ¼ãã¦ãã°ããå¾ ã¦ã°å®äºã§ãããã£ãããã ãã®æé ã§ãèé害æ§ã®é«ããMySQLã®ç°å¢ããæ§ç¯ã§ãã¦ãã¾ãã¾ãã
â²ãMulti-AZ Deploymentãã§ãYesãã鏿
â²ä»åã®è¨å®ã確èªå¾ããLaunch DB Instanceããã¿ã³ãæ¼ãã¦RDSã¤ã³ã¹ã¿ã³ã¹ã使
RDSã¤ã³ã¹ã¿ã³ã¹ã使ã§ããããWebãµã¼ãã¼ããã¢ã¯ã»ã¹ã§ããããã«ã»ãã¥ãªãã£ã°ã«ã¼ãã®è¨å®ããããªãã¾ãã
ãã¡ãã¯ãç¾å¨ä½¿ç¨ãã¦ããWebãµã¼ãã¼ã®ã»ãã¥ãªãã£ã°ã«ã¼ããè¨å®ãã¾ãããConnection Typeãã§ãEC2 Security Groupãã鏿ããã¨ããã«ãã¦ã³ã¡ãã¥ã¼ã§EC2ã®ã»ãã¥ãªãã£ã°ã«ã¼ãã鏿ã§ããããã«ãªãã¾ãã®ã§ã鏿ãã¦ãAddããã¿ã³ãæ¼ãã¾ãã
â²è¨å®å¾ãç¾å¨ä½¿ç¨ãã¦ããWebãµã¼ãã¼ã®ã»ãã¥ãªãã£ã°ã«ã¼ããè¨å®ããã¦ããã®ã確èª
4. ãã¼ã¿ãã¼ã¹ã®ããã¯ã¢ããããªã¹ãã¢
RDSã¤ã³ã¹ã¿ã³ã¹ã使ã§ããã®ã§ãä»åº¦ã¯ç¾å¨ã®ãã¼ã¿ãã¼ã¹ãµã¼ãã¼ãããã¼ã¿ãç§»è¡ãã¾ãããã
ç¾å¨ã®ãã¼ã¿ãã¼ã¹ãµã¼ãã¼ã¸æ¥ç¶ãã¦ããã¼ã¿ãã¼ã¹ã®ãã³ããã¡ã¤ã«ã使ãããããRDSã¤ã³ã¹ã¿ã³ã¹ã«ãªã¹ãã¢ãã¾ãã
mysqldump -u root -p blog > blog.sql mysql -h wordpress.xxxxxxxxxxxx.ap-southeast-1.rds.amazonaws.com -u sakamoto -p blog < blog.sql
â»æ¥ç¶å ã¯ãAWS Management Consoleã§ç¢ºèªã§ãã¾ãã確èªãããRDSã¤ã³ã¹ã¿ã³ã¹ããã§ãã¯ãã¦ãDescriptionãã¿ãã鏿ããEndpointã確èªãã¦ãã ããã
Endpoint: wordpress.xxxxxxxxxxxx.ap-southeast-1.rds.amazonaws.com
â»MySQLããRDSã¸ã®ãã¼ã¿ã®ç§»è¡ã«é¢ãã¦ã¯ã以ä¸ã®è¨äºã§ã触ãããã¦ãã¾ãã
æ¢åã®MySQLãµã¼ãããRDSã¤ã³ã¹ã¿ã³ã¹ã¸ã®ç§»è¡ããã¹ããã
5. WordPressã®è¨å®å¤æ´
æå¾ã«ãWordPressã®wp-config.phpã®ãã¼ã¿ãã¼ã¹ã®æ å ±ã夿´ãã¾ãããã
ä»åã®ç°å¢ã§ã®ä½æ¥æé ã¨ãã¦ã¯ããã¼ããã©ã³ãµã¼ã®å¾ãã§Webãµã¼ãã¼ã3å°ç¨¼åãã¦ãã¾ãã®ã§ãã¾ãã©ãã1å°ããã¼ããã©ã³ãµã¼ã®åæ£å ãã䏿¦ã¯ããããã®ãµã¼ãã¼ã§è¨å®å¤æ´ããããªãã¾ãã
define('DB_NAME', 'blog'); /** MySQL ãã¼ã¿ãã¼ã¹ã®ã¦ã¼ã¶ã¼å */ define('DB_USER', 'sakamoto'); /** MySQL ãã¼ã¿ãã¼ã¹ã®ãã¹ã¯ã¼ã */ define('DB_PASSWORD', '*********'); /** MySQL ã®ãã¹ãå */ define('DB_HOST', 'wordpress.xxxxxxxxxxxx.ap-southeast-1.rds.amazonaws.com');
è¨å®å¾ã¯ããã®ãµã¼ãã¼ã®AMIã使ãã¾ãã
â²54.XXX.XXX.41ã忣å
ããã¯ããã¦ãè¨å®å¤æ´å¾AMIã使
ãã®å¾ãè¨å®æ¸ã¿ã®1å°ããã¼ããã©ã³ãµã¼ã®åæ£å ã«æ»ããæªè¨å®ã®2å°ã¯åæ£å ããã¯ããã¾ãããã®2å°ã¨å ã®MySQLã®ãã¼ã¿ãã¼ã¹ãµã¼ãã¼ã¯ã¯ã¿ã¼ããã¤ããã¾ãããã
â²54.XXX.XXX.41ã忣å
ã«æ»ããä¸ç¨ã«ãªã£ããµã¼ãã¼ã¯ã¿ã¼ããã¤ã
å ã»ã©ä½æããAMIãã2å°ã®ã¤ã³ã¹ã¿ã³ã¹ãèµ·åããEIPãå²ãå½ã¦ç´ãã¦ãã¾ããã¼ããã©ã³ãµã¼ã®åæ£å ã«æ»ãã¾ãããã
upstream backend { server 54.XXX.XXX.41; server 54.XXX.XXX.42; server 54.XXX.XXX.43; }
â²AMIãã2å°èµ·åå¾ãEIPãå²ãå½ã¦ç´ãã¦ãã¼ããã©ã³ãµã¼ã®åæ£å
ã«æ»ã
ããã§ãRDSã¸ã®ç§»è¡ãå ¨ã¦å®äºãã¾ããã
6. ã¾ã¨ã
Webãµã¼ãã¼ãè² è·åæ£ããå ´åã®ããã¼ã¿ãã¼ã¹ãµã¼ãã¼ã®SPOFã®åé¡ãRDSã使ã£ã¦ç°¡åã«è§£æ¶ãããã¨ãã§ãã¾ããã
ä»åã¯ãã¹ãç°å¢ã§ãã®ã§è¨å®ãã¦ãã¾ããããRDSã§ã¯èªåããã¯ã¢ããã®è¨å®ãã§ãã¾ãã®ã§ãå¿ è¦ã«å¿ãã¦è¨å®ãã¦ããã¾ããããããã©ã«ãã®1æ¥ã®ä¿ææéã§å©ç¨ããéãã¯ãããã¯ã¢ããã«è¿½å æéã¯ããããªãããã§ãã
â»ã¨ã¦ãç°¡åã«è¨å®ã§ãã¦ãã¾ãMulti-AZã§ãããæéã¯1å°æ§æã®ã¨ãã®2åã«ãªãã¾ãã®ã§ãå©ç¨ã®éã¯ãæ°ãã¤ããã ããâ¦ã
次åã¯ãç¾ç¶ã®æ§æã§SPOFã¨ãªã£ã¦ããNginxã®ãã¼ããã©ã³ãµã¼ãAWSã®ãµã¼ãã¹ã使ã£ã¦ã«ã¤ã¼ã³ãããã¨æãã¾ãã