{"id":284,"date":"2020-02-14T17:13:46","date_gmt":"2020-02-14T10:13:46","guid":{"rendered":"https:\/\/www.marketenterprise.vn\/blog\/?p=284"},"modified":"2021-12-22T18:38:52","modified_gmt":"2021-12-22T11:38:52","slug":"gioi-thieu-ve-continuous-delivery","status":"publish","type":"post","link":"https:\/\/www.marketenterprise.vn\/blog\/gioi-thieu-ve-continuous-delivery.html","title":{"rendered":"K\u1ef9 thu\u1eadt Continuous Delivery (CD)"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">Continuous Delivery \u0111\u01b0\u1ee3c \u1ee9ng d\u1ee5ng \u1edf trang web c\u00f4ng ty MarketEnterprise Vietnam&nbsp;<\/h4>\n\n\n\n<p><h2>Gi\u1edbi thi\u1ec7u anh Tashiro Jin<\/h2><\/p>\n\n\n\n<p>Xin ch\u00e0o c\u00e1c b\u1ea1n. T\u00f4i t\u00ean l\u00e0 Tashiro Jin hi\u1ec7n \u0111ang l\u00e0m vi\u1ec7c t\u1ea1i MarketEnterprise Japan.<\/p>\n\n\n\n<p>C\u00e1ch \u0111\u00e2y n\u1eeda n\u0103m t\u00f4i chuy\u1ec3n vi\u1ec7c v\u00e0 gia nh\u1eadp v\u00e0o c\u00f4ng ty n\u00e0y. C\u00f4ng vi\u1ec7c ch\u00ednh c\u1ee7a t\u00f4i l\u00e0 k\u1ef9 s\u01b0 h\u1ec7 th\u1ed1ng h\u1ea1 t\u1ea7ng. Tr\u01b0\u1edbc \u0111\u00e2y t\u00f4i l\u00e0m v\u1ec1 m\u1ea3ng server v\u00e0 network ph\u00eda m\u00e1y ch\u1ee7.&nbsp;<br><br><\/p>\n\n\n\n<p>Tuy nhi\u00ean, trong kho\u1ea3ng 5-6 n\u0103m g\u1ea7n \u0111\u00e2y t\u00f4i ch\u1ec9 l\u00e0m c\u00f4ng vi\u1ec7c c\u1ea5u tr\u00fac h\u1ec7 th\u1ed1ng tr\u00ean cloud v\u00ed d\u1ee5 nh\u01b0 l\u00e0 <a href=\"https:\/\/aws.amazon.com\/\" target=\"_blank\" rel=\"noopener\">AWS<\/a>.\u00a0<\/p>\n\n\n\n<p>C\u00e1ch \u0111\u00e2y c\u0169ng kh\u00e1 l\u00e2u, ch\u00fang ta \u0111\u00e3 ph\u1ea3i t\u1ed1n r\u1ea5t nhi\u1ec1u th\u1eddi gian cho vi\u1ec7c ch\u1ecdn l\u1ef1a hardware\/ software, r\u1ed3i c\u00f4ng vi\u1ec7c thi\u1ebft k\u1ebf c\u1ea5u tr\u00fac, v\u00e0 c\u1ea3 nh\u1eefng c\u00f4ng vi\u1ec7c confirm action. Nh\u01b0ng gi\u1edd \u0111\u00e2y, ch\u1ec9 c\u1ea7n v\u00e0i c\u00fa click chu\u1ed9t l\u00e0 \u0111\u00e3 l\u00e0m xong t\u1ea5t c\u1ea3 c\u00e1c c\u00f4ng \u0111o\u1ea1n.&nbsp;<br><br><\/p>\n\n\n\n<p>T\u00f4i c\u1ea3m th\u1ea5y r\u1eb1ng m\u00ecnh \u0111ang s\u1ed1ng trong m\u1ed9t th\u1eddi \u0111\u1ea1i r\u1ea5t ti\u1ec7n l\u1ee3i. \u1ede MarketEnterprise c\u0169ng \u0111ang tri\u1ec3n khai h\u1ec7 th\u1ed1ng tr\u00ean AWS. Th\u00f4ng qua b\u00e0i vi\u1ebft n\u00e0y t\u00f4i xin gi\u1edbi thi\u1ec7u \u0111\u1ebfn c\u00e1c b\u1ea1n c\u00e1ch th\u1ee9c trang web MarketEnterprise Vietnam \u0111\u00e3 \u0111\u01b0\u1ee3c release nh\u01b0 th\u1ebf n\u00e0o. <br><br><\/p>\n\n\n\n<figure class=\"wp-block-gallery columns-1 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\"><ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><figure><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2-1024x683.jpg\" alt=\"\" data-id=\"286\" data-full-url=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2.jpg\" data-link=\"https:\/\/www.marketenterprise.vn\/blog\/?attachment_id=286\" class=\"wp-image-286\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2-1024x683.jpg 1024w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2-300x200.jpg 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2-768x512.jpg 768w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170000\/Jin2.jpg 1443w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/li><\/ul><\/figure>\n\n\n<h2>Continuous Delivery l\u00e0 g\u00ec?<\/h2>\n\n\n<p>Continuous Delivery (CD) l\u00e0 qu\u00e1 tr\u00ecnh di\u1ec5n ra khi c\u00f3 s\u1ef1 thay \u0111\u1ed5i code program, n\u00f3 s\u1ebd ti\u1ebfn h\u00e0nh t\u1ef1 \u0111\u1ed9ng merge code v\u00e0 t\u1ea1o b\u1ea3n build d\u00e0nh cho m\u00f4i tr\u01b0\u1eddng ph\u00e1t tri\u1ec3n, th\u1ef1c hi\u1ec7n vi\u1ec7c chu\u1ea9n b\u1ecb release m\u00f4i tr\u01b0\u1eddng production.&nbsp;<\/p>\n\n\n\n<p>Th\u1ef1c ra th\u00ec tr\u01b0\u1edbc giai \u0111o\u1ea1n n\u00e0y th\u00f4ng th\u01b0\u1eddng s\u1ebd c\u00f3 quy tr\u00ecnh Continuous Integration (CI)<br><br><\/p>\n\n\n\n<p>CI ch\u1ee7 y\u1ebfu l\u00e0 m\u1ed9t qu\u00e1 tr\u00ecnh t\u1ef1 \u0111\u1ed9ng test khi ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m, l\u00e0 c\u00f4ng \u0111o\u1ea1n ki\u1ec3m tra t\u00ednh an to\u00e0n v\u00e0 t\u00ednh l\u01b0u \u0111\u1ed9ng, v\u00e0 khi k\u1ebft h\u1ee3p v\u1edbi CD n\u00f3i tr\u00ean th\u00ec th\u01b0\u1eddng \u0111\u01b0\u1ee3c g\u1ecdi t\u1eaft l\u00e0 CI \/ CD.&nbsp;<br><br><\/p>\n\n\n\n<p>Ngo\u00e0i ra, CD c\u0169ng \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 vi\u1ebft t\u1eaft cho t\u1eeb Continuous Deployment. Continuous Deployment l\u00e0 kh\u00e1i ni\u1ec7m g\u1ea7n gi\u1ed1ng v\u1edbi Continuous Delivery, tuy nhi\u00ean Continuous Delivery ch\u1ec9 n\u00f3i \u0111\u1ebfn vi\u1ec7c t\u00ecnh tr\u1ea1ng s\u1eb5n s\u00e0ng cho vi\u1ec7c deploy, c\u00f2n Continuous Deployment l\u00e0 th\u1ef1c thi vi\u1ec7c deploy l\u00ean m\u00f4i tr\u01b0\u1eddng production tr\u00ean th\u1ef1c t\u1ebf, \u0111\u00f3 l\u00e0 \u0111i\u1ec3m kh\u00e1c nhau gi\u1eefa Continuous Delivery v\u00e0 Continuous Deployment.&nbsp;<br><br><\/p>\n\n\n<h2>Khi th\u1ef1c hi\u1ec7n CD th\u00ec c\u00f3 \u01b0u \u0111i\u1ec3m g\u00ec kh\u00f4ng?<\/h2>\n\n\n<p>CD c\u00f3 ngh\u0129a l\u00e0 c\u00e1c thay \u0111\u1ed5i trong code s\u1ebd \u0111\u01b0\u1ee3c t\u1ef1 \u0111\u1ed9ng chu\u1ea9n b\u1ecb ho\u1eb7c tri\u1ec3n khai v\u00e0o m\u00f4i tr\u01b0\u1eddng production.&nbsp;<\/p>\n\n\n\n<p>C\u00f4ng vi\u1ec7c test s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi b\u1edfi CI, v\u00e0 khi code \u0111\u00e3 pass qua l\u1ea7n test \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c tri\u1ec3n khai l\u00ean m\u00f4i tr\u01b0\u1eddng production m\u1ed9t c\u00e1ch t\u1ef1 \u0111\u1ed9ng, c\u00f3 ngh\u0129a l\u00e0 \u0111\u00e3 lo\u1ea1i b\u1ecf \u0111\u01b0\u1ee3c vi\u1ec7c t\u1ed1n chi ph\u00ed nh\u00e2n c\u00f4ng v\u00e0 chi ph\u00ed th\u1eddi gian \u0111\u1ec3 x\u1eed l\u00fd c\u00f4ng vi\u1ec7c \u0111\u00f3.&nbsp;<br><br><\/p>\n\n\n\n<p>Nh\u1edd th\u1ebf chi ph\u00ed r\u00fat gi\u1ea3m \u0111\u01b0\u1ee3c qua vi\u1ec7c l\u00e0m \u0111\u00f3 s\u1ebd \u0111\u01b0\u1ee3c \u0111\u1ea7u t\u01b0 v\u00e0o vi\u1ec7c ph\u00e1t tri\u1ec3n. V\u00ec v\u1eady, gi\u00fap cho vi\u1ec7c n\u00e2ng cao t\u1ed1c \u0111\u1ed9 tri\u1ec3n khai, v\u00e0 c\u0169ng s\u1ebd li\u00ean t\u1ee5c tri\u1ec3n khai th\u00eam c\u00e1c vi\u1ec7c update m\u1edbi n\u1eefa.&nbsp;<br><br><\/p>\n\n\n\n<p>Nh\u1eefng vi\u1ec7c m\u00e0 m\u00e1y m\u00f3c c\u00f3 th\u1ec3 l\u00e0m \u0111\u01b0\u1ee3c th\u00ec cho x\u1eed l\u00fd t\u1ef1 \u0111\u1ed9ng, ch\u1ec9 nh\u1eefng ch\u1ed7 b\u1eaft bu\u1ed9c ph\u1ea3i do con ng\u01b0\u1eddi l\u00e0m th\u00ec m\u1edbi \u0111i\u1ec1u ph\u1ed1i nh\u00e2n s\u1ef1 v\u00e0o l\u00e0m, nh\u1edd v\u1eady m\u00e0 c\u00f3 th\u1ec3 tri\u1ec3n khai m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3 t\u1ed1t h\u01a1n.&nbsp;<br><br><\/p>\n\n\n<h2>Trang web c\u1ee7a MarketEnterprise Vietnam \u0111\u00e3 \u0111\u01b0\u1ee3c release nh\u01b0 th\u1ebf n\u00e0o?<\/h2>\n\n\n<p>Hi\u1ec7n nay c\u00f3 r\u1ea5t nhi\u1ec1u tool l\u00e0m \u0111\u01b0\u1ee3c ch\u1ee9c n\u0103ng CI\/CD.&nbsp; \u0110\u1ea1i di\u1ec7n cho c\u00e1c tool \u0111\u00f3 th\u00ec c\u00f3 th\u1ec3 k\u1ec3 \u0111\u1ebfn: Jenkins d\u00f9ng cho m\u00e1y ch\u1ee7, Travis CI ho\u1eb7c CircleCI th\u00ec d\u00f9ng cho Cloud service.&nbsp;<\/p>\n\n\n\n<p>C\u00f2n trang MarketEnterprise Vietnam th\u00ec \u0111ang s\u1eed d\u1ee5ng AWS.&nbsp;<\/p>\n\n\n\n<p>V\u00ec AWS cung c\u1ea5p nhi\u1ec1u d\u1ecbch v\u1ee5 c\u00f3 th\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c CI \/ CD, do \u0111\u00f3 ch\u00fang t\u00f4i \u0111\u00e3 xem x\u00e9t v\u1ec1 chi ph\u00ed v\u00e0 m\u1ee9c \u0111\u1ed9 th\u00e2n thi\u1ec7n, v\u00e0 \u0111\u00e3 quy\u1ebft \u0111\u1ecbnh s\u1eed d\u1ee5ng AWS CodeBuild v\u00e0 AWS CodeDeploy cho trang web MarketEnterprise Vietnam.&nbsp;<br><br><\/p>\n\n\n\n<p>Ngo\u00e0i ra, do source code \u0111\u01b0\u1ee3c qu\u1ea3n l\u00fd tr\u00ean GitHub, cho n\u00ean AWS CodePipeline c\u0169ng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 v\u1eadn h\u00e0nh nh\u01b0 m\u1ed9t chu\u1ed7i c\u00e1c quy tr\u00ecnh x\u1eed l\u00fd t\u1eeb Github \u0111\u1ebfn AWS CodeDeploy.<\/p>\n\n\n\n<p>Ch\u00fang t\u00f4i \u0111\u00e3 release Docker Container xem nh\u01b0 l\u00e0 ECS with ECR v\u1edbi \u01b0u \u0111i\u1ec3m l\u00e0 gi\u00fap application x\u1eed l\u00fd nhanh v\u00e0 \u1ed5n \u0111\u1ecbnh<\/p>\n\n\n\n<p class=\"has-text-align-center\">X\u1eed l\u00fd theo m\u00f4 h\u00ecnh sau<br><img loading=\"lazy\" decoding=\"async\" width=\"650\" height=\"422\" class=\"wp-image-287\" style=\"width: 650px;\" src=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170055\/corp-vn.system.png\" alt=\"\" srcset=\"https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170055\/corp-vn.system.png 962w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170055\/corp-vn.system-300x195.png 300w, https:\/\/mevn-public.s3-ap-southeast-1.amazonaws.com\/marketenterprise.vn\/wp-images\/2020\/02\/14170055\/corp-vn.system-768x499.png 768w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/p>\n\n\n<h2>Kh\u00f3 kh\u0103n \u0111\u00e3 g\u1eb7p trong qu\u00e1 tr\u00ecnh l\u00e0m, v\u00e0 vi\u1ec7c t\u00ecm gi\u1ea3i ph\u00e1p t\u1ed1t nh\u1ea5t<\/h2>\n<h3>G\u1eb7p ph\u1ea3i v\u1ea5n \u0111\u1ec1 trong vi\u1ec7c tri\u1ec3n khai t\u1eeb Docker native sang ECS gi\u1ed1ng v\u1edbi Docker<\/h3>\n\n\n<p><\/p>\n\n\n\n<p>C\u00e1c k\u1ef9 s\u01b0 ph\u00e1t tri\u1ec3n trang MarketEnterprise Vietnam m\u1ed7i ng\u00e0y s\u1eed d\u1ee5ng Docker \u0111\u1ec3 ph\u00e1t tri\u1ec3n \u1edf local.&nbsp;<\/p>\n\n\n\n<p>PM s\u1ebd review source code c\u1ee7a c\u00e1c b\u1ea1n k\u1ef9 s\u01b0, n\u1ebfu kh\u00f4ng c\u00f3 v\u1ea5n \u0111\u1ec1 g\u00ec s\u1ebd th\u1ef1c thi update l\u00ean nh\u00e1nh master. \u1ede th\u1eddi \u0111i\u1ec3m n\u00e0y Issue \u0111\u01b0\u1ee3c coi l\u00e0 ho\u00e0n t\u1ea5t, v\u00e0 b\u1ea1n k\u1ef9 s\u01b0 \u0111\u00f3 b\u1eaft tay v\u00e0o l\u00e0m issue m\u1edbi. N\u00f3i c\u00e1ch kh\u00e1c, cho \u0111\u1ebfn th\u1eddi \u0111i\u1ec3m n\u00e0y ch\u1ec9 confirm \u0111\u01b0\u1ee3c \u1edf m\u00f4i tr\u01b0\u1eddng Docker native m\u00e0 th\u00f4i.&nbsp;<br><br><\/p>\n\n\n\n<p>V\u00ec th\u1ebf khi tri\u1ec3n khai nh\u1eefng ph\u1ea7n n\u00e0y sang ECS gi\u1ed1ng v\u1edbi Docker s\u1ebd ph\u1ea3i l\u01b0u \u00fd nhi\u1ec1u v\u1ea5n \u0111\u1ec1. L\u00fd do l\u00e0 ECS \u0111\u01b0\u1ee3c t\u1ea1o ra d\u1ef1a tr\u00ean Docker, tuy nhi\u00ean n\u00f3 kh\u00f4ng ph\u1ea3i l\u00e0 Docker Native.&nbsp;<br><br><\/p>\n\n\n\n<p>Khi \u0111\u00f3 t\u00f4i \u0111\u00e3 ph\u1ea3i ki\u1ec3m tra t\u1eebng ch\u00fat m\u1ed9t \u1edf spec c\u1ee7a Docker v\u00e0 spec c\u1ee7a ECS, \u0111\u1ec3 xem setting c\u1ee7a hai b\u00ean c\u00f3 kh\u1edbp nhau kh\u00f4ng, v\u00e0 t\u00f4i c\u0169ng \u0111\u00e3 ph\u1ea3i test nhi\u1ec1u l\u1ea7n \u0111\u1ec3 xem setting n\u00e0o \u0111\u01b0\u1ee3c, setting n\u00e0o kh\u00f4ng \u0111\u01b0\u1ee3c, v\u00ec th\u1ebf \u0111\u00e3 t\u1ed1n nhi\u1ec1u th\u1eddi gian h\u01a1n t\u00f4i d\u1ef1 \u0111o\u00e1n.&nbsp;<br><br><\/p>\n\n\n\n<p><h3>T\u00ecm gi\u1ea3i ph\u00e1p t\u1ed1t nh\u1ea5t cho vi\u1ec7c gi\u1ea3i quy\u1ebft name gi\u1eefa c\u00e1c container ECS<\/h3><\/p>\n\n\n\n<p>Trang web MarketEnterprise Vietnam c\u00f3 4 container. V\u00e0 4 container n\u00e0y \u0111ang ch\u1ea1y tr\u00ean 1 th\u1ef1c th\u1ec3 ECS.<\/p>\n\n\n\n<p>T\u1ea5t c\u1ea3 c\u00e1c container \u0111ang ch\u1ea1y tr\u00ean ECS v\u00e0 c\u00f3 th\u1ec3 truy c\u1eadp trang web th\u00f4ng qua internet, nh\u01b0ng m\u1ed9t s\u1ed1 h\u00ecnh \u1ea3nh v\u00e0 icon l\u1ea1i kh\u00f4ng \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb.&nbsp;<br><br><\/p>\n\n\n\n<p>Sau khi \u0111i\u1ec1u tra th\u00ec t\u00f4i bi\u1ebft \u0111\u01b0\u1ee3c l\u00e0 ph\u1ea3i c\u1ea7n ph\u1ea3i c\u00f3 s\u1ef1 li\u00ean l\u1ea1c m\u1ed9t ph\u1ea7n gi\u1eefa c\u00e1c container v\u1edbi nhau, v\u00e0 t\u00f4i hi\u1ec3u \u0111\u01b0\u1ee3c vi\u1ec7c x\u1ea3y ra v\u1ea5n \u0111\u1ec1 l\u00e0 do ch\u01b0a gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c name \u1edf m\u1ed9t s\u1ed1 container.&nbsp;<\/p>\n\n\n\n<p>C\u00f3 ngh\u0129a l\u00e0 n\u1ebfu gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c v\u1ea5n \u0111\u1ec1 name \u1edf m\u1ea1ng n\u1ed9i b\u1ed9 l\u00e0 \u0111\u01b0\u1ee3c, tuy nhi\u00ean li\u00ean quan \u0111\u1ebfn v\u1ea5n \u0111\u1ec1 n\u00e0y th\u00ec \u1edf spec c\u1ee7a Docker c\u0169ng kh\u00e1c v\u1edbi spec c\u1ee7a ECS, do \u0111\u00f3 t\u00f4i hi\u1ec3u \u0111\u01b0\u1ee3c l\u00e0 kh\u00f4ng th\u1ec3 cho ho\u1ea1t \u0111\u1ed9ng \u0111\u01b0\u1ee3c nh\u01b0 Docker Native.&nbsp;<br><br><\/p>\n\n\n\n<p>Cu\u1ed1i c\u00f9ng, c\u00e1ch gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 name c\u1ee7a m\u1ea1ng n\u1ed9i b\u1ed9 s\u1ebd ph\u1ea3i ch\u1ecdn 1 trong 2 c\u00e1ch sau: m\u1ed9t l\u00e0 ch\u1ec9nh ch\u1ebf \u0111\u1ed9 network c\u1ee7a ECS th\u00e0nh awsvpc; hai l\u00e0 thi\u1ebft l\u1eadp s\u1eb5n m\u00e1y ch\u1ee7 DNS n\u1ed9i b\u1ed9 trong th\u1ef1c th\u1ec3 ECS.&nbsp;<\/p>\n\n\n\n<p>Gi\u1ea3i ph\u00e1p th\u1ee9 nh\u1ea5t: ch\u1ec9 d\u00f9ng Route53 \u0111\u1ec3 l\u00e0m c\u00f4ng vi\u1ec7c giao ti\u1ebfp gi\u1eefa c\u00e1c container trong th\u1ef1c th\u1ec3 ECS, m\u00e0 vi\u1ec7c \u0111\u00f3 s\u1ebd l\u00e0m l\u00e3ng ph\u00ed chi ph\u00ed giao ti\u1ebfp, cho n\u00ean ch\u00fang t\u00f4i kh\u00f4ng ch\u1ecdn gi\u1ea3i ph\u00e1p n\u00e0y.&nbsp;<\/p>\n\n\n\n<p>Ch\u00fang t\u00f4i ch\u1ecdn gi\u1ea3i ph\u00e1p th\u1ee9 hai, ch\u1ec9 c\u1ea7n install dnsmasq v\u00e0o th\u1ef1c th\u1ec3 ECS xem n\u00f3 nh\u01b0 l\u00e0 m\u00e1y ch\u1ee7 DNS n\u1ed9i b\u1ed9 g\u1ecdn nh\u1eb9, th\u00ec \u0111\u00e3 gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c v\u1ea5n \u0111\u1ec1.&nbsp;<br><br><\/p>\n\n\n<h2>L\u1eddi k\u1ebft<\/h2>\n\n\n<p>Th\u00f4ng qua b\u00e0i vi\u1ebft n\u00e0y t\u00f4i ngh\u0129 c\u00e1c b\u1ea1n th\u1ea5y \u0111\u01b0\u1ee3c \u1edf MarketEnterprise r\u1ea5t ch\u00fa tr\u1ecdng nh\u00e2n l\u1ef1c ph\u00e1t tri\u1ec3n.&nbsp;&nbsp;<\/p>\n\n\n\n<p>T\u00f4i ngh\u0129 \u1edf m\u00f4i tr\u01b0\u1eddng n\u00e0y, b\u1ea1n ch\u1ec9 c\u1ea7n t\u1eadn d\u1ee5ng v\u00e0 ph\u00e1t huy n\u0103ng l\u1ef1c s\u1eb5n c\u00f3 c\u1ee7a b\u1ea1n, m\u00e0 kh\u00f4ng c\u1ea7n b\u1eadn t\u00e2m \u0111\u1ebfn vi\u1ec7c thi\u1ebft k\u1ebf h\u1ea1 t\u1ea7ng h\u1ec7 th\u1ed1ng.<\/p>\n\n\n\n<p>B\u1ea1n n\u00e0o \u0111ang c\u00f3 suy ngh\u0129 mu\u1ed1n ph\u00e1t tri\u1ec3n b\u1ea3n th\u00e2n nhi\u1ec1u h\u01a1n n\u1eefa th\u00ec h\u00e3y li\u00ean l\u1ea1c v\u1edbi ch\u00fang t\u00f4i. T\u00f4i tin ch\u1eafc n\u01a1i \u0111\u00e2y s\u1ebd l\u00e0 m\u00f4i tr\u01b0\u1eddng l\u00e0m vi\u1ec7c t\u1ed1t cho c\u00e1c b\u1ea1n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anh Tashiro Jin &#8211; hi\u1ec7n \u0111ang l\u00e0m vi\u1ec7c t\u1ea1i MarketEnterprise. <\/p>\n","protected":false},"author":6,"featured_media":285,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[34,22],"class_list":["post-284","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development-processing","tag-marketenterprise-vietnam","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/comments?post=284"}],"version-history":[{"count":0,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/posts\/284\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media\/285"}],"wp:attachment":[{"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/media?parent=284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/categories?post=284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marketenterprise.vn\/blog\/wp-json\/wp\/v2\/tags?post=284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}