Đă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 5 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 web
nói riêng, khi nhắc tớideploy projetc
lê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 ở
localhost
trên máy của bạn, thì chỉ córất ít
ngườ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ới
cũng có thể trải nghiệm thành quả đó thì hãytriển khai website
lê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ên
hoặctải xuống
dữ 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 ra
má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ụng
cho đế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ành
sẽ 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ấp
hoặc thay đổicấu hình
của máy chủ riêng đòi hỏi phảithay đổi phần cứng
củ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ính
trê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ên
từ 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ạn
bở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ình
thìđắt
nê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ạn
tà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ữ SAN
vớ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ây
nê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ưng
sử dụng.-> Có thể
scale, nâng cấp
cấ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_user
tă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ọn
dịch vụ của bác nào bây giờ ?AWS
đã bước chân vào thị trường Cloud nàykhá sớm
- 2006, và trở thành mỏđào ra vàng
cho 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ầnnhiều ứng dụng, tiện ích
nhất có thể, AWS có thể là giải pháp của bạn.Microsoft
bước chân vào năm 2010, đến2018 thì đang chiếm 16,5 %
. Nếu doanh nghiệp của bạn đã rấtgắn bó
vớihệ sinh thái
nà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ẻ VISA
hoặ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 online
cho 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ền
thì 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áo
nê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
Continue
nhé ! 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àng
của bạn, nhỡ đâu bạnkhai man
thì sao Đợ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ính
thì phải. Một số bạn của mình đã đượchoàn lại
sau 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 Console
Dướ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 server
ta chọn EC2 (Amazon Elastic Computer Cloud).- Chọn luôn
Region Singapore
cho gần Việt Nam nhé - Mỗi một khi chạy một
instance
tức là tức là chúng ta đang khởi chạy lên mộtcloud server
, nếu bật2 instance
thìmỗi phút
trôi qua bạn sẽ bị tính thành2 phút
và mỗi tháng bạn có750 h free
như 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áo
gử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 eligible
tứ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 tinh
mà 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 Launch
thì bạn sẽ đồng ý với các config mặc định tiếp theo. - Nếu chọn
Next: Configure Instance Details
thì 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 Pair
rồi tải xuống, để sau này, chúng ta có thể dùng nó đểSSH vào server
. Download Key Pair
về rồi giấu nó đi héng, để người khácbiết được
là 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.
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ối
nà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ới
launch-wizard-4
rồi chỉnh choinstance
vừa tạo sử dụngsecuriry groups
này ...
- SSH thì sẽ qua
5.2 Truy cập Instance
Chuột phải
vào dòng hiển thị instance,chọn connect
sẽ 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êm
userubuntu@ip-172-31-24-203:~$ sudo adduser deploy
Chuyển đổi
user
-
Bây giờ, bạn phép ai đó có thể
truy cập
server vớiaccount user deploy
, cònuser ubuntu
thì chỉ có bạn thôi, vì bạn làbig boss
mà-
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 ở đây
cat ~/.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_keys
rồi paste public key vào đây.
-
Okie, xong rồi, bạn có thể kết nối từ local vào
user deploy
rồi
-
-
Cấp
quyền sudo
-
Tuy nhiên
user deploy
nà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ền
sudo cho nósudo nano /etc/sudoers
Để ý một chút, ta thấy có group
admin
và groupsudo
kìa, vậy adduser deploy
vàogroup sudo
là 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 groups
mà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