강의

멘토링

커뮤니티

BEST
Programming

/

Devops & Infra

Hướng dẫn đầy đủ về triển khai AWS (feat. Lightsail, Docker, ECS)

Trong bài giảng này, bạn sẽ tìm hiểu AWS ECS, một trong những công nghệ Điều phối vùng chứa tiêu biểu! Chúng tôi cũng xây dựng CICD bằng Github Action. Nhưng bạn không học ECS từ đầu. ECS có thể nói là DevOps đỉnh cao nên có vẻ quá khó. Vì vậy, khi bắt đầu khóa học, trước tiên chúng ta xây dựng kiến ​​thức cơ bản bằng cách sử dụng AWS Lightsail, dịch vụ có thời gian học tập tương đối thấp so với các máy chủ ảo truyền thống. Bạn cũng có thể cảm nhận được những hạn chế và bất tiện của các phương pháp hiện có. Bằng cách xây dựng những kiến ​​thức cơ bản và “Tại sao”, bạn sẽ học Docker Container và ECS một cách tự nhiên!

(4.8) 45 đánh giá

714 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

  • sihoon
Docker
Docker
CI/CD
CI/CD
AWS
AWS
aws-ecs
aws-ecs
Docker
Docker
CI/CD
CI/CD
AWS
AWS
aws-ecs
aws-ecs

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.8

5.0

jaykim

91% đã tham gia

Bài giảng rất hay ạ.

5.0

frenchkebab

100% đã tham gia

Đơn giản là quá hoàn hảo.... Tôi từng có một nỗi sợ mơ hồ về Docker và CI/CD, nhưng sau khi tham gia khóa học này... Tôi đã hoàn toàn tự tin. Đây là một khóa học tuyệt vời.

5.0

wonu U

64% đã tham gia

Tôi là người tìm việc phụ trợ mùa xuân. Mặc dù nó được tiến hành trong nút, nhưng bối cảnh tổng thể đã được giải thích nên tôi nghĩ nó cũng có thể được áp dụng trực tiếp cho mùa xuân. Khi làm side project, tôi chỉ sử dụng ec2 hoặc Beanstalk, nhưng đây là khóa học giúp tôi xây dựng cấu hình riêng phù hợp với mình sau này. Tôi sẽ lắng nghe cẩn thận những phần còn lại. Cảm ơn bạn đã cung cấp một bài giảng tuyệt vời! Chúc bạn cuối năm vui vẻ nhé~

Bạn sẽ nhận được điều này sau khi học.

  • Triển khai máy chủ ảo truyền thống - AWS Lightsail

  • Tính sẵn sàng cao

  • CI/CD sử dụng Github Action

  • Công nghệ container - Docker

  • Điều phối vùng chứa - Dịch vụ vùng chứa đàn hồi AWS (ECS)

  • Bảo mật đám mây

  • Docker Compose - Làm sạch nhà phát triển & Xây dựng môi trường thử nghiệm

Hiểu đúng về triển khai máy chủ AWS!
Tôi sẽ giải thích cho bạn một cách đơn giản và chắc chắn hơn.

Đây không chỉ là hướng dẫn đơn giản về AWS ECS & Docker!

Bạn sẽ được trải nghiệm trực tiếp những bất tiện khi triển khai máy ảo (VM) truyền thống. Điều này sẽ giúp bạn hiểu rõ nguyên nhân và học ECS & Docker một cách bài bản . 😎

Tại sao việc áp dụng AWS lại có cảm giác xa lạ đến vậy? 😥

Bạn đã bao giờ cảm thấy choáng ngợp khi sử dụng đám mây AWS chưa? Có rất nhiều cách để triển khai máy chủ trong AWS. Và quan trọng nhất, mỗi cấu hình đều khác nhau. Bạn chỉ muốn triển khai mã của mình một cách mạnh mẽ, tiết kiệm, an toàn và nhanh chóng. Nhưng có quá nhiều thiết lập không quen thuộc.

  • VPC?! Vậy thì Subnet là gì?
  • Khu vực khả dụng?
  • Còn nhóm bảo mật thì sao... đến? Chẳng phải nên cho phép tất cả các IP sao?
  • Liệu có an toàn hơn nếu đặt biến môi trường ở đây không?
  • IAM là cái quái gì thế?! Tại sao không cấp quyền AdminAccess?
  • Bộ cân bằng tải còn là gì nữa? Thiết lập quy tắc người nghe và nhóm mục tiêu...

Bạn đã bao giờ tự hỏi mình câu hỏi này sau khi vừa mới phân phối nó chưa?

  • Làm thế nào để tự động hóa việc triển khai? CI/CD? CI là gì và CD là gì?
  • Họ nói rằng bạn có thể tự động mở rộng quy mô bằng cách sử dụng đám mây, nhưng làm thế nào để thực hiện được điều đó?
  • Sự khác biệt chính xác giữa máy ảo và vùng chứa là gì?
  • Tại sao nên sử dụng container? Và Container Orchestration là gì?
  • Kubernetes so với Elastic Container Service (AWS ECS), tôi không biết sự khác biệt là gì.
  • Tôi hiểu Docker, nhưng Docker-compose là gì? Tôi có cần biết điều này không?
  • Tại sao không dùng một dịch vụ đám mây "dễ dùng" như Fly.io, Vercel hoặc Heroku? Chắc chắn là nó có thể đắt hơn một chút, nhưng chẳng phải nó sẽ giúp tôi tiết kiệm rất nhiều thời gian sao?

Tôi nghĩ hầu hết các bạn đã từ bỏ việc áp dụng AWS vì muốn tập trung vào phát triển dịch vụ hoặc chỉ thiết lập mọi thứ một cách tùy tiện để làm cho nó hoạt động.

Vấn đề là nếu thực hiện sai, bạn có thể gặp phải các lỗ hổng bảo mật nghiêm trọng và tốn kém. Và mặc dù việc xây dựng các máy chủ có tính khả dụng cao rất dễ dàng, bạn có thể không tận dụng được những lợi ích của đám mây.

Máy chủ có tính khả dụng cao rất quan trọng, đặc biệt là khi dịch vụ của bạn phát triển. Ngay cả khi thiên tai làm tê liệt hoàn toàn trung tâm dữ liệu của bạn, bạn vẫn có thể duy trì dịch vụ!

Tôi hy vọng rằng thông qua bài giảng này, nhiều người sẽ có thể hiểu đúng về AWS và sử dụng nó một cách dễ dàng.

Ban đầu, tôi dự định tạo một khóa học chỉ bao gồm Docker và AWS ECS. Tuy nhiên, tôi cảm thấy nó có thể quá phức tạp và khó hiểu tại sao những công nghệ này lại được phát triển. Vì vậy, để dễ hiểu hơn, tôi đã chia khóa học thành hai phần .

Phần đầu tiên đề cập đến "Phương pháp triển khai mạnh mẽ sử dụng máy chủ ảo truyền thống".
Tôi đã cố gắng giải thích điều này một cách đơn giản nhất có thể, sử dụng Lightsail thay vì EC2. Quy trình này bao gồm các khái niệm quan trọng liên quan đến việc triển khai máy chủ.

  • Tỷ lệ theo chiều ngang so với tỷ lệ theo chiều dọc
  • Không quốc tịch so với có quốc tịch
  • Vùng khả dụng cao và vùng khả dụng
  • Mạng riêng và tường lửa
  • Bộ cân bằng tải & HTTPS
  • Đường hầm SSH
  • Tự động hóa triển khai: CI/CD dựa trên yêu cầu kéo cho nhóm và CI/CD cho nhà phát triển đơn lẻ
  • Xử lý quy trình kiểm tra và xây dựng cho CI
  • Quản lý các biến môi trường một cách an toàn

Tiếp theo, chúng ta sẽ xem xét lại những hạn chế của máy chủ ảo và tìm hiểu cách công nghệ container có thể cải thiện những vấn đề này . Trong phần cuối, chúng ta sẽ đi sâu vào các nguyên tắc cơ bản của container Docker và tập trung vào AWS Elastic Container Service (ECS), một công nghệ điều phối container hàng đầu.

Dưới đây là một số tài liệu được sử dụng trong bài giảng :)


Hỏi & Đáp 🙋🏻‍♂️

H. Tôi có nên học ECS thay vì Kubernetes không?

Tôi đã sử dụng Kubernetes được khoảng năm năm. Tôi đã giới thiệu nó trực tiếp cho công ty khi triển khai MSA. Ngay cả lúc đó, tôi vẫn đang phân vân giữa K8S và ECS. Khía cạnh mã nguồn mở rất hấp dẫn, vì vậy tôi đã chọn Kubernetes ngay lúc đó.

Sau nhiều lần cân nhắc, tôi quyết định sử dụng ECS cho công ty mới của mình. Mặc dù ECS không phải là mã nguồn mở, nhưng tôi thấy nó dễ sử dụng hơn. Và rồi tôi nhận ra rằng vấn đề khóa nhà cung cấp thực sự nhỏ hơn nhiều so với dự đoán của tôi. Bất kể bạn sử dụng Kubernetes hay ECS, bạn đều đang sử dụng cùng một container Docker. Tất cả mã đều được viết trong cùng một môi trường Docker. Trên AWS, ECS hấp dẫn vì nó rẻ hơn một chút và có DX dễ dàng hơn một chút. Hơn nữa, cả Kubernetes và ECS đều là công nghệ điều phối container. Nói cách khác, nếu bạn giỏi một trong hai, việc chuyển sang cái còn lại sẽ dễ dàng đến bất ngờ.

H. Bạn nghĩ gì về các hệ thống không máy chủ như AWS Lambda?

Đây chắc chắn là một công nghệ tốt, và tôi sử dụng nó trong hướng dẫn tải ảnh của mình. Tuy nhiên, tôi không nghĩ nó phù hợp với các máy chủ thông thường, trừ khi có những trường hợp đặc biệt. Mặc dù có vẻ rất rẻ, nhưng nó nhanh chóng trở nên đắt đỏ hơn đáng kể khi lưu lượng truy cập tăng lên. Nó cũng rất dễ bị ràng buộc bởi nhà cung cấp, khiến việc chuyển đổi sang máy chủ thông thường sau này tương đối khó khăn.

Trước hết, vì Lambda là một máy chủ tồn tại trong thời gian ngắn nên việc tạo một máy chủ WebSocket khá khó khăn. Do đó, Vercel, đơn vị sử dụng AWS Lambda, đã nêu rõ trong tài liệu của mình rằng họ không hỗ trợ WebSocket và khuyến nghị sử dụng một dịch vụ bên ngoài. Ngoài ra, có thể còn có những vấn đề khác cần xem xét, chẳng hạn như việc quản lý nhóm kết nối cơ sở dữ liệu.

H. Tôi có cần biết Node.js không?

Không! Trong khóa học này, ban đầu chúng ta sẽ xây dựng một backend đơn giản (ứng dụng Express) bằng Node.js. Tuy nhiên, mục đích của khóa học này chỉ là cung cấp mã để triển khai. Khóa học cũng nhằm mục đích thêm mã kiểm thử giả và xây dựng các quy trình để xây dựng một pipeline CI. Toàn bộ mã Node.js được tạo ra ở đây đều được cung cấp, vì vậy bạn có thể bỏ qua phần này.

H. Bạn có tìm hiểu về việc triển khai các dịch vụ có trạng thái, chẳng hạn như cơ sở dữ liệu hoặc hàng đợi tin nhắn như Kafka và quản lý máy chủ không?

Các dịch vụ có trạng thái như cơ sở dữ liệu và hàng đợi tin nhắn phức tạp hơn và đòi hỏi nhiều quản lý hơn bạn nghĩ. Khóa học này tập trung vào việc triển khai các dịch vụ do bạn tự phát triển (backend, đường ống ETL, máy chủ SSR), thay vì các dịch vụ bên ngoài phức tạp như cơ sở dữ liệu.

Mặc dù tài liệu được đề cập ở đây chắc chắn có liên quan đến việc triển khai các dịch vụ phức tạp như cơ sở dữ liệu, nhưng nếu bạn muốn triển khai cơ sở dữ liệu của riêng mình, bạn sẽ cần tìm hiểu thêm. Đối với các dịch vụ có trạng thái như cơ sở dữ liệu và hàng đợi (Kafka), dịch vụ được quản lý được khuyến nghị! Hầu hết các dịch vụ được quản lý đều được hỗ trợ bởi chính AWS, trong khi một số khác là các đám mây được quản lý do các nhà cung cấp dịch vụ riêng lẻ cung cấp.

Ví dụ, với Kafka, có Confluent hoặc AWS MSK, và với MongoDB, có Atlas hoặc AWS DocumentDB. Các dịch vụ được quản lý này tồn tại cho từng dịch vụ ngay từ đầu vì việc quản lý máy chủ cho các dịch vụ này phức tạp hơn bạn nghĩ! Do đó, ngay cả khi bạn đang học khóa học này, tôi vẫn thực sự khuyên bạn nên sử dụng các dịch vụ được quản lý cho các dịch vụ có trạng thái này!

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • nhà phát triển phụ trợ

  • Kỹ sư DevOps

  • kỹ sư dữ liệu

Cần biết trước khi bắt đầu?

  • Tìm hiểu về phát triển web và máy chủ cơ bản

Xin chào
Đây là

2,717

Học viên

188

Đánh giá

261

Trả lời

4.7

Xếp hạng

3

Các khóa học

Hiện tại, tôi đang đảm nhận vai trò CTO tại Ninjalerts, một startup nhỏ do tôi đồng sáng lập. Ninjalerts là dịch vụ cung cấp thông báo thời gian thực về các thông tin giao dịch NFT dựa trên dữ liệu blockchain Ethereum!

Trước đây, tôi từng giữ chức vụ Trưởng nhóm phát triển tại Manna CEA. Ban đầu tôi xuất phát là một người lập kế hoạch, nhưng do thiếu nhân lực phát triển nên thay vì thuê ngoài, tôi đã có cơ hội tự mình lập trình và may mắn chuyển sang làm nhà phát triển từ đó. Sau này, tôi đảm nhận vị trí Trưởng nhóm phát triển thương mại điện tử khi trực tiếp xây dựng hệ thống bán hàng riêng cho công ty.

Nhờ có nhiều tài liệu hay trên mạng mà tôi đã có thể phát triển nhanh chóng. Hy vọng những bí quyết của tôi cũng sẽ giúp ích cho các bạn :) Hồ sơ Linkedin

Chương trình giảng dạy

Tất cả

117 bài giảng ∙ (14giờ 29phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

45 đánh giá

4.8

45 đánh giá

  • jay6106님의 프로필 이미지
    jay6106

    Đánh giá 1

    Đánh giá trung bình 4.0

    4

    100% đã tham gia

    Đó là một bài giảng tốt. Tôi đã có thể nhanh chóng nghe về cơ sở hạ tầng. Tuy nhiên, khi tôi cố gắng xem lại nó một thời gian sau khi bài giảng kết thúc, tôi cảm thấy tiếc nuối vì phải nghe lại. Tôi nghĩ sẽ rất tốt nếu có tài liệu giảng dạy để giúp tôi nhìn lại những kỷ niệm của mình. Cảm ơn bạn vì bài giảng tuyệt vời.

    • sihoon
      Giảng viên

      Cảm ơn phản hồi tốt của bạn, tôi sẽ tham khảo khi tạo bài giảng tiếp theo!

  • ybsong5089님의 프로필 이미지
    ybsong5089

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

    • taehyeonpark3462님의 프로필 이미지
      taehyeonpark3462

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • baek9106236223님의 프로필 이미지
        baek9106236223

        Đánh giá 7

        Đánh giá trung bình 5.0

        5

        31% đã tham gia

        • jaykim4823님의 프로필 이미지
          jaykim4823

          Đánh giá 2

          Đánh giá trung bình 5.0

          Đã chỉnh sửa

          5

          91% đã tham gia

          Bài giảng rất hay ạ.

          Ưu đãi có thời hạn, kết thúc sau 1 ngày ngày

          1.204.991 ₫

          24%

          1.587.061 ₫

          Khóa học khác của sihoon

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!