[AWS] Bài 02 - Hướng Dẫn Cài Đặt Elastic Compute Cloud (EC2) Window
Bài viết này mình tập trung chủ yếu vào Elastic Compute Cloud (EC2). Nhằm hướng dẫn cho anh em lập trình viên nhà mình có một cái nhìn tổng quan nhất về EC2 chẳng hạn như: EC2 là gì? Lợi ích của EC2? Qua bài viết hy vọng có thể support được mọi người có thêm kiến về AWS EC2. OK Let’s Go.
![[AWS] Bài 02 - Hướng Dẫn Cài Đặt Elastic Compute Cloud (EC2) Window](https://api.careers.saigontechnology.com/storage/blogs/BLOG-KLB0WqqISCKSZHKpuPyQa2qGLiCXDH98DHXcFvKP.jpeg)
Giới Thiệu Về EC2
Mình đã có một bài giới thiệu tổng quan về Amazon Web Service. Các bạn có thể xem lại ở đây [AWS] Bài 01: Giới Thiệu Về Amazon Web Service (AWS)
Trước hết anh em coder mình cùng nhau tìm hiểu về Elastic Compute Cloud để biết xem em nó là gì. Elastic Compute Cloud hay còn được gọi với một cái tên thân mật là EC2. Đây là một service rất thông dụng và nổi tiếng của AWS, cung cấp hệ thống máy tính ảo theo nhu cầu của người sử dụng.
Với EC2 chúng ta có thể dễ dàng tạo ra một máy tính ảo chạy một hệ điều hành bất kỳ. Ngoài ra, người dùng cũng có thể dễ dàng tăng hoặc giảm tài nguyên của máy ảo như CPU, RAM…
Điểm Mạnh Của EC2
Như mình có đề cập ở phần trên thì EC2 cung cấp cho chúng ta các máy tính ảo hóa. Dĩ nhiên đối với các bạn developer, ít nhiều trong quá trình làm việc cũng cần phải thao tác trên một hệ điều hành nào đó, khác với hệ điều hành đang chạy trên máy host.
Lấy một ví dụ như sau: mình coding một application bằng ngôn ngữ Java trên hệ điều hành Window. Nhưng khi deploy thì lại phải deploy lên một con server chạy hệ điều hành Ubuntu. Tuy nhiên, mình lại không có kinh nghiệm trên Ubuntu và mình cần tìm hiểu về cách sử dụng hệ điều hành đó trước. Hoặc một ví dụ khác là mình đang sử dụng Macbook nhưng lại cần phải thao tác trên Window…cuộc sống đúng là khó khăn mà.
Giải pháp cho vấn đề trên là mình có thể cài đặt máy tính ảo trên VirtualBox hoặc mình cũng có thể sử dụng Docker. Ở đây, mình muốn giới thiệu thêm cho các bạn một giải pháp khác nữa, đó chính là sử dụng EC2 của AWS.Vậy nếu sử dụng EC2 thì nó có gì sang xịn mịn hơn VirtualBox hoặc Docker? Thật ra thì cũng tùy thuộc vào nhu cầu của người sử dụng, nếu chỉ cần một máy ảo với tài nguyên nhỏ hoặc vừa, kiểu như cần một máy ảo Ubuntu với RAM khoản 4G, nhằm mục đích mày mò học hỏi CLI lúc đó dùng VirtualBox or Docker thì vẫn cực kỳ tốt và tiện lợi.
Nhưng với nhu cầu cao hơn thì sao? Mình cần một máy server Ubuntu, RAM là 32G để triển khai một hệ thống micro-services siêu to khổng lồ cho công ty Saigon Technology. Rõ ràng các phần mềm ảo hóa chạy trên máy host sẻ khó có thể đáp ứng được yêu cầu này. Lúc này, giải pháp có thể là mình đi thuê hoặc mua một máy chủ vậy lý. Tuy nhiên với giải pháp này mình lại phải tự setup các phương thức để bảo mật server, rồi khi cần nâng cấp resource cũng là một vấn đề lớn, chưa kể tới việc có khi mình cần nhiều hệ điều hành như Ubuntu, Centos…
Amazon EC2 hoàn toàn có thể giúp anh em mình giải quyết những vấn đề trên.
- Mình có thể dễ dàng tạo ra một hoặc nhiều máy chủ ảo hóa nhanh chóng với thông số resource như CPU , RAM và hệ điều hành được chỉ định.
- Khi không có nhu cầu sử dụng nữa, thì mình có thể stop máy chủ lại hoặc xóa hẳn khỏi EC2.
- Thông tin đăng nhập vào máy chủ được bảo mật và sử dụng cơ chế keypair (public và private key).
- EC2 còn cung cấp tính năng giúp mình thiết lập rank IP Private.
- Chúng ta cũng có thể cấu hình Security Group và Network ACLS để kiểm soát inbound và outbound cho từng instance EC2.
- EC2 cung cấp IPv4 tĩnh.
- Virtual Private Clouds (VPC): Giúp cho bạn có thể cô lập hoặc kết nối các máy chủ ảo hóa với nhau.
Hạn Chế Của EC2
Hạn chế thứ nhất mình muốn đề cập là là về chi phí. Cái này cũng không hẳn là hạn chế, nếu bạn cần một máy ảo mạnh mẽ thì dĩ nhiên bạn phải chịu chi phí hàng tháng khá cao. Mọi thứ hầu như đã được support tận răng rồi, mình chỉ sử dụng thôi mà, nên tốn thêm chi phí thì cũng hợp lý. Tuy nhiên nếu mình cần một máy ảo nhỏ gọn kiểu để học hỏi là chính thì mình có thể dùng Free-Tier, tuy nói là free nhưng nó support khá tốt cho anh em. Chổ này anh em cần chú ý là nếu không sử dụng thì nên stop hoặc xóa Instance của EC2 luôn để tránh AWS charge phí lưu trữ nha.
Hạn chế thứ hai đó là khi mình stop instance đi do không có nhu cầu sử dụng, thì lúc mình start lại instance đó, địa chỉ IPv4 đã sẽ bị thay đổi. Này là một câu chuyện buồn của mình, khi mình tìm hiểu về EC2 do cũng muốn tiết kiệm chi phí nên mình stop instance lại khi nào cần thì start lên. Lúc đó, start lên thì mình lại không connect lại được bằng CLI. Kết quả là tốn hết một ngày mới mò ra lý do. Buồn dễ sợ.
Nếu mình chưa có kinh nghiệm trên VPC hoặc cách cấu hình Security Group, IAM…thì đây cũng là một hạn chế dẫn đến nhiều khó khăn trong việc sử dụng EC2
EC2 là một IaaS (Infrastructure as a service) nên việc sử dụng EC2 còn phụ thuộc vào network. Do đó nếu network của bạn không ổn định hoặc đường truyền internet yếu thì việc kết nối đến EC2 cũng không được mượt mà.
Qua bài viết mình đã giới thiệu về EC2, điểm mạnh và những hạn chế của công nghệ này, hy vọng có thể support được mọi người có thêm kiến thức bước vào thế giới “mênh mông” của AWS. Tiếp theo mình có làm một video hướng dẫn mọi người cài đặt một máy EC2 chạy hệ điều hành Window.
Hướng dẫn Setup một EC2 với Hệ Điều Hành Window
Mình có làm một video để hướng dẫn mọi người cách cài đặt một máy chủ Window trên nền tảng AWS EC2. Mọi người có thể xem qua video ở setup-ec2-window . Tùy vào từng thời điểm có thể giao diện của AWS Console khác đôi chút so với video của mình.
Các bài viết trong cùng chủ đề về AWS
OTHER ARTICLES FROM WIND