Đăng ký Server Linux free với Amazon Web Service và hướng dẫn sử dụng cơ bản
Bài đăng này đã không được cập nhật trong 6 năm
1. Mở đầu
- 
Đối với các lập trình viên nói chung, đặc biệt là lập trình viên webnói riêng, khi nhắc tớideploy projetclên server hẳn là một điều gì đó khá kích thích.
- 
Nôm na ở mức cơ bản nhất, khi bạn lập trình website, sản phẩm đang chạy ở localhosttrên máy của bạn, thì chỉ córất ítngười có thể tận hưởng thành quả này.
- 
Bạn muốn thầy cô, bạn bè, người yêu hay cả thế giớicũng có thể trải nghiệm thành quả đó thì hãytriển khai websitelên chiếc máy khác, mà ở đó, mọi người đều có thể truy cập để tận hưởng thành quả của bạn 
Đó chính là deploy: Triển khai sản phẩm vào đời sống

Vậy kiếm chiếc máy đó ở đâu ?
Tuy nhiên, cùng tìm hiểu thêm một chút đã nhé
2. Cấu trúc
2.1 Mô hình
- 
Chiếc máy đó chính là server, hay còn gọi làmáy chủ- 
Máy chủ (server) là máy có chức năng lưu trữ, cung cấp hoặc xử lýthông tin.
- 
Các máy khách (client) gửi lênhoặctải xuốngdữ liệu từ máy chủ.
 
- 

Người yêu, hay bạn bè hay thầy cô của bạn có thể dùng laptop, điện thoại hoặc PC (ở bên trái), thông qua mạng interet để tiếp cận với server (ở bên phải - nơi bạn đặt ứng dụng của bạn làm ra).
Đây chính là mô hình Client - Server.
2.2 Các loại server
- Căn cứ theo phương pháp tạo ramáy chủ, ta có ba loại:- 
Máy chủ chuyên dụng(Dedicated Server):- 
Chúng ta sẽ thuê cả một chiếc máy thật, bao gồm từphần cứng chuyên dụngcho đến cácthiết bị hỗ trợnhư ổ cứng, CPU, RAM, card mạng ...
- 
Với cách này thì sẽ thực sự sở hữu nguyên một chiếc máy server, không chung chạgì với cha con đồng chí nào cả.
 ![]() - 
Tuy nhiên, giá thànhsẽ rất cao, mình không nghĩ là có đơn vị nào cung cấp free nó cả.
- 
Và việc nâng cấphoặc thay đổicấu hìnhcủa máy chủ riêng đòi hỏi phảithay đổi phần cứngcủa máy chủ, khá mất thời gian vàthủ công.
- 
Nó sẽ phù hợp với doanh nghiệp mà thông tin được chuyên biệt hóa, hoặc ứng dụng liên quan đếnphần cứng, cácthuộc tínhtrên phần cứng, doanh nghiệpkiểm soátđược hoàn toàn thông tin của công ty.
 
- 
- 
Máy chủ ảo(Virtual Private Server – VPS):- Từ lý do phải dùng cả máy chủ lớn, chi phí cao, người ta dùngcông nghệ ảo hóa(virtualization) để từ mộtmáy chủ vật lýcó thể chạy nhiềumáy chủ ảo, rồi sau đó chúng ta sẽ thuê những máy chủ ảo này.
 ![]() - 
Các máy chủ ảo dùng tài nguyêntừ máy chủ vật lý gốc. Việc nâng cấp hoặc thay đổi cấu hình của máy chủ ảo rấtđơn giản, có thể thay đổi trực tiếp trên phần mềm. Tuy nhiên lại bịgiới hạnbởi tài nguyên của máy chủ vật lý
- 
Tư tưởng của việc này có nét giống với việc bạn thuê phòng ở một mìnhthìđắtnên tìm người ở cùng vậy 
 
- Từ lý do phải dùng cả máy chủ lớn, 
- 
Máy chủ đám mây(Cloud Server):- 
Rồi lại từ việc bị giới hạntài nguyên phần cứng, người ta dùngcông nghệ điện toán đám mây(cloud computing) cùng vớihệ thống lưu trữ SANđể kết hợpnhiều máy chủ vật lýở các nơi trên thế giới.
- 
Hệ thống lưu trữ SANvới tốc độ truy xuất vượt trội giúp máy chủ hoạt động nhanh, ổn định, hạn chế mức thấp tình trạng downtime.
- 
Công nghệ điện toán đám mâynên dễ dàng nâng cấp từng phần thiết bị trong quá trình sử dụng mà không làm gián đoạn quá trình sử dụng máy chủ.
 ![]() -> Chi phítính theo giây thực tế sử dụng, khi không cần có thểtạm ngưngsử dụng.-> Có thể scale, nâng cấpcấu hình- Ở giai đoạn đầu của sản phẩm đang có ít end_user thì dùng cấu hình thấp.
- Sau này số lượng end_usertăng lên thì điều chỉnh tăng cấu hình tương ứng
 => Giúp tiết kiệm chi phí hơn. 
- 
 
- 
Trên thị trường hiện nay, các Cloud Server free có chất lượng không thua kém gì bản mất phí, chỉ là bị giới hạn dung lượng hoặc cấu hình. Còn VPS với những bản miễn phí đôi khi hay xảy ra tình trạng giật lác ...
Vậy nên chúng ta sẽ tìm hiểu và sử dụng Cloud Server luôn nhé.
3. Nhà cung cấp
Nhắc đến các nhà cung cấp Cloud Server thì có ba ông lớn:
- Google với sản phẩm Google Cloud.
- Microsoft với sản phẩm Microsoft Azure.
- Amazon  với sản phẩm Amazon Web Service(AWS).

- 
Ngoài ra thì còn các nhà cung cấp khác với thị phần nhỏ hơn như Aruba Cloud,DigitalOcean,Vultr...
- 
Thế chọndịch vụ của bác nào bây giờ ?- AWSđã bước chân vào thị trường Cloud này- khá sớm- 2006, và trở thành mỏ- đào ra vàngcho Amazon. Hiện nay vẫn đang chiếm thị phần lớn nhất,- năm 2018 là 32%, nếu bạn có một doanh nghiệp lớn và bạn cần- nhiều ứng dụng, tiện íchnhất có thể, AWS có thể là giải pháp của bạn.
- Microsoftbước chân vào năm 2010, đến- 2018 thì đang chiếm 16,5 %. Nếu doanh nghiệp của bạn đã rất- gắn bóvới- hệ sinh tháinày, thì Azure có thể là lựa chọn của bạn.
- Còn Google bước chân vào năm 2008, đến 2018 thì chiếm 9,5 %. Đối với các công ty khởi nghiệp nhỏ, Google Cloud có thể là một giải pháp tốt vì mức giáhấp dẫn hơn, dễ sử dụng cho công ty nhỏ.
 
Với các khách hàng Nhật Bản thì không hiểu sao họ cực kì chuộng AWS, gần như là mặc định khi chọn nhà cung cấp server. Mình cũng đang làm việc với AWS, độ miễn phí của AWS cũng có vẻ mạnh tay nên trong bài viết này, chúng ta sẽ cùng tìm hiểu AWS nhé !
Khi đó, ta được miễn phí những gì:


- Đó là Amazon EC2: dịch vụ máy chủ ảo với 750h free
- Đó là Amazon S3: dịch vụ lưu trữ dữ liệu với 5 GB free
- ... và rất nhiều dịch vụ khác.
Trong phạm vi bài viết, như đã đề cập ở trên, ta cùng tìm hiểu Amazon EC2 nhé.
4. Các bước tiến hành
4.1 Chuẩn bị
- 
Chuẩn bị thẻ VISAhoặcMaster Card.- 
Có thể một số bạn chưa quen và ngạiđi làm thẻ VISA nhưng việcthanh toán onlinecho các công ty quốc tế như thế này là điều hết sứcbình thường, trước sau gì thì cũng nên làm một cái.
- 
Và bởi vì chúng ta sẽ thanh toán online nếu phát sinh chi phícho nên ngay từ bước đăng ký tài khoản thì đã cần thông tin này rồi.
 
- 
- 
Về thẻ quốc tế thì có chút lưu ý như sau: - Thẻ ngân hàng thông thường (thẻ nội địa) thì chỉ có thể thanh toán trong nước,thanh toán quốc tếthì cần thẻ VISA hoặc Master Card, khi ra nước ngoàirút tiềnthì cần thẻ này.
- Có 2 loại thẻ quốc tế là Debit hoặc Credit, google để tìm hiểu thêm
- Vì chỉ cần có thông tin trên thẻ thanh toán quốc tế, sau đó xác thực OTP là có thể thanh toán được, (thậm chí một số hệ thống còn bỏ qua xác thực OTP) nên nếu bị mất thẻthì coi như xong, vậy nên mô hình mà mọi ngườikhuyến cáonên sử dụng là làm mộtthẻ nội địa(để phần lớn tài khoản) và 1thẻ VISA(để ít tiền).
- Chọn ngân hàng:- Nội địa thì hay dùng thẻ của ngân hàng Vietcombank(chất lượng ổn định, tuy phí duy trì với chuyển tiền hơi cao)
- Quốc tế thì dùng thẻ của ngân hàng ACB(Thủ tục đơn giản, nhanh chóng, thời gian xác minh thấp, tới quầy giao dịch đăng ký thì sau 1-2 h đã có thể lấy thẻ dùng ngay, còn một số ngân hàng khác phải đợi từ 5-7 ngày.)
 
- Nội địa thì hay dùng thẻ của ngân hàng 
 
- Thẻ ngân hàng thông thường (thẻ nội địa) thì chỉ có thể 
4.2 Đăng ký tài khoản
- Vào trang chủ, đăng ký tài khoản Amazon nào.

- Các bạn cứ lần lượt điền các thông tin rồi Continuenhé ! Cũng không có gì quá đặc biệt ở đây cả, chỉ cólưu ýnhỏ là:- amazon.com -> trang bán lẻcủa công ty Amazon
- aws.amazon.com -> mới là truy cập dịch vụAmazon Web Service
- Đăng ký xong sẽ cần một thời gian để hệ thống xác minh thông tin ngân hàngcủa bạn, nhỡ đâu bạnkhai manthì sao Đợi email để biết kết quả nhé. Đợi email để biết kết quả nhé.
- Tài khoản ngân hàng của bạn sẽ bị trừ 1$, khả năng làphí xác minh danh tínhthì phải. Một số bạn của mình đã đượchoàn lạisau một thời gian, nhưng mình thì mãi mà chẳng thấy được hoàn lại gì cả 
 
- amazon.com -> trang 
4.3 Tạo Instance

- 
Sau khi Sign in to the ConsoleDưới đây là màn hình Console ![]() 
- 
Có rất nhiều dịch vụ được AWS cung cấp, để tạo và sử dụng cloud serverta chọn EC2 (Amazon Elastic Computer Cloud).- Chọn luôn Region Singaporecho gần Việt Nam nhé
- Mỗi một khi chạy một instancetức là tức là chúng ta đang khởi chạy lên mộtcloud server, nếu bật2 instancethìmỗi phúttrôi qua bạn sẽ bị tính thành2 phútvà mỗi tháng bạn có750 h freenhư thế trong vòng 1 năm.
- Nếu sắp vượt quá giới hạn free thì sẽ có email cảnh báogửi đến bạn, và nếu vượt qua thì bạn sẽ bịtrừ tiền, vậy thôi =))
 
- Chọn luôn 

- 
Click vào Launch Instance:- Bạn sẽ tới bước 1, chọn Amazon machine images(AMI)
- AMI cung cấp các gói cần thiết (bao gồm hệ điều hành và một số phần mềm cần thiết).
- AMI nào có chữ Free tier eligibletức bạn có thể sử dụng nó theo cấp free.
- Ở đây, mình cứ chọn Server Ubuntu 18.04 trắng tinhmà quất thôi =))![]() 
 
- Bạn sẽ tới bước 1, chọn 
- 
Chọn Instance Type,- Tương ứng sẽ chọn CPU, RAM ... nhưng ở đây chỉ có 1 loại được sử dụng cho "Free tier eligible" thôi.
- Nếu chọn Review and Launchthì bạn sẽ đồng ý với các config mặc định tiếp theo.
- Nếu chọn Next: Configure Instance Detailsthì bạn sẽ đi tới các bước cấu hình chi tiết và có thể sửa đổi chúng.
 ![]() 
- 
Setting Key Pair- Ở bước này, chúng ta cần tạo Key Pairrồi tải xuống, để sau này, chúng ta có thể dùng nó đểSSH vào server.
- Download Key Pairvề rồi giấu nó đi héng, để người khác- biết đượclà cũng mệt đấy.![]() 
 
- Ở bước này, chúng ta cần tạo 
- 
Click Launch Instance- Chúng ta sẽ tới màn hình quản lý Instance, sau khi Instance State chuyển sang Runing thì oki xong, chúng ta đã tạo xong một Cloud Server.
![]() 
 
- Chúng ta sẽ tới màn hình quản lý Instance, sau khi Instance State chuyển sang Runing thì oki xong, chúng ta đã tạo xong một Cloud Server.
5. Hướng dẫn sử dụng cơ bản
5.1 Security groups
- Click vào view inbound rules, mình sẽ nhìn thấy cổng kết nối đang được áp dụng.

- Click vào launch-wizard-3, sẽ tới màn hình quản lý cácSecurity groups- SSH thì sẽ qua cổng 22, HTTP thì sẽ quacổng 80, HTTPS thì quacổng 443...
- Nếu muốn có hình thức kết nốinào thì ta cầnmở cổng tương ứng.
- Có 2 cách ở đây, một là edit, bổ sung thêm hình thức HTTP cholaunch-wizard-3. Hai làtạo mớilaunch-wizard-4rồi chỉnh choinstancevừa tạo sử dụngsecuriry groupsnày ...![]() 
 
- SSH thì sẽ qua 
5.2 Truy cập Instance
- Chuột phảivào dòng hiển thị instance,- chọn connectsẽ hiển thị lên hướng dẫn truy cập:![]() 
Bao gồm
- 
Cấp lại quyền cho file pem: chmod 400 hoanky_blog_1.pem
- 
Sử dụng SSH để kết nối tới server Cú pháp: ssh -i <path_to_pem_file> <user_name>@<public_dns_ipv4>- user_name: Mặc định thì user_name ở đây là ubuntu
- public_dns_ipv4: các bạn có thể tìm thấy ở tab Description
 Vi dụ: ssh -i "hoanky_blog_1.pem" ubuntu@ec2-13-250-102-116.ap-southeast-1.compute.amazonaws.com

5.3 Cấp quyền
- 
Tạo thêmuserubuntu@ip-172-31-24-203:~$ sudo adduser deploy

- Chuyển đổiuser

- 
Bây giờ, bạn phép ai đó có thể truy cậpserver vớiaccount user deploy, cònuser ubuntuthì chỉ có bạn thôi, vì bạn làbig bossmà - 
Sinh SSH key ở local ssh-keygen -t rsa -C "deploy@gmail.com
- 
Điều này sẽ tạo ra public key và private key. - Private key thì phải giấu nhé
- Public key thì mặc định được lưu ở đâycat ~/.ssh/id_rsa.pub
 
- 
Đem public key này đặt vào server, tương ứng cho user deploy su deploy cd mkdir .ssh nano ~/.ssh/authorized_keysrồi paste public key vào đây. 
- 
Okie, xong rồi, bạn có thể kết nối từ local vào user deployrồi![]() 
 
- 
- 
Cấp quyền sudo- 
Tuy nhiên user deploynày chưa thể chạy vớiquyền sudođượcdeploy@ip-172-31-24-203:~$ sudo apt-get update [sudo] password for deploy: deploy is not in the sudoers file. This incident will be reported.
- 
Vậy nên hãy cấp quyềnsudo cho nósudo nano /etc/sudoers![]() Để ý một chút, ta thấy có group adminvà groupsudokìa, vậy adduser deployvàogroup sudolà xong.sudo usermod -a -G sudo deploy![]() 
 
- 
5.4 Truy cập HTTP
Ở phần này chúng ta sẽ config để có thể truy cập server từ cổng 80 nhé. OK let go 
- 
Bước 1: Chỉnh Security groups- Chỉnh sửa security groupsmàinstanceđang sử dụng, bổ sung thêm HTTP nếu chưa có![]() 
 
- Chỉnh sửa 
- 
Bước 2: Cài đặt nginx cho server. sudo apt-get install nginx
- 
Kiểm tra lại status của nginx service sudo service nginx status -> Active: active (running) since Wed 2019-07-24 03:42:54 UTC; 8s ago
- 
Tận hưởng thành quả nào ![]() 
Tài liệu tham khảo:
② https://vn.apps-gcp.com/so-sanh-dich-vu-gcp-vs-aws-vs-azure/
③ https://quantrimang.com/tim-hieu-ve-dich-vu-amazon-ec2-83626
④. https://www.codehub.vn/Phan-Biet-Su-Khac-Nhau-Giua-VPS-va-Cloud-Hosting
⑤ https://toidicodedao.com/2018/11/27/cloud-ra-doi-cloud-provider-aws-azure-gcp/
⑥ https://vuihocweb.com/vhw-reviews/hosting-reviews/nhung-dich-vu-vps-free-dang-dung
All rights reserved
 
  
 














