æ¬è¨äºã¯ ãã¤ã°ã¬ã¼ã·ã§ã³ã¦ã£ã¼ã¯ 4æ¥ç®ã®è¨äºã§ãã
ð»ð¥ 3æ¥ç® â¶â¶ æ¬è¨äº â¶â¶ 5æ¥ç® ð¥ð»

- ã¯ããã«
- AWS Database Migration Serviceã¨ã¯
- AWS DMSã§ãã¼ã¿ç§»è¡ããã£ã¦ã¿ã
- ãããã«
ã¯ããã«
ããã«ã¡ã¯ãã¤ã³ãã©ã¨ã³ã¸ãã¢ã®äºååµã§ãã
ãã¤ã°ã¬ã¼ã·ã§ã³ã¦ã£ã¼ã¯4æ¥ç®ã®ä»åã¯ãAWSãæä¾ãããã¼ã¿ãã¼ã¹ç§»è¡ãµã¼ãã¹ãAWS Database Migration Serviceãã®æ¦è¦ã®èª¬æã¨ãç°¡åãªç§»è¡æ¤è¨¼ãè¡ãããã¨æãã¾ãã
ãã¼ã¿ãã¼ã¹ã®ç§»è¡ãæ¤è¨ããã¦ããæ¹ãæ¬ãµã¼ãã¹ã®æ¦è¦ããã£ããçè§£ãããã¨ããæ¹ã®åèæ å ±ã«ãªãã°å¹¸ãã§ãã
AWS Database Migration Serviceã¨ã¯
AWS Database Migration Serviceï¼ä»¥éAWS DMSï¼ã¯ããã¼ã¿ãã¼ã¹ã®ç§»è¡ãæ¯æ´ããAWSãµã¼ãã¹ã§ãã
AWS DMSã®ç¹å¾´
ç¹å¾´ã¯ä»¥ä¸ã®éãã§ãã
- ç°ãªããã¼ã¿ãã¼ã¹ã¨ã³ã¸ã³éã§ã®ãã¼ã¿ç§»è¡ã«å¯¾å¿ï¼RDBMSãNoSQLããã¼ã¿ã¦ã§ã¢ãã¦ã¹ãªã©ï¼
- æ§ã ãªç°å¢ä¸ã®ãã¼ã¿ãã¼ã¹ã«å¯¾å¿ï¼ãªã³ãã¬ãã¹ç°å¢ãä»ã¯ã©ã¦ãç°å¢ãå¯ï¼
- ãã¼ã¿ãã¼ã¹ã稼åãããç¶æ ã§ã®ãã¼ã¿ç§»è¡ã«å¯¾å¿ããç§»è¡æã®ãã¦ã³ã¿ã¤ã ãæå°éã«æãããã
- æ¢åãã¼ã¿ã®ç§»è¡ã«å ããç§»è¡ä¸ã«çºçãã夿´ãç¶ç¶çã«åæãããã¨ãå¯è½
AWS DMSãæ§æããã³ã³ãã¼ãã³ã
主ã«3ã¤ã®ã³ã³ãã¼ãã³ãã§æ§æããã¦ãã¾ãã

1. ã¨ã³ããã¤ã³ã
- ç§»è¡å ï¼ã½ã¼ã¹ï¼ãç§»è¡å ï¼ã¿ã¼ã²ããï¼ã¨ãªããã¼ã¿ãã¼ã¹ã®æ¥ç¶æ å ±ãå®ç¾©ãããã®
2. ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹
- ç§»è¡ã¿ã¹ã¯ã«å®ç¾©ãããå¦çã«å¾ããã¼ã¿ç§»è¡ãè¡ãã¤ã³ã¹ã¿ã³ã¹
- 宿 ã¯EC2ã¤ã³ã¹ã¿ã³ã¹ã§Tç³»ã»Cç³»ã»Rç³»ã¤ã³ã¹ã¿ã³ã¹ã¾ãã¯ãµã¼ãã¬ã¹ãã鏿å¯è½
- ãã«ãAZã«ããåé·æ§æã鏿å¯è½
3. ãã¼ã¿ç§»è¡ã¿ã¹ã¯
- ã©ã®ãããªæ¡ä»¶ã§ãã¼ã¿ç§»è¡ãè¡ãããå®ç¾©ãããã®
- 以ä¸ã®ç§»è¡ã¿ã¤ããã鏿ãããã¨ãã§ããç¹å®ã®ãã¼ãã«ã®ã¿ãç§»è¡å¯¾è±¡ã¨ãããããªæ¡ä»¶æå®ãå¯è½
- ç§»è¡å ã®æ¢åãã¼ã¿ãç§»è¡ï¼ãã«ãã¼ãï¼
- ç§»è¡å ã§çºçããæ´æ°ãã¼ã¿ã®ã¿ãç¶ç¶çã«ç§»è¡ï¼CDCï¼
- ä¸è¨ã©ã¡ããï¼ãã«ãã¼ãï¼CDCï¼
AWS DMSã®ãã¼ã¿ç§»è¡æ¹å¼
AWS DMSã¯ãè«çã¬ããªã±ã¼ã·ã§ã³ãã¨å¼ã°ããæ¹å¼ã§ãã¼ã¿ç§»è¡ãè¡ãã¾ããããã¯ç§»è¡å
ãã¼ã¿ãã¼ã¹ã§çºçãã夿´å
容ï¼ãã©ã³ã¶ã¯ã·ã§ã³ãã°ï¼ããç§»è¡å
ãã¼ã¿ãã¼ã¹ã«åãããSQLã«å¤æãã¦é£æºããæ¹æ³ã§ãã

ãã®ãããªãè«çã¬ããªã±ã¼ã·ã§ã³ãæ¹å¼ã§ãããã¨ãããAWS DMSã¯æ§ã
ãªãã¼ã¿ãã¼ã¹ã¨ã³ã¸ã³ã§ã®ãã¼ã¿ç§»è¡ã«å¯¾å¿ãã¦ãã¾ãã
ãã ããAWS DMSã§ãç§»è¡å¯¾è±¡å¤ã¨ãªããã¼ã¿ãããã¾ããä¾ãã°ãã»ã«ã³ããªã¤ã³ããã¯ã¹ãã¹ãã¢ãããã·ã¼ã¸ã£ãªã©ãä¸é¨ã®ãã¼ã¿ãã¼ã¹ãªãã¸ã§ã¯ãã¯èªåçã«ç§»è¡ãããªãå ´åããããããäºåæ¤è¨¼ã¯å¿
ãè¡ãããã«ãã¾ãããã
対å¿ãã¦ããç§»è¡å¯¾è±¡ã«ã¤ãã¦ã¯ãAWS re:Postã«è©³ç´°ãè¨è¼ããã¦ãã¾ãã
repost.aws
AWS DMSã§ãã¼ã¿ç§»è¡ããã£ã¦ã¿ã
ã§ã¯å®éã«ãã¼ã¿ãã¼ã¹ã®ãã¼ã¿ç§»è¡ãæ¤è¨¼ãã¦ã¿ã¾ãã
â»ä»åã¯åºæ¬çãªæ©è½ã¨ä½¿ç¨æ¹æ³ã®è§£èª¬ãã¡ã¤ã³ã¨ãã¦ãããããä¸é¨ã®æé ã¯è©³ç´°ã«è¨è¼ãã¦ãã¾ããã
æ¤è¨¼å 容
EC2ã¤ã³ã¹ã¿ã³ã¹ä¸ã§ç¨¼åããMySQLãã¼ã¿ãã¼ã¹ããAurora MySQLã¸ãAWS DMSã§ãã¼ã¿ç§»è¡ãè¡ãã¾ãã
ã¾ããã¼ã¿ç§»è¡æ¡ä»¶ã¨ãã¦ãç¹å®ã®ãã¼ãã«ã®ã¿ç§»è¡ãè¡ãè¨å®ã¨ããæ³å®éãã®ãã¼ã¿ç§»è¡ãã§ãã¦ãããã確èªãã¾ãã
以ä¸ãå
¨ä½æ§æã§ãã

1. ãã¼ã¿ãã¼ã¹ç°å¢ã®æºå
ãã¼ã¿ç§»è¡ã®æºå使¥ã¨ãã¦ãç§»è¡å
ï¼ã½ã¼ã¹ï¼ã¨ãªãEC2ã¤ã³ã¹ã¿ã³ã¹ãç§»è¡å
ï¼ã¿ã¼ã²ããï¼ã¨ãªãAuroraã¤ã³ã¹ã¿ã³ã¹ã使ãã¦ããã¾ãã以ä¸ã®èµ¤æ ç®æã§ãã

1.1 ç§»è¡å ï¼ã½ã¼ã¹ï¼ç°å¢ã®ä½æ
- EC2ã¤ã³ã¹ã¿ã³ã¹ã®ä½æ
- MySQLã®ã¤ã³ã¹ãã¼ã«ã¨ã»ããã¢ããï¼DMSç¨ã¦ã¼ã¶ã®ä½æã¨ã¢ã¯ã»ã¹è¨±å¯ çï¼
- ãµã³ãã«ãã¼ã¿ãMySQLã¸ã¤ã³ãã¼ãï¼ä»åã¯MySQLå
¬å¼ã®ãµã³ãã«ãã¼ã¿ãã¼ã¹ãworld databaseããå©ç¨ãã¾ãï¼
- ãã¼ã¿ãã¼ã¹ãworldãã«ä½æããã¦ãããã¼ãã«ã¯ä»¥ä¸ã®éãã§ã
- ä»åã®æ¤è¨¼ã§ã¯ãcityãã¼ãã«ãcountryãã¼ãã«ãã®ã¿ãç§»è¡ããæ¡ä»¶ã§è¨å®ãã¾ã
mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | #âç§»è¡å¯¾è±¡ | country | #âç§»è¡å¯¾è±¡ | countrylanguage | +-----------------+ 3 rows in set (0.00 sec) mysql>
1.2 ç§»è¡å ï¼ã¿ã¼ã²ããï¼ç°å¢ã®ä½æ
- Auroraã¤ã³ã¹ã¿ã³ã¹ã®ä½æ
- 使ã®ã¿ã¨ãªãã¾ã
1.3 ã»ãã¥ãªãã£ã°ã«ã¼ãã®è¨å®
- DMSã®ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ããåãã¼ã¿ãã¼ã¹ã¸ã3306ãã¼ãã§æ¥ç¶ãããããEC2ã¤ã³ã¹ã¿ã³ã¹ã¨Auroraã¤ã³ã¹ã¿ã³ã¹ã®ã»ãã¥ãªãã£ã°ã«ã¼ãã«è¨±å¯è¨å®ã追å ãã¦ããã¾ã
- ä»åã¯ãå¾ã»ã©ä½æããDMSã®ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã«è¨å®ããã»ãã¥ãªãã£ã°ã«ã¼ãããã®æ¥ç¶ã許å¯ãã¾ã
2. AWS DMSã®æºå
å
ã»ã©èª¬æããåã³ã³ãã¼ãã³ãã使ãã¦ããã¾ãã以ä¸ã®èµ¤æ ç®æã§ãã

2.1 ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã®ä½æ
äºå使¥ã¨ãã¦ãã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã使ãããµããããã°ã«ã¼ãã使ãã¾ãã
- å ã»ã©ä½æãããã¼ã¿ãã¼ã¹ç°å¢ã¨åãVPCã®ãã©ã¤ãã¼ããµããããä¸ã«æ§ç¯ãã¾ã
| è¨å®é ç® | è¨å®å¤ |
|---|---|
| VPC | EC2ã¤ã³ã¹ã¿ã³ã¹ã¨Auroraã¤ã³ã¹ã¿ã³ã¹ã¨åãVPC |
| ãµãããã | EC2ã¤ã³ã¹ã¿ã³ã¹ã¨Auroraã¤ã³ã¹ã¿ã³ã¹ã¨åããµãããã |
ç¶ãã¦ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã使ãã¾ãã
- ä»åã¯æ¤è¨¼ãªã®ã§æå°æ§æã¨ãã¾ã
| è¨å®é ç® | è¨å®å¤ |
|---|---|
| ã¤ã³ã¹ã¿ã³ã¹ã¯ã©ã¹ | dms.t3.micro |
| ãã«ãAZãªãã·ã§ã³ | ã·ã³ã°ã« AZ |
| ã¬ããªã±ã¼ã·ã§ã³ãµããããã°ã«ã¼ã | å ã»ã©ä½æãããµããããã°ã«ã¼ã |
| VPCã»ãã¥ãªãã£ã°ã«ã¼ã | 1.3ã§è¨±å¯ããã»ãã¥ãªãã£ã°ã«ã¼ã |
| ãããªãã¯ã¢ã¯ã»ã¹å¯è½ | 鏿ããªã |
使ã§ãã¾ããã

2.2 ã¨ã³ããã¤ã³ãã®ä½æã¨çéãã¹ã
以ä¸ã®å 容ã§åã¨ã³ããã¤ã³ãã使ãã¾ãã
| è¨å®é ç® | ã½ã¼ã¹ã¨ã³ããã¤ã³ã | ã¿ã¼ã²ããã¨ã³ããã¤ã³ã |
|---|---|---|
| ã¨ã³ããã¤ã³ãã¿ã¤ã | ã½ã¼ã¹ã¨ã³ããã¤ã³ã | ã¿ã¼ã²ããã¨ã³ããã¤ã³ã |
| RDSã¤ã³ã¹ã¿ã³ã¹ã®é¸æ | - | ãã§ãã¯ããã§ä½ææ¸ã¿ã®Auroraã¤ã³ã¹ã¿ã³ã¹ã鏿 |
| ãã¼ã¿ãã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ | æå | æå |
| ãµã¼ãå | EC2ã¤ã³ã¹ã¿ã³ã¹ã®ãã¼ã«ã«IP | Auroraã®ã¯ã©ã¹ã¿ã¼ã¨ã³ããã¤ã³ã |
| ãã¼ã | 3306 | 3306 |
| ã¦ã¼ã¶ã»ãã¹ã¯ã¼ã | æåã§å ¥å | æåã§å ¥å |
使ã§ãã¾ããã

- ã¨ã³ããã¤ã³ãã使ããã¨ãå
ã»ã©ä½æããã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ããæ¥ç¶ãã¹ãã宿½ã§ãããããæ£å¸¸ã«æ¥ç¶ã§ãããã¨ã確èªãã¾ã
- ã½ã¼ã¹ã¨ã³ããã¤ã³ã

- ã¿ã¼ã²ããã¨ã³ããã¤ã³ã

- ã½ã¼ã¹ã¨ã³ããã¤ã³ã
2.3 ãã¼ã¿ç§»è¡ã¿ã¹ã¯ã®ä½æ
以ä¸ã®å 容ã§ç§»è¡ã¿ã¹ã¯ã使ãã¾ãã
- å¾ã»ã©æå®ãã該å½ã®ãã¼ãã«ã®æ¢åãã¼ã¿ã®ã¿ãç§»è¡
- ãã¼ã¿ç§»è¡å¾ãã½ã¼ã¹ã¨ã¿ã¼ã²ããã®ãã¼ã¿ã確èªããããããã¼ã¿æ¤è¨¼ããæå¹
- ã¿ã¹ã¯è¨å®
| è¨å®é ç® | è¨å®å¤ |
|---|---|
| ã¬ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ | 2.2ã§ä½æãããã®ãæå® |
| ã¨ã³ããã¤ã³ã | 1.1ã1.2ã§ä½æãããã®ãæå® |
| ç§»è¡ã¿ã¤ã | æ¢åã®ãã¼ã¿ãç§»è¡ããï¼ãã«ãã¼ãï¼ |
| ãã¼ã¿æ¤è¨¼ | æ¤è¨¼ï¼ãã¼ã¿ç§»è¡ããï¼ |
- cityãã¼ãã«ãcountryãã¼ãã«ã®æ¢åãã¼ã¿ã®ã¿ãç§»è¡å¯¾è±¡ã¨ãã¾ã
- ãã¼ãã«ãããã³ã°
| ã«ã¼ã« | ã½ã¼ã¹å | ã½ã¼ã¹ãã¼ãã«å | ã¢ã¯ã·ã§ã³ |
|---|---|---|---|
| 鏿ã«ã¼ã« | world | city | å«ãï¼includeï¼ |
| 鏿ã«ã¼ã« | world | country | å«ãï¼includeï¼ |
- ç§»è¡ã¿ã¹ã¯ã¯æåã§å®è¡ãã¾ã
- ç§»è¡ã¿ã¹ã¯ã®ã¹ã¿ã¼ãã¢ããè¨å®
| è¨å®é ç® | è¨å®å¤ |
|---|---|
| ç§»è¡ã¿ã¹ã¯ãéå§ | å¾ã§æåã§è¡ã |
使ã§ãã¾ããã

3. AWS DMSã§ãã¼ã¿ç§»è¡
å¿ è¦ãªæºå使¥ã¯å®äºããã®ã§ãã¼ã¿ç§»è¡ãè¡ãã¾ãã
- ã¢ã¯ã·ã§ã³ãããåèµ·å/åéãã§ã¿ã¹ã¯ãèµ·å

- é²è¡ç¶æ³ã100ï¼ ã«ãªããã¹ãã¼ã¿ã¹ãå®äºã¨ãªãã¾ããï¼ï¼

- ãã«ãã¼ã宿½å¾ã«ãã¼ã¿æ¤è¨¼ãè¡ããããã¼ãã«çµ±è¨ã®ã¿ãããæ¤è¨¼çµæã確èªã§ãã¾ã
- 失æã0ä»¶ã¨ãªã£ã¦ãã¾ããã®ã§åé¡ãªãããã§ã

4. ç§»è¡ãã¼ã¿ã®ç¢ºèª
次ã¯ãã¼ã¿ç§»è¡å
ã¨ãã¦æå®ããAurora MySQLã®ãã¼ã¿ãã¼ã¹ããã¼ãã«ã確èªããç§»è¡ãã§ãã¦ããã確èªãã¾ãã
ã¾ããDMSã®ç§»è¡å¯¾è±¡å¤ã§ããã»ã«ã³ããªã¤ã³ããã¯ã¹ã«ã¤ãã¦ã確èªãã¾ãã
ãã¼ã¿ãã¼ã¹
- ç§»è¡å¯¾è±¡ã®ãã¼ã¿ãã¼ã¹ã§ãããworldãã使ããã¦ããåé¡ãªãããã§ã
mysql> show databases; +--------------------+ | Database | +--------------------+ | awsdms_control | #âæ°ãã«ä½æããã¦ãã | information_schema | | mysql | | performance_schema | | sys | | world | #âæ°ãã«ä½æããã¦ãã +--------------------+ 6 rows in set (0.01 sec) mysql>
- ãawsdms_controlãã追å ããã¦ãã¾ããããã¡ãã¯ãã¼ã¿æ¤è¨¼ã§ãã¼ã¿å·®åãçºçãã¦ããéã«ããã©ãã«ã·ã¥ã¼ãã£ã³ã°ã«å©ç¨ã§ããè©³ç´°ãªæ å ±ãè¨é²ããããã®ãã¼ã¿ãã¼ã¹ã¨ãªãã¾ãï¼ä¸èº«ã確èªããã¨ãã0ä»¶ã§ããï¼
ãã¼ãã«
- ç§»è¡å¯¾è±¡ã®ãã¼ãã«ã§ãããcityãã¼ãã«ãcountryãã¼ãã«ãã®ã¿ã使ããã¦ããåé¡ãªãããã§ã
mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | #âæ°ãã«ä½æããã¦ãã | country | #âæ°ãã«ä½æããã¦ãã +-----------------+ 2 rows in set (0.00 sec) mysql>
- ã¬ã³ã¼ãæ°ãç§»è¡å ã¨åãä»¶æ°ã¨ãªã£ã¦ãã¾ã
mysql> select count(*) from city; +----------+ | count(*) | +----------+ | 4079 | #âç§»è¡å ã¨åãä»¶æ° +----------+ 1 row in set (0.00 sec) mysql> mysql> select count(*) from country; +----------+ | count(*) | +----------+ | 239 | #âç§»è¡å ã¨åãä»¶æ° +----------+ 1 row in set (0.00 sec) mysql>
ã¤ã³ããã¯ã¹
- ãã©ã¤ããªãã¼ã¯ç§»è¡ã§ãã¦ãã¾ãããå ã»ã©è¨è¼ããéãã»ã«ã³ããªã¤ã³ããã¯ã¹ã«ã¤ãã¦ã¯DMSã®ç§»è¡å¯¾è±¡å¤ã¨ãªãããããã¼ã¿ãåå¨ãã¦ãã¾ãã
- ã«ã¼ãã£ããªãã£ã«ã¤ãã¦ãå¤ãã0ãã¨ãªã£ã¦ãããç§»è¡å
ã¨å·®åãã¿ããã¾ãã
- ç§»è¡å ï¼ã½ã¼ã¹ï¼ç°å¢
mysql> show index from city\G *************************** 1. row *************************** Table: city Non_unique: 0 Key_name: PRIMARY #âãã©ã¤ããªãã¼ Seq_in_index: 1 Column_name: ID Collation: A Cardinality: 4046 #â4046ã¨ãªã£ã¦ãã Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment: Visible: YES Expression: NULL *************************** 2. row *************************** #âã»ã«ã³ããªã¤ã³ããã¯ã¹ãã Table: city Non_unique: 1 Key_name: CountryCode Seq_in_index: 1 Column_name: CountryCode Collation: A Cardinality: 232 Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment: Visible: YES Expression: NULL 2 rows in set (0.00 sec) mysql>
-
- ç§»è¡å ï¼ã¿ã¼ã²ããï¼ç°å¢
mysql> show index from city\G *************************** 1. row *************************** Table: city Non_unique: 0 Key_name: PRIMARY #âãã©ã¤ããªãã¼ã¯ç§»è¡ããã¦ãã Seq_in_index: 1 Column_name: ID Collation: A Cardinality: 0 #â0ã«ãªã£ã¦ãã Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment: Visible: YES Expression: NULL 1 row in set (0.00 sec) #âã»ã«ã³ããªã¤ã³ããã¯ã¹ãªã mysql>
ãããã«
AWS DMSã®æ¦è¦ã®èª¬æã¨ãç°¡åãªç§»è¡æ¤è¨¼ãè¡ãã¾ããã
AWS DMSã¯ãæ§ã
ãªãã¼ã¿ãã¼ã¹éã§ãã¼ã¿ç§»è¡ãå¯è½ãªãããå¤ãã®ç§»è¡ã·ããªãªã«æè»ã«å¯¾å¿ã§ãããµã¼ãã¹ã§ãã
ãã ããç§»è¡å¯¾è±¡å¤ã¨ãªããã¼ã¿ãå¶éäºé
ããããããäºåã«åå調æ»ãè¡ã£ã¦ç§»è¡è¨ç»èããå¿
è¦ãããããã§ãã
æ¬ãµã¼ãã¹ã®å©ç¨ãæ¤è¨ããã¦ããæ¹ã¯ã以ä¸ã®Black Beltã®è³æããã¹ããã©ã¯ãã£ã¹éãåèã«ãªããã¨æãã¾ãã
æ¯éãã§ãã¯ãã¦ã¿ã¦ä¸ããã
aws.amazon.com
docs.aws.amazon.com
æå¾ã¾ã§ãèªã¿ããã ããããã¨ããããã¾ããï¼