Khi nhắc tới Amazon thì có lẽ nhiều người sẽ nghĩ ngay tới một sàn thương mại điện tử lớn và nổi tiếng bậc nhất thế giới.
Nhưng có thể bạn cũng thừa biết, ngoài thương mại điện tử ra, Amazon còn là một cái tên rất nổi tiếng trong lĩnh vực điện toán đám mây với dịch vụ Amazon Web Services (AWS), và nó đang cạnh tranh trực tiếp với các ông lớn như Microsoft và Google.
Về khoản chất lượng dịch vụ thì khỏi phải bàn rồi, rất nhiều các công ty tập đoàn lớn trên thế giới như BMW, Lamborghini, bộ ngoại giao Hoa Kỳ, NASA, Facebook, Netflix, ICRAR, Twitch, LinkedIn, BBC và hàng chục cái tên cộm cán khác đã và đang sử dụng dịch vụ điện toán đám mây EC2 của Amazon.
Và EC2 cũng là một trong những dịch vụ quan trọng bậc nhất của Amazon AWS, bên cạnh dịch vụ lưu trữ Amazon S3 và mạng phân phối nội dung (CDN) Amazon RDS.
Vâng, vrong bài viết dưới đây, mình sẽ hướng dẫn chi tiết cho các bạn cách để tự tạo máy chủ ảo EC2 Instance Linux trên Amazon AWS một cách dễ hiểu nhất nhé !
#1. EC2 là gì? và một số khái niệm cần biết khi làm việc với EC2
NOTE: Bài viết này có nhiều thuật ngữ mà các newber sẽ không hiểu, vì nó liên quan nhiều đến kỹ thuật, liên quan nhiều đến webmaster. Nếu bạn muốn tìm hiểu sâu hơn thì có thể Google những thuật ngữ mà bạn không hiểu để tìm hiểu thêm nhé !
Như mình đã nói bên trên, Amazon Elastic Compute Cloud – Amazon EC2 là một trong những dịch vụ rất nổi tiếng và quan trọng bậc nhất của AWS, đây là một cơ sở hạ tầng điện toán đám mây có nhiệm vụ cung cấp tài nguyên máy tính ảo hóa theo yêu cầu.
Amazon EC2 cung cấp các máy tính ảo hóa (VPS) có thể mở rộng về khả năng xử lý cùng các thành phần phần cứng ảo như RAM, CPU..
Nói chung là rất linh hoạt trong việc lựa chọn các phân vùng lưu trữ dữ liệu ở các nền tảng khác nhau, và điểm mạnh nữa là tính bảo mật trong quản lý dịch vụ bởi kiến trúc ảo hóa mạnh mẽ của AWS.
Vâng ! Nói ngắn gọn và dễ hiểu thì EC2 là một dịch vụ cho thuê máy chủ ảo (VPS) của AWS.
EC2 Instance Linux là tên gọi của một máy chủ ảo chạy hệ điều hành Linux, trong đó Instance
tương đương với từ VPS
.
Amazon Machine Image – AMI là một file bộ cài hệ điều hành đã được AWS cài sẵn các phần mềm, công cụ cần thiết cho từng nhu cầu và đóng gói lại thành những template để bạn lựa chọn.
Khi bạn chọn một AMI
bất kỳ thì AWS
chỉ việc giải nén file bộ cài đó ra ổ cứng của VPS vừa tạo (giống như chúng ta ghost win) rồi đưa cho bạn sử dụng thôi, nhanh hơn rất nhiều so với phương pháp cài từ file ISO truyền thống.
Hệ thống AMIs
của Amazon EC2 khá phong phú và đa dạng, đầy đủ cho hầu hết các nhu cầu sử dụng của bạn, hỗ trợ cả Windows Server và Linux.
Ngoài ra, bạn còn có thể tự tạo AMI nữa, nhưng tất nhiên mình sẽ không hướng dẫn trong bài viết này, vì nó rất dài dòng và phức tạp.
Key Pair là một cặp Private key
và Public key
sử dụng để kết nối SSH vào EC2 Instance Linux, sẽ chỉ được cấp một lần duy nhất khi tạo EC2 Instance mới.
Một khi đã làm mất sẽ không có cách nào để lấy lại, đồng nghĩa với việc bạn có khả năng mất quyền truy cập vào máy chủ ảo (VPS) của chính mình.
Bạn cũng không được để lộ Key Pair ra ngoài (đặc biệt là Private key
) vì ai có Key Pair và IP máy chủ ảo tương ứng thì đều có thể kết nối SSH vào được.
Riêng với Windows thì phải có Key Pair bạn mới lấy được tài khoản và mật khẩu kết nối Remote Desktop. Cách kết nối SSH cũng như Remote Desktop vào EC2 Instance mình sẽ có bài viết hướng dẫn sau.
Security Group là một lớp tường lửa có nhiệm vụ kiểm soát các kết nối vào ra máy chủ EC2 Instance của bạn.
Mỗi EC2 Instance sẽ có 2 lớp tường lửa quản lý kết nối gồm: Tường lửa cục bộ của hệ điều hành (iptables, ufw, Windows Firewall) trên Linux/Windows và Security Group Firewall.
#2. Cách tạo máy chủ ảo EC2 Instance Linux trên Amazon AWS
+ Bước 1: Đầu tiên thì bạn hãy tiến hành đăng nhập vào tài khoản ở trang quản lý dịch vụ của Amazon AWS Management Console tại đây.
Chưa có thì tạo mới tài khoản nhé các bạn !
Từ trang AWS Management Console, bạn bấm vào phần Services
=> sau đó chọn EC2
để truy cập giao diện quản lý EC2 Dashboard
trên Amazon AWS.
+ Bước 2: Khác với những dịch vụ cho thuê VPS khác, với Amazon AWS bạn sẽ phải chọn vị trí đặt máy chủ ngay từ ban đầu và cũng sẽ không thể thay đổi về sau.
Khu vực đặt máy chủ mặc định sau khi bạn tạo tài khoản xong sẽ là Bắc Virginia (N. Virginia), Mỹ
.
Khu vực này cách khá xa Việt Nam, vậy nên bạn hãy chuyển về một khu vực gần hơn đó là Châu Á -Thái Bình Dương (Asia Pacific)
.
Ở khu vực Asia Pacific
, bạn hãy ưu tiên chọn các máy chủ Hong Kong
, Singapore
và Tokyo
để có tốc độ truy cập nhanh nhất.
Riêng với tài khoản
AWS Free Tier
sẽ không chọn được khu vực Hong Kong còn Tokyo và Sing thì thoải mái nha các bạn ?
+ Bước 3: Tiếp theo, chọn tab Instances
ở phần sidebar bên trái màn hình => rồi sau đó bấm vào nút Launch Instance
để tạo một EC2 Instance
mới.
+ Bước 4: Chọn hệ điều hành – AMI
Mình đã có giới thiệu chi tiết AMI là gì ở bên trên rồi nên mình không nói lại nữa ha.
Có khá nhiều hệ điều hành từ Linux cho tới Windows cho bạn lựa chọn, ở đây mình dùng cần tạo server để chạy NodeJS nên sẽ chọn là Ubuntu 20.04 LTS
nhé.
Về phần kiểu hệ điều hành, các bạn nhớ để mặc định là 64-bit (x86)
=> sau đó bấm Select
để qua bước tiếp theo.
+ Bước 5: Chọn Instance Type – Cấu hình phần cứng EC2 Instance
Tất nhiên khi tạo một EC2 Instance mới, bạn sẽ cần phải lựa chọn các thông số cấu hình vừa với nhu cầu sử dụng của bản thân.
Hiện AWS
cung cấp hơn 100 cấu hình máy chủ được tối ưu phù hợp cho từng loại nhu cầu khác nhau gọi là Instance Type
và họ không cho phép bạn tự tùy chỉnh cấu hình phần cứng như đối với Google Cloud.
Tuy nhiên, với những ai đang sử dụng tài khoản AWS Free Tier
miễn phí 12 tháng thì chỉ được phép sử dụng một cấu hình (Instance Type) duy nhất là t2.micro
(1 vCPUs Intel Xeon 2.5GHz, 1 GiB RAM). Cấu hình này quá dư giả cho mục đích thử nghiệm, học tập rồi các bạn ạ ?
Bạn vẫn sẽ chọn được các cấu hình khác mạnh mẽ hơn nhưng sẽ phải trả phí theo thời gian sử dụng và trừ tiền trong thẻ ngân hàng được liên kết lúc tạo tài khoản.
=> Bạn chọn gói t2.micro
=> rồi bấm Next : Configure Instance Details
để qua bước tiếp.
+ Bước 6: Thiết lập nâng cao – Configure Instance
Tới bước thiết lập nâng cao, đây đa số là các tính năng đặc biệt và có tính phí của AWS.
Nếu bạn là một người đang trong quá trình tìm hiểu cũng như chưa có kiến thức chuyên sâu về máy chủ ảo EC2 Instance Linux của Amazon thì mình khuyến khích các bạn nên giữ nguyên các thiết lập mặc định.
Nhưng mình sẽ giải thích thêm một chút về các thông số, bạn có thể tìm hiểu nếu thích nhé:
- Number of instances: Đây là số lượng Instance mà ta sẽ thực hiện chạy cùng một lúc, với cùng một AMI Image đã chọn.
- Purchasing option: Tùy chọn này sẽ giúp chúng ta thực hiện việc bid spot instances .
- Network: Lựa chọn VPC (nếu có), còn không thì bạn hãy sử dụng mặc định là VPC của Amazon . Việc thuê VPC sẽ phải mất thêm phí vì nó không nằm trong gói Free Tier.
- Subnet: Cái này thì bạn có thể lựa chọn 1 trong 3 zone a , b , c tùy ý .
- Auto-assign Public IP: Phần này là tự gán địa chỉ IP Public tùy ý ta nên bạn để mặc định nhé.
-
IAM role: Mình để là
None
vì hiện tại chưa cần dùng đến . -
Shutdown behavior : Bạn nên để là
Stop
. Mục đích là để tránh trường hợp bạn thực hiện lệnh shutdown thì Instance sẽ bị terminate. - Enable termination protection: Bạn có thể chọn tùy chọn này nếu muốn. Tùy chọn này sẽ giúp bạn tránh được việc terminate instance ngoài ý muốn.
- Monitoring: Tùy chọn này sẽ giúp bạn giám sát Instance một cách chi tiết hơn. Chỉ số của Instance sẽ được collect 1 phút 1 lần thay vì 5 phút 1 lần. Và với chức năng này bạn sẽ phải trả phí vì nó không nằm trong Free Tier.
- Tenancy: Lựa chọn Share – Run a shared hardware instance thì bạn sẽ không phải trả thêm phí thuê underlying host.
- Network Interfaces : Amazon sẽ tự assign cho bạn 1 IP nếu bạn không define Primary IP.
Ngoài ra, bạn cũng có thể truy cập vào trang hướng dẫn của Amazon EC2 tại đây để tìm hiểu chi tiết về những tính năng trong phần
Configure Instance
này..
+ Bước 7: Cấu hình ổ cứng – Add Storage
Tài khoản AWS Free Tier sẽ chỉ được sử dụng tối đa 30GB
ổ cứng loại ESB là General Purpose SSD (gp2)
hoặc Magnetic
.
Bạn nhập dung lượng mong muốn vào ô Size (GiB)
, phần Volume Type
bạn giữ nguyên là General Purpose SSD (gp2)
=> sau đó bấm Next : Add Tags
để tiếp tục.
Lưu ý là khi bạn xóa một EC2 Instance thì ổ cứng tương ứng cũng sẽ bị xóa theo, để có thể giữ lại ổ cứng cho mục đích sử dụng khác bạn hãy bỏ tích ở ô Delete on Termination
.
+ Bước 8: Gắn tag cho EC2 Instance – Add Tags
Hiểu đơn giản thì việc gắn tag EC2 Instance sẽ giúp phân loại và quản lý các máy chủ ảo trở nên dễ dàng và tiện hơn rất nhiều.
=> Ở trong bài hướng dẫn này chúng ta tạm thời bỏ qua phần gắn tag cho EC2 Instance, việc này chưa cần thiết nha các bạn.
+ Bước 9: Cấu hình tường lửa – Configure Security Group
Cấu hình trong phần Security Group
này sẽ cho phép bạn truy cập và sử dụng một số dịch vụ nào đó của EC2 Instance ví dụ như HTTPS, HTTP, FTP, MySQL,..
Cần dùng dịch vụ nào thì mở cổng (Port) trên tường lửa cho dịch vụ đó bằng cách bấm vào nút Add Rule
=> rồi chọn dịch vụ tương ứng ở ô Type
. Lưu ý:
- Đối với EC2 Instance chạy Linux thì dịch vụ cần phải mở là
SSH
(Port 22) còn Windows làRemote Desktop
(Port 3306). Nếu dùng làm server web thì cần mở thêmHTTPS
(443) vàHTTP
(80). - Phần
Source
cho biết những truy cập từ IP nào sẽ được chấp nhận còn không sẽ chặn lại, để mặc định là0.0.0/0
sẽ cho phép tất cả IP đều có thể truy cập vào dịch vụ đó. Còn nếu bạn có thông tin IP cụ thể thì hãy nhập vào ôSource
này.
Mỗi lần bạn tạo một EC2 Instance mới bạn sẽ được lựa chọn tạo mới hay sử dụng Security Group có sẵn, nếu đã tạo trước đó rồi thì có thể chọn Select an existing Security Group
để sử dụng lại, đỡ mất thời gian cấu hình lại
=> Làm xong bạn bấm Review and Launch
.
+ Bước 10: Bạn sẽ được xem tổng quan về cấu hình cũng như các thiết lập ổ cứng, tường lửa, tag, v.v… trước khi xác nhận tạo mới EC2 Instance.
Nếu như có gì đó sai sót, bạn có thể bấm nút Previous
để quay lại các bước trước đó và sửa. Còn nếu mọi thứ chuẩn chỉnh hết rồi => hãy bấm Launch
để xác nhận tạo mới EC2 Instance.
+ Bước 11: Tới đây, một popup sẽ hiện lên cho bạn các lựa chọn về sử dụng Key Pair.
Nếu là lần đầu tiên tạo EC2 Instance, bạn sẽ phải chọn Create new key pair
để tạo mới và mình cũng khuyến khích các bạn sử dụng lựa chọn này.
Nhập tên Keypair ở ô Key pair name
=> rồi bấm Download Key Pair
để tải xuống. Tải xong thì AWS mới cho phép bạn Launch Instances
.
Ngoài ra, bạn còn có thể chọn sử dụng Key pair có sẵn (
Choose an existing keypair
) mà bạn đã tải về trên máy tính hoặc lưu ở đâu đó. Có thể dùng chung 1 Key pair cho nhiều Instance khác nhau ở các khu vực khác nhau.Hoặc không dùng Key pair nếu bạn chọn
Proceed without keypair
. Lựa chọn này không an toàn chút nào, bởi bất kỳ ai có IP EC2 Instance của bạn thì đều có thể SSH hoặc Remote vào.Giống như việc bạn để xe máy giữa đường mà không cất chìa khóa vậy, ai cũng có thể lấy và đi như xe ? Nên mình không khuyến khích sử dụng tùy chọn này nhé.
Tải xong Key Pair
về rồi thì nhớ lưu lại để còn sử dụng và bây giờ mình sẽ hướng dẫn cho các bạn cách kết nối SSH
vào EC2 Instance Linux
bằng Key Pair ở bài viết sau nha.
+ Bước 12: Bạn chờ một chút và trang Launch Status
kèm thông báo Your instances are now Launching
sẽ xuất hiện như hình bên dưới cho biết EC2 Instance đã được khởi tạo thành công.
Vậy là xong rồi đó, giờ bạn có thể quay lại trang quản lý và bắt đầu sử dụng EC2 Instance của mình rồi..
#3. Lời kết
Vâng, như vậy là mình đã vừa hướng dẫn xong cho các bạn cách tạo máy chủ ảo EC2 Instance Linux trên Amazon AWS rồi ha.
Nhìn dài dòng và phức tạp vậy thôi nhưng khi làm thật thì vô cùng đơn giản và nhanh chóng. Và nếu bạn đang có ý định sử dụng VPS tại Amazon AWS để làm Server VPN trong mùa dịch này thì cứ yên tâm nha, chất lượng vô cùng tuyệt vời đó.
Và để làm được điều đó, bài viết tiếp theo mình sẽ hướng dẫn cho các bạn cách sử dụng Key Pair
để kết nối SSH vào EC2 Instance Linux nha. Chúc các bạn thành công !
CTV: Nguyễn Thanh Tùng – Blogchiasekienthuc.com