강의

멘토링

로드맵

Inflearn brand logo image
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) 43 đánh giá

693 học viên

  • sihoon
이론 실습 모두
Docker
CI/CD
AWS
aws-ecs

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

Dịch cái này sang tiếng Việt

  • 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,686

Học viên

182

Đánh giá

261

Trả lời

4.7

Xếp hạng

3

Các khóa học

현재 공동창업한 작은 스타트업 Ninjalerts에서 CTO역할로 일하고 있습니다. Ninjalerts는 이더리움 블록체인 데이터를 기반으로 NFT 거래 정보들을 실시간으로 알려주는 서비스에요!

전에 만나씨이에이에서 개발 팀장으로 있었어요. 시작은 기획자였는데 개발자가 부족한 탓에 외주를 맡기려다가 직접 개발할 기회가 생기면서 운 좋게 개발자로 전향했어요. 이후 자사몰을 자체 개발하면서 이커머스 개발팀장을 맡았어요.

온라인에 나온 다양한 좋은 자료들 덕분에 빠르게 성장할 수 있었어요. 제 노하우가 여러분들에게도 도움이 되길 바랍니다 :) 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ả

43 đánh giá

4.8

43 đánh giá

  • 하이님의 프로필 이미지
    하이

    Đánh giá 23

    Đánh giá trung bình 4.5

    3

    100% đã tham gia

    커리큘럼 좋습니다. 가상 서버와 도커까지 한 번에 훑을 수 있어서 좋아요. 전반적으로 클라우드 서비스에 대해서 개괄적으로 훑고 싶은 분들에게 추천해요. 어떤 개념에 대해서 설명할 때 사용한 도표같은 것도 공유되면 더 좋았을건데 이 부분은 조금 아쉬운 부분이긴 합니다만 뭐 이해되는 부분이라 그냥 아쉬운 정도. 전반적으로 즉석에서 설명하면서 강의를 진행하는 느낌입니다. 그래서 좀 설명이 정리가 안 된 것 같다고 생각될 때가 많아 여러 번 봐야 하는 경우가 꽤 많습니다. 나중에 자세히 알려준다고 하고서 안 알려주는 것들도 좀 있어요. 이러한 부분 때문에 대본이 없고 즉석에서 설명하나 생각이 들었습니다. 그리고 영어를 좀 많이 써서 무슨 말이지 싶을 때가 종종 있어요. 맘에 드는 부분도 크고 아쉬움도 큰 강의입니다.

    • jay님의 프로필 이미지
      jay

      Đánh giá 1

      Đánh giá trung bình 4.0

      4

      100% đã tham gia

      좋은 강의입니다. 빠르게 인프라에 관해 들을 수 있었습니다. 하지만, 강의가 끝나고 시간이 지나서 리뷰하려고 보니 다시 들어야 하는 아쉬움이 있네요. 기억을 되돌아보기 위해서라도 강의자료가 있다면 좋을 거 같습니다. 좋은 강의 감사합니다.

      • 김시훈 (도도소프트)
        Giảng viên

        좋은 의견 감사합니다~ 다음 강의 제작할 때 참고하겠습니다!

    • ybsong님의 프로필 이미지
      ybsong

      Đánh giá 1

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      • 박태현님의 프로필 이미지
        박태현

        Đánh giá 1

        Đánh giá trung bình 5.0

        5

        100% đã tham gia

        • MINHYEOK PARK님의 프로필 이미지
          MINHYEOK PARK

          Đánh giá 7

          Đánh giá trung bình 5.0

          5

          31% đã tham gia

          Ưu đãi có thời hạn

          57.750 ₫

          25%

          1.614.287 ₫

          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!