{"id":1076,"date":"2022-02-25T03:55:17","date_gmt":"2022-02-25T03:55:17","guid":{"rendered":"https:\/\/egany.com\/blogs\/?p=1076"},"modified":"2022-02-25T06:24:16","modified_gmt":"2022-02-25T06:24:16","slug":"aws-2-van-de-va-giai-phap","status":"publish","type":"post","link":"https:\/\/egany.com\/blogs\/aws-2-van-de-va-giai-phap\/","title":{"rendered":"AWS #2 &#8211; V\u1ea5n \u0111\u1ec1 v\u00e0 gi\u1ea3i ph\u00e1p"},"content":{"rendered":"<p><a href=\"https:\/\/egany.com\/blogs\/aws-1-su-lua-chon-cua-egany\/\" title=\"Trong ph\u1ea7n 1\">Trong ph\u1ea7n 1<\/a>, m\u00ecnh \u0111\u00e3 gi\u1ea3i th\u00edch l\u00fd do t\u1ea1i sao EGANY ch\u1ecdn AWS l\u00e0m Cloud Server, c\u0169ng nh\u01b0 gi\u1edbi thi\u1ec7u v\u1ec1 c\u00e1c t\u00e0i nguy\u00ean AWS m\u00e0 team \u0111ang s\u1eed d\u1ee5ng.<\/p>\n<p>Tuy nhi\u00ean, vi\u1ec7c \u1ee9ng d\u1ee5ng v\u00e0 tri\u1ec3n khai m\u1ed9t c\u00f4ng ngh\u1ec7 m\u1edbi th\u00ec ch\u1eb3ng c\u00f3 g\u00ec l\u00e0 su\u00f4n s\u1ebb c\u1ea3. Trong qu\u00e1 tr\u00ecnh v\u1eadn h\u00e0nh, team \u0111\u00e3 g\u1eb7p ph\u1ea3i m\u1ed9t s\u1ed1 v\u1ea5n \u0111\u1ec1 nh\u1ee9c nh\u1ed1i v\u00e0 g\u00e2y t\u1ed1n k\u00e9m chi ph\u00ed.<\/p>\n<p>Ch\u00ednh v\u00ec th\u1ebf, trong b\u00e0i vi\u1ebft #2 n\u00e0y, m\u00ecnh s\u1ebd chia s\u1ebb v\u1ec1 <strong>3 V\u1ea5n \u0110\u1ec1<\/strong> m\u00e0 team \u0111\u00e3 g\u1eb7p ph\u1ea3i, c\u00f9ng nh\u1eefng h\u01b0\u1edbng gi\u1ea3i quy\u1ebft. T\u1eeb \u0111\u00f3, b\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ee1 ph\u1ea3i \u0111i \u0111\u01b0\u1eddng v\u00f2ng h\u01a1n, gi\u00fap cho qu\u00e1 tr\u00ecnh tri\u1ec3n khai AWS tr\u1edf n\u00ean d\u1ec5 d\u00e0ng v\u00e0 \u00edt t\u1ed1t k\u00e9m h\u01a1n.<\/p>\n<h2>1. Kh\u00f4ng bi\u1ebft b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2u<\/h2>\n<p>Khi b\u1eaft \u0111\u1ea7u m\u1ed9t c\u00f4ng ngh\u1ec7 m\u1edbi, &quot;kh\u00f4ng bi\u1ebft b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2u&quot; l\u00e0 \u0111i\u1ec1u m\u00ecnh ngh\u0129 \u0111a s\u1ed1 m\u1ecdi ng\u01b0\u1eddi s\u1ebd g\u1eb7p. C\u0169ng nh\u01b0 khi b\u1ea1n l\u00e0 m\u1ed9t front-end m\u1edbi v\u00e0o ngh\u1ec1, v\u00e0 ph\u00eda designer \u0111\u01b0a ra m\u1ed9t b\u1ea3n thi\u1ebft k\u1ebf kh\u1ee7ng. Khi \u0111\u00f3, b\u1ea1n s\u1ebd ph\u1ea3i kh\u00e1 \u0111au \u0111\u1ea7u trong vi\u1ec7c l\u1ef1a ch\u1ecdn framework \u0111\u1ec3 th\u1ef1c hi\u1ec7n, l\u1ef1a ch\u1ecdn th\u1ee9 t\u1ef1 c\u00e1c component (th\u00e0nh ph\u1ea7n) \u0111\u1ec3 code, v\u00e0 ph\u1ea3i code \u0111i code l\u1ea1i nhi\u1ec1u l\u1ea7n n\u1ebfu b\u1ea1n l\u00e0m sai, \u0111\u1ec3 c\u00f3 th\u1ec3 \u0111\u00fang design.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/aws-khong-biet-bat-dau-tu-dau.jpeg\" alt=\"AWS Kh\u00f4ng bi\u1ebft b\u1eaft \u0111\u1ea7u t\u1eeb \u0111\u00e2u\" \/><\/p>\n<p>AWS c\u0169ng v\u1eady! N\u1ebfu b\u1ea1n v\u00ed h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n qu\u1ea3n l\u00fd l\u00e0 b\u1ea3n design, th\u00ec c\u00e1c service (d\u1ecbch v\u1ee5) c\u1ee7a AWS ch\u00ednh l\u00e0 c\u00e1c component \u0111\u1ec3 ho\u00e0n th\u00e0nh b\u1ea3n design \u0111\u00f3!<\/p>\n<p>C\u00f4ng vi\u1ec7c c\u1ee7a b\u1ea1n s\u1ebd l\u00e0 s\u1eed d\u1ee5ng c\u00e1c service c\u1ee7a AWS \u0111\u1ec3 tri\u1ec3n khai h\u1ec7 th\u1ed1ng, theo \u0111\u00fang c\u00f4ng d\u1ee5ng c\u1ee7a n\u00f3, v\u00e0 \u0111\u00fang theo m\u1ed9t th\u1ee9 t\u1ef1. N\u1ebfu b\u1ea1n tri\u1ec3n khai sai m\u1ed9t service n\u00e0o \u0111\u00f3, b\u1ea1n s\u1ebd c\u1ea7n ph\u1ea3i tri\u1ec3n khai l\u1ea1i service \u0111\u00f3, ho\u1eb7c th\u1eadm ch\u00ed l\u00e0 c\u00e1c service li\u00ean quan sao cho \u0111\u00fang.<\/p>\n<p>\u0110\u1ec3 t\u00ecm ra m\u1ed9t h\u01b0\u1edbng \u0111i \u0111\u00fang, team \u0111\u00e3 ti\u1ebfn h\u00e0nh th\u1eed sai c\u1ea3 th\u00e1ng tr\u1eddi. Team \u0111\u00e3 ph\u1ea3i nghi\u00ean c\u1ee9u r\u1ea5t nhi\u1ec1u t\u00e0i li\u1ec7u, c\u00e1c best practice t\u1eeb ng\u01b0\u1eddi \u0111i tr\u01b0\u1edbc, v\u00e0 th\u1eed sai. B\u1edfi v\u00ec v\u1edbi m\u1ed7i case, h\u01b0\u1edbng gi\u1ea3i quy\u1ebft s\u1ebd kh\u00e1c nhau, m\u00ecnh kh\u00f4ng th\u1ec3 copy y nguy\u00ean c\u00e1ch l\u00e0m c\u1ee7a ng\u01b0\u1eddi kh\u00e1c \u0111\u01b0\u1ee3c, m\u00e0 m\u00ecnh c\u1ea7n ph\u1ea3i mix t\u1eebng ch\u00fat m\u1ed9t.<\/p>\n<p>C\u00f3 hai th\u1ee9 m\u00ecnh ngh\u0129 s\u1ebd gi\u00fap \u00edch \u0111\u01b0\u1ee3c b\u1ea1n trong giai \u0111o\u1ea1n b\u1eaft \u0111\u1ea7u m\u00e0 m\u00ecnh mu\u1ed1n chia s\u1ebb, \u0111\u00f3 l\u00e0 kinh nghi\u1ec7m c\u1ee7a b\u1ea3n th\u00e2n m\u00ecnh, v\u00e0 ngu\u1ed3n t\u00e0i li\u1ec7u m\u00e0 m\u00ecnh t\u00ecm \u0111\u1ecdc.<\/p>\n<ul>\n<li>V\u1ec1 kinh nghi\u1ec7m b\u1ea3n th\u00e2n: n\u00f3 ch\u1eafc ch\u1eafn s\u1ebd r\u1ea5t d\u00e0i, v\u00e0 nhi\u1ec1u th\u1ee9 \u0111\u1ec3 n\u00f3i. N\u00ean khi m\u00ecnh vi\u1ebft t\u1edbi \u0111\u00e2u, m\u00ecnh s\u1ebd chia s\u1ebd t\u1edbi \u0111\u00f3 nh\u00e9!<\/li>\n<li>V\u1ec1 ngu\u1ed3n t\u00e0i li\u1ec7u: ngo\u00e0i t\u00e0i li\u1ec7u c\u1ee7a AWS, m\u00ecnh c\u00f2n tham kh\u1ea3o list video youtube <a href=\"https:\/\/www.youtube.com\/watch?v=JcAqkYG24v0&amp;amp;list=PLjCpH2Qpki-sTjdlYXE8AifSKQFa8ZL23\" title=\"n\u00e0y\" rel=\"nofollow noopener\" target=\"_blank\">n\u00e0y<\/a>. T\u1ea1i \u0111\u00e2y, t\u00e1c gi\u1ea3 \u0111\u00e3 n\u00f3i r\u1ea5t nhi\u1ec1u th\u1ee9 k\u00e8m h\u01b0\u1edbng tri\u1ec3n khai v\u1ec1 c\u00e1c resource c\u1ee7a AWS, nh\u01b0 EC2, VPC, S3, IAM&#8230; Hi v\u1ecdng s\u1ebd gi\u00fap \u00edch \u0111\u01b0\u1ee3c cho c\u00e1c b\u1ea1n trong giai \u0111o\u1ea1n l\u00e0m quen v\u1edbi AWS.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/youtube-playlist-aws-cloud.png\" alt=\"Playlist AWS tr\u00ean Youtube\" title=\"Youtube Playlist AWS\" \/><\/p>\n<p style=\"text-align: center\"><i>Playlist AWS tr\u00ean Youtube<\/i><\/p>\n<h2>2. V\u1ea5n \u0111\u1ec1 ph\u00e2n quy\u1ec1n c\u00e1c th\u00e0nh vi\u00ean trong team<\/h2>\n<p>L\u00e0 m\u1ed9t admin c\u1ee7a h\u1ec7 th\u1ed1ng, b\u1ea1n kh\u00f4ng mu\u1ed1n h\u1ec7 th\u1ed1ng l\u0103n \u0111\u00f9ng ra ch\u1ebft, hay database b\u1ecb m\u1ea5t s\u1ea1ch d\u1eef li\u1ec7u v\u00e0o m\u1ed9t ng\u00e0y &quot;x\u1ea5u tr\u1eddi&quot; n\u1ecd v\u00ec l\u1ed7i c\u1ee7a member ph\u1ea3i kh\u00f4ng n\u00e0o? Ch\u00ednh v\u00ec th\u1ebf, ph\u00e2n quy\u1ec1n th\u00e0nh vi\u00ean c\u1ee7a AWS theo l\u0129nh v\u1ef1c, ch\u1ee9c v\u1ee5 lu\u00f4n l\u00e0 \u0111i\u1ec1u c\u1ea7n \u0111\u01b0\u1ee3c \u01b0u ti\u00ean h\u00e0ng \u0111\u1ea7u. Cho d\u00f9 b\u1ea1n n\u1eafm gi\u1eef t\u00e0i kho\u1ea3n root, \u0111\u1ec3 login v\u00e0o AWS th\u00ec b\u1ea1n c\u0169ng c\u1ea7n t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n admin cho ri\u00eang m\u00ecnh \u0111\u1ec3 ph\u00f2ng tr\u00e1nh r\u1ee7i ro t\u1ed1t h\u01a1n.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/iam-dashboard.png\" alt=\"Giao di\u1ec7n AWS IAM\" title=\"Giao di\u1ec7n AWS IAM\" \/><\/p>\n<p style=\"text-align: center\"><i>Giao di\u1ec7n AWS IAM<\/i><\/p>\n<p>Tuy nhi\u00ean, AWS l\u1ea1i c\u00f3 h\u00e0ng tr\u0103m h\u00e0ng ng\u00e0n IAM Policy v\u1edbi c\u00e1c ch\u1ee9c n\u0103ng kh\u00e1c nhau. Vi\u1ec7c \u0111\u1ecdc h\u1ebft c\u00e1c IAM l\u00e0 \u0111i\u1ec1u kh\u00f4ng kh\u1ea3 thi, n\u00ean s\u1ebd l\u00e0m cho qu\u00e1 tr\u00ecnh ph\u00e2n quy\u1ec1n di\u1ec5n ra r\u1ea5t kh\u00f3 kh\u0103n.<\/p>\n<p>\u0110\u1ec3 gi\u1ea3i quy\u1ebft b\u00e0i to\u00e1n ph\u00e2n quy\u1ec1n n\u00e0y, kh\u00f4ng c\u00f3 c\u00e1ch n\u00e0o kh\u00e1c l\u00e0 xem c\u00e1c kinh nghi\u1ec7m t\u1eeb ng\u01b0\u1eddi \u0111i tr\u01b0\u1edbc c\u1ea3, g\u1eb7p v\u1ea5n \u0111\u1ec1 g\u00ec, search v\u1ea5n \u0111\u1ec1 \u0111\u00f3.<\/p>\n<p>T\u1ea5t nhi\u00ean l\u00e0 m\u00ecnh s\u1ebd kh\u00f4ng &quot;\u0111em con b\u1ecf ch\u1ee3&quot;, n\u00ean m\u00ecnh s\u1ebd chia s\u1ebb v\u1edbi b\u1ea1n c\u00e1ch m\u00e0 m\u00ecnh ph\u00e2n quy\u1ec1n cho member trong team. M\u00ecnh \u0111\u00e3 chia c\u00e1c th\u00e0nh vi\u00ean trong team th\u00e0nh 4 nh\u00f3m ng\u01b0\u1eddi d\u00f9ng ch\u00ednh:<\/p>\n<ul>\n<li>DevOps: \u0110\u00e2y l\u00e0 nh\u00f3m ng\u01b0\u1eddi c\u00f3 quy\u1ec1n cao nh\u1ea5t, v\u1edbi policy l\u00e0 <code>AdministratorAccess<\/code>. H\u1ecd s\u1ebd l\u00e0 ng\u01b0\u1eddi n\u1eafm to\u00e0n quy\u1ec1n v\u1ec1 h\u1ec7 th\u1ed1ng c\u1ee7a c\u00f4ng ty (tr\u1eeb Billing). B\u1ea1n c\u1ea7n c\u1ef1c k\u00ec th\u1eadn tr\u1ecdng khi add user v\u00e0o group n\u00e0y.<\/li>\n<li>Backend: \u0110\u00e2y l\u00e0 nh\u00f3m ng\u01b0\u1eddi c\u00f3 quy\u1ec1n cao nh\u00ec, v\u1edbi policy s\u1ebd xoanh quanh <code>EC2<\/code>, <code>CloudWatch<\/code>, <code>S3<\/code>. H\u1ecd s\u1ebd l\u00e0 ng\u01b0\u1eddi ph\u00e1t tri\u1ec3n, b\u1ea3o tr\u00ec, s\u1eeda l\u1ed7i \u1ee9ng d\u1ee5ng m\u00e0 h\u1ecd code ra. Ch\u00ednh v\u00ec th\u1ebf, h\u1ecd c\u1ea7n ph\u1ea3i c\u00f3 quy\u1ec1n truy c\u1eadp xem logs, truy c\u1eadp VPS v\u00e0 nh\u1eefng th\u00e0nh ph\u1ea7n li\u00ean quan, \u0111\u1ea3m b\u1ea3o cho c\u00f4ng vi\u1ec7c c\u1ee7a h\u1ecd.<\/li>\n<li>Frontend: \u0110\u1ec3 \u0111\u1ea3m b\u1ea3o s\u1ef1 \u1ed5n \u0111\u1ecbnh c\u1ee7a h\u1ec7 th\u1ed1ng, c\u00e1c file t\u0129nh nh\u01b0 css, js, image, video&#8230; s\u1ebd \u0111\u01b0\u1ee3c l\u01b0u tr\u1ef1c ti\u1ebfp tr\u00ean AWS S3, thay v\u00ec l\u01b0u ph\u00eda server. Th\u00f4ng th\u01b0\u1eddng, c\u00e1c file n\u00e0y s\u1ebd do Frontend qu\u1ea3n l\u00fd. Ch\u00ednh v\u00ec th\u1ebf, b\u1ea1n c\u1ea7n c\u1ea5p cho ph\u00eda Frontend c\u00e1c quy\u1ec1n v\u1ec1 S3 \u0111\u1ec3 h\u1ecd ti\u1ec7n qu\u1ea3n l\u00fd file, s\u1eeda \u0111\u1ed5i khi h\u1ecd c\u1ea7n m\u00e0 kh\u00f4ng ph\u1ea3i h\u00fa team Backend, DevOps, g\u00e2y t\u1ed1n th\u1eddi gian.<\/li>\n<li>Service: Tu\u1ef3 thu\u1ed9c v\u00e0o service (\u1ee9ng d\u1ee5ng) m\u00e0 team s\u1ebd t\u1ea1o user cho \u1ee9ng d\u1ee5ng \u0111\u00f3, v\u1edbi c\u00e1c quy\u1ec1n kh\u00e1c nhau, nh\u01b0 quy\u1ec1n upload file l\u00ean S3. Nh\u1edd \u0111\u00f3, h\u1ec7 th\u1ed1ng s\u1ebd giao ti\u1ebfp \u0111\u01b0\u1ee3c v\u1edbi c\u00e1c resource kh\u00e1c c\u1ee7a AWS. M\u1ed9t l\u01b0u \u00fd l\u00e0 h\u1ec7 th\u1ed1ng s\u1ebd d\u00f9ng user API Key v\u00e0 Secret Key \u0111\u1ec3 call API, ch\u1ee9 kh\u00f4ng ph\u1ea3i d\u00f9ng username\/password nh\u01b0 th\u00f4ng th\u01b0\u1eddng nh\u00e9! Ngo\u00e0i ra, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng IAM Role thay cho User, m\u1ee5c \u0111\u00edch l\u00e0 \u0111\u1ec3 c\u1ea5p quy\u1ec1n cho server call API t\u1edbi c\u00e1c resource c\u1ee7a AWS m\u00e0 kh\u00f4ng c\u1ea7n d\u00f9ng c\u00e1c key ho\u1eb7c password.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/iam-frontend-group.png\" alt=\"Ph\u00e2n quy\u1ec1n AWS cho Frontend\" title=\"Ph\u00e2n quy\u1ec1n AWS cho Frontend\" \/><\/p>\n<p style=\"text-align: center\"><i>Ph\u00e2n quy\u1ec1n cho Frontend<\/i><\/p>\n<h2>3. Chi ph\u00ed t\u0103ng \u0111\u1ed9t bi\u1ebfn<\/h2>\n<p>Khi s\u1eed d\u1ee5ng m\u1ed9t n\u1ec1n t\u1ea3ng Cloud Server m\u1edbi nh\u01b0 AWS, c\u00e1i team k\u00ec v\u1ecdng ch\u00ednh l\u00e0: &quot;s\u1ef1 \u1ed5n \u0111\u1ecbnh c\u1ee7a h\u1ec7 th\u1ed1ng&quot; v\u00e0 &quot;chi ph\u00ed h\u00e0ng th\u00e1ng&quot;.<\/p>\n<p>Ch\u00ednh v\u00ec th\u1ebf, sau m\u1ed9t th\u00e1ng tri\u1ec3n khai c\u00e1c d\u1ecbch v\u1ee5 tr\u00ean, team m\u00ecnh \u0111\u00e3 ng\u1ed3i \u0111\u1ec3 \u0111\u00e1nh gi\u00e1 l\u1ea1i k\u1ebft qu\u1ea3.<\/p>\n<p>M\u1ecdi th\u1ee9 di\u1ec5n ra qu\u00e1 \u1ed5n, h\u1ec7 th\u1ed1ng kh\u00f4ng g\u1eb7p t\u00ecnh tr\u1ea1ng qu\u00e1 t\u1ea3i v\u00e0 l\u0103n \u0111\u00f9ng ra ch\u1ebft, k\u1ebft n\u1ed1i gi\u1eefa c\u00e1c m\u00e1y ch\u1ee7 r\u1ea5t \u1ed5n \u0111\u1ecbnh. Ch\u1ec9 c\u00f3 \u0111i\u1ec1u <strong>AWS \u0111\u00e3 charge 3000$\/th\u00e1ng cho ho\u00e1 \u0111\u01a1n c\u1ee7a c\u00f4ng ty<\/strong>. S\u1ed1 ti\u1ec1n n\u00e0y qu\u00e1 cao so v\u1edbi d\u1ef1 ki\u1ebfn ban \u0111\u1ea7u c\u1ee7a team.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/waste-money.jpeg\" alt=\"Chi ph\u00ed h\u1ec7 th\u1ed1ng t\u0103ng \u0111\u1ed9t bi\u1ebfn\" title=\"Chi ph\u00ed h\u1ec7 th\u1ed1ng t\u0103ng \u0111\u1ed9t bi\u1ebfn\" \/><\/p>\n<p>C\u00f3 nhi\u1ec1u nguy\u00ean nh\u00e2n x\u1ea3y ra v\u1ea5n \u0111\u1ec1 tr\u00ean. Tuy nhi\u00ean, m\u00ecnh xin chia s\u1ebd v\u1edbi c\u00e1c b\u1ea1n 2 nguy\u00ean nh\u00e2n ch\u00ednh, \u0111\u00f3 l\u00e0: &quot;tri\u1ec3n khai EC2 \u1edf qu\u1ed1c gia c\u00f3 chi ph\u00ed cao&quot; v\u00e0 &quot;s\u1eed d\u1ee5ng CloudWatch qu\u00e1 nhi\u1ec1u&quot;.<\/p>\n<h3>Tri\u1ec3n khai EC2 \u1edf qu\u1ed1c gia c\u00f3 chi ph\u00ed cao<\/h3>\n<p>Th\u00f4ng th\u01b0\u1eddng, trong m\u1ed9t h\u1ec7 th\u1ed1ng c\u1ee7a c\u00f4ng ty s\u1ebd chia l\u00e0m 3 m\u00f4i tr\u01b0\u1eddng: dev, staging v\u00e0 production. Trong \u0111\u00f3, dev v\u00e0 staging d\u00e0nh cho n\u1ed9i b\u1ed9 c\u00f4ng ty, v\u00e0 production d\u00e0nh cho kh\u00e1ch h\u00e0ng.<\/p>\n<p>Production l\u00e0 m\u00f4i tr\u01b0\u1eddng d\u00e0nh cho kh\u00e1ch h\u00e0ng. Ch\u00ednh v\u00ec th\u1ebf, team c\u1ea7n d\u00e0nh nh\u1eefng g\u00ec t\u1ed1t nh\u1ea5t cho production, bao g\u1ed3m s\u1ed1 l\u01b0\u1ee3ng m\u00e1y ch\u1ee7, t\u00e0i nguy\u00ean ph\u1ea7n c\u1ee9ng&#8230; v\u00e0 qu\u1ed1c gia c\u1ee7a m\u00e1y ch\u1ee7 (\u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn latency &#8211; \u0111\u1ed9 tr\u1ec5 c\u1ee7a h\u1ec7 th\u1ed1ng). V\u1edbi l\u01b0\u1ee3ng user c\u1ee7a EGANY \u0111\u1ebfn t\u1eeb Vi\u1ec7t Nam, team c\u1ea7n ph\u1ea3i s\u1eed d\u1ee5ng m\u1ed9t m\u00e1y ch\u1ee7 g\u1ea7n Vi\u1ec7t Nam \u0111\u1ec3 gi\u1ea3m latency, v\u00e0 team \u0111\u00e3 ch\u1ecdn Singapore.<\/p>\n<p>Tuy nhi\u00ean, chi ph\u00ed server t\u1ea1i Singapore l\u1ea1i cao h\u01a1n kho\u1ea3ng 1\/4 l\u1ea7n so v\u1edbi server t\u1ea1i Hoa K\u00ec. V\u00ed d\u1ee5 nh\u01b0 5 con server c5.large (c\u1ea5u h\u00ecnh 2 CPU, 4GB RAM) t\u1ea1i Singapore s\u1ebd c\u00f3 gi\u00e1 l\u00e0 425.76$\/th\u00e1ng, trong khi \u1edf Oregon (Hoa K\u1ef3) ch\u1ec9 c\u00f3 gi\u00e1 l\u00e0 374.8$\/th\u00e1ng th\u00f4i.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/Cost-by-AWS-region.png\" alt=\"B\u1ea3ng so s\u00e1nh gi\u00e1 5 con EC2 c5.large gi\u1eefa c\u00e1c qu\u1ed1c gia\" title=\"B\u1ea3ng so s\u00e1nh gi\u00e1 5 con EC2 c5.large gi\u1eefa c\u00e1c qu\u1ed1c gia\" \/><\/p>\n<p style=\"text-align: center\"><i>B\u1ea3ng so s\u00e1nh gi\u00e1 5 con EC2 c5.large gi\u1eefa c\u00e1c qu\u1ed1c gia<\/i><\/p>\n<p>Nh\u01b0ng, \u0111\u1ed1i v\u1edbi m\u00f4i tr\u01b0\u1eddng dev v\u00e0 staging (d\u00e0nh cho n\u1ed9i b\u1ed9), vi\u1ec7c c\u1ea3i thi\u1ec7n latency l\u00e0 kh\u00f4ng c\u1ea7n thi\u1ebft l\u1eafm, m\u00e0 n\u00f3 ch\u1ec9 g\u00e2y l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean. Gi\u00e1 s\u1eed b\u1ea1n c\u00f3 100 con server c5.large d\u00e0nh cho n\u1ed9i b\u1ed9, m\u1ed7i con server c\u1ee7a m\u1ed7i qu\u1ed1c gia Singapore v\u00e0 Oregon (Hoa K\u1ef3) ch\u00eanh nhau 10$\/th\u00e1ng, th\u00ec chi ph\u00ed s\u1ebd \u0111\u1ed9n l\u00ean 1000$\/th\u00e1ng n\u1ebfu tri\u1ec3n khai to\u00e0n b\u1ed9 server \u1edf Singapore.<\/p>\n<p>Ch\u00ednh v\u00ec th\u1ebf, t\u00f9y thu\u1ed9c v\u00e0o m\u1ee5c \u0111\u00edch s\u1eed d\u1ee5ng, b\u1ea1n h\u00e3y l\u1ef1a ch\u1ecdn qu\u1ed1c gia \u0111\u1eb7t server cho ph\u00f9 h\u1ee3p nh\u00e9!<\/p>\n<h3>S\u1eed d\u1ee5ng CloudWatch qu\u00e1 nhi\u1ec1u<\/h3>\n<p>CloudWatch l\u00e0 m\u1ed9t d\u1ecbch v\u1ee5 monitoring to\u00e0n di\u1ec7n c\u1ee7a AWS, t\u1eeb c\u00e1c th\u00f4ng s\u1ed1 c\u01a1 b\u1ea3n c\u1ee7a server nh\u01b0 RAM, CPU, Disk&#8230; \u0111\u1ebfn c\u00e1c th\u00f4ng tin b\u00ean trong container nh\u01b0 logs, CPU, Disk&#8230;<\/p>\n<blockquote>\n<p>Ngo\u00e0i ra, CloudWatch c\u00f2n Monitoring c\u00e1c th\u00f4ng tin kh\u00e1c nh\u01b0 S3, Fargate&#8230; n\u1eefa nh\u00e9<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/egany.cdn.vccloud.vn\/blogs\/wp-content\/uploads\/2022\/02\/aws-cloudwatch-monitoring.png\" alt=\"Cloud Watch\" title=\"CloudWatch\" \/><\/p>\n<p>Ch\u00ednh v\u00ec th\u1ebf, m\u00ecnh \u0111\u00e3 th\u1eed nghi\u1ec7m tri\u1ec3n khai n\u00f3 r\u1ea5t nhi\u1ec1u \u0111\u1ec3 c\u00f3 th\u1ec3 monitoring \u0111\u01b0\u1ee3c to\u00e0n di\u1ec7n nh\u1ea5t. V\u00e0 \u0111\u00f3 l\u00e0 sai l\u1ea7m c\u1ee7a m\u00ecnh, khi\u1ebfn ph\u00eda AWS \u0111\u00e3 charge g\u1ea7n 1500$\/th\u00e1ng cho ph\u1ea7n n\u00e0y trong khi team ch\u1ec9 s\u1eed d\u1ee5ng ch\u01b0a t\u1edbi 50 server.<\/p>\n<p>AWS t\u00ednh ti\u1ec1n CloudWatch d\u1ef1a v\u00e0o 2 th\u00f4ng s\u1ed1 ch\u00ednh: s\u1ed1 l\u01b0\u1ee3ng ch\u1ec9 m\u1ee5c v\u00e0 s\u1ed1 l\u01b0\u1ee3ng request h\u1ec7 th\u1ed1ng g\u1eedi l\u00ean Cloud Watch.<\/p>\n<p>Ch\u1ec9 m\u1ee5c \u1edf \u0111\u00e2y b\u1ea1n c\u00f3 th\u1ec3 hi\u1ec3u: n\u00f3 l\u00e0 lo\u1ea1i t\u00e0i nguy\u00ean c\u1ee7a server\/container c\u1ea7n monitoring. VD nh\u01b0 RAM c\u1ee7a m\u1ed7i server l\u00e0 1 ch\u1ec9 m\u1ee5c, CPU c\u1ee7a m\u1ed7i server l\u00e0 1 ch\u1ec9 m\u1ee5c&#8230; RAM c\u1ee7a m\u1ed7i container l\u00e0 1 ch\u1ec9 m\u1ee5c, CPU c\u1ee7a m\u1ed7i container l\u00e0 1 ch\u1ec9 m\u1ee5c&#8230; M\u1ed7i ch\u1ec9 m\u1ee5c s\u1ebd c\u00f3 gi\u00e1 l\u00e0 0.3$, tu\u1ef3 v\u00e0o s\u1ed1 l\u01b0\u1ee3ng server, container m\u00e0 khi nh\u00e2n l\u00ean s\u1ebd ra s\u1ed1 ti\u1ec1n kh\u1ed5ng l\u1ed3.<\/p>\n<blockquote>\n<p>L\u01b0u \u00fd: N\u1ebfu h\u1ec7 th\u1ed1ng b\u1ea1n ch\u1ea1y d\u01b0\u1edbi d\u1ea1ng docker container, th\u00ec m\u1ed7i l\u1ea7n container ch\u1ebft, v\u00e0 container m\u1edbi \u0111\u01b0\u1ee3c t\u1ea1o ra th\u00ec AWS c\u0169ng s\u1ebd charge th\u00eam ti\u1ec1n v\u1edbi b\u1ea5y nhi\u00eau ch\u1ec9 m\u1ee5c m\u1edbi c\u1ee7a container \u0111\u01b0\u1ee3c sinh ra \u0111\u00f3 nh\u00e9!<\/p>\n<\/blockquote>\n<p>C\u00f2n s\u1ed1 l\u01b0\u1ee3ng request h\u1ec7 th\u1ed1ng g\u1eedi l\u00ean CloudWatch: \u0111\u01a1n gi\u1ea3n l\u00e0 h\u1ec7 th\u1ed1ng s\u1ebd g\u1eedi state (tr\u1ea1ng th\u00e1i) c\u1ee7a c\u00e1c ch\u1ec9 m\u1ee5c l\u00ean Cloud Watch, nh\u01b0 g\u1eedi tham s\u1ed1 v\u1ec1 RAM c\u1ee7a server thay \u0111\u1ed5i theo th\u1eddi gian. Tu\u1ef3 thu\u1ed9c v\u00e0o thi\u1ebft l\u1eadp m\u00e0 m\u1ed7i 30s, 60s&#8230; h\u1ec7 th\u1ed1ng s\u1ebd g\u1eedi c\u00e1c state c\u1ee7a ch\u1ec9 m\u1ee5c l\u00ean AWS 1 l\u1ea7n.<\/p>\n<blockquote>\n<p>Xem c\u00e1ch AWS t\u00ednh ti\u1ec1n Cloud Watch <a href=\"https:\/\/aws.amazon.com\/vi\/cloudwatch\/pricing\/#:~:text=Ph%C3%AD%20th%C3%A1ng%20cho%20CloudWatch%20%3D%2021,s%E1%BB%91%20%C4%91%E1%BB%83%20bi%E1%BA%BFt%20chi%20ti%E1%BA%BFt.\" title=\"t\u1ea1i \u0111\u00e2y\" rel=\"nofollow noopener\" target=\"_blank\">t\u1ea1i \u0111\u00e2y<\/a><\/p>\n<\/blockquote>\n<p>Hi\u1ec7n t\u1ea1i, team m\u00ecnh \u0111\u00e3 ng\u01b0ng s\u1eed d\u1ee5ng Cloud Watch, v\u00e0 \u0111ang h\u01b0\u1edbng t\u1edbi ph\u01b0\u01a1ng ph\u00e1p truy\u1ec1n th\u1ed1ng, nh\u01b0 s\u1eed d\u1ee5ng c\u1ee5m ELK. Tuy nhi\u00ean, n\u1ebfu b\u1ea1n mu\u1ed1n s\u1eed d\u1ee5ng Cloud Watch, th\u00ec m\u00ecnh xin \u0111\u01b0a ra m\u1ed9t v\u00e0i l\u1eddi khuy\u00ean:<\/p>\n<ul>\n<li>Ch\u1ec9 monitoring c\u00e1i c\u1ea7n thi\u1ebft, nh\u01b0 RAM c\u1ee7a server<\/li>\n<li>H\u1ea1n ch\u1ebf monitoring c\u00e1c resource c\u1ee7a docker container<\/li>\n<li>H\u1ea1n ch\u1ebf monitoring EC2 ch\u1ebf \u0111\u1ed9 Spot<\/li>\n<\/ul>\n<h2>T\u1ed5ng k\u1ebft<\/h2>\n<p>V\u1eady l\u00e0 \u0111\u00e3 xong <strong>AWS #2 &#8211; V\u1ea5n \u0111\u1ec1 v\u00e0 gi\u1ea3i ph\u00e1p<\/strong> r\u1ed3i nh\u1ec9?<\/p>\n<p>Trong b\u00e0i vi\u1ebft n\u00e0y, m\u00ecnh \u0111\u00e3 gi\u1edbi thi\u1ec7u v\u1edbi m\u1ecdi ng\u01b0\u1eddi c\u00e1c b\u00e0i to\u00e1n m\u00e0 team g\u1eb7p ph\u1ea3i, c\u0169ng nh\u01b0 c\u00e1c h\u01b0\u1edbng m\u00e0 team gi\u1ea3i quy\u1ebft, k\u00e8m nh\u1eefng g\u1ee3i \u00fd \u0111\u1ec3 b\u1ea1n kh\u00f4ng ph\u1ea3i th\u1eed sai nh\u01b0 team m\u00ecnh.<\/p>\n<p>Trong c\u00e1c b\u00e0i vi\u1ebft ti\u1ebfp theo, m\u00ecnh s\u1ebd \u0111i s\u00e2u h\u01a1n ch\u00fat v\u1ec1 c\u00e1c t\u00e0i nguy\u00ean m\u00e0 team \u0111ang s\u1eed d\u1ee5ng, c\u00f9ng c\u00e1c best practice. N\u00e0o, h\u00e3y c\u00f9ng ch\u1edd \u0111\u00f3n nh\u00e9!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trong ph\u1ea7n 1, m\u00ecnh \u0111\u00e3 gi\u1ea3i th\u00edch l\u00fd do t\u1ea1i sao EGANY ch\u1ecdn AWS l\u00e0m Cloud Server, c\u0169ng nh\u01b0 gi\u1edbi thi\u1ec7u v\u1ec1 c\u00e1c t\u00e0i nguy\u00ean AWS m\u00e0 team \u0111ang s\u1eed d\u1ee5ng. Tuy nhi\u00ean, vi\u1ec7c \u1ee9ng d\u1ee5ng v\u00e0 tri\u1ec3n khai m\u1ed9t c\u00f4ng ngh\u1ec7 m\u1edbi th\u00ec ch\u1eb3ng c\u00f3 g\u00ec l\u00e0 su\u00f4n s\u1ebb c\u1ea3. Trong qu\u00e1 tr\u00ecnh v\u1eadn h\u00e0nh, team \u0111\u00e3 g\u1eb7p ph\u1ea3i m\u1ed9t s\u1ed1 v\u1ea5n \u0111\u1ec1 nh\u1ee9c nh\u1ed1i v\u00e0 g\u00e2y t\u1ed1n k\u00e9m chi ph\u00ed. Ch\u00ednh v\u00ec th\u1ebf, trong b\u00e0i vi\u1ebft #2 n\u00e0y, m\u00ecnh s\u1ebd chia s\u1ebb v\u1ec1 3 V\u1ea5n \u0110\u1ec1 m\u00e0 team \u0111\u00e3 g\u1eb7p ph\u1ea3i, c\u00f9ng nh\u1eefng h\u01b0\u1edbng gi\u1ea3i quy\u1ebft. T\u1eeb \u0111\u00f3,<\/p>\n","protected":false},"author":1,"featured_media":1186,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[27],"tags":[128,146,148,133,47,131,87,145,149,147,135],"_links":{"self":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts\/1076"}],"collection":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/comments?post=1076"}],"version-history":[{"count":0,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/posts\/1076\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/media\/1186"}],"wp:attachment":[{"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/media?parent=1076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/categories?post=1076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egany.com\/blogs\/wp-json\/wp\/v2\/tags?post=1076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}