Basic Amazon Web Services P3

Hôm nay mình sẽ tiếp tục trình bày với các bạn Phần 3

Bài viết về AWS cơ bản giành cho người mới bắt đầu.
Trong phần 2, mình đã hướng dẫn các bạn: Basic về VPC, Public subnet, Private subnet, Internet GateWay và NAT GateWay.
Chi tiết các bạn có thể xem lại link bên dưới:
https://viblo.asia/p/basic-amazon-web-services-p2-bWrZnwnYlxw

Tiếp theo phần 2, hôm nay mình viết thêm phần 3.
Nội dung: ACL (Access control lis), SG (Sercurity Group), Instance EC2.
mô hình vẫn follow ở Phần 2


Ở phần 2, sau khi mình tạo VPC, Public subnet, Private subnet, Internet GateWay và NAT GateWay. Bây giờ mình tiến hành Tạo ACL và SG nhé.

1. Khái niệm về ACL và SG ?

Network access control lists (ACLs)
Hoạt động giống như một tường lửa cho subnet, điều khiển lưu lượng truy cập ra vào mạng ở mức subnet
Có thể hiểu đơn giản, nó giống như ACL của router ở trên công ty vậy.

Security groups ?
Hoạt động giống như một tường lửa cho EC2 Instances, điều khiển lưu lượng truy cập ra vào mạng ở mức EC2 instance.
Có thể hiểu đơn giản, nó giống như firewall ở trên windows vậy

Sự khác nhau:
ACL:

  • Quản lý lưu lượng vào ra ở mức Subnet,
  • Hỗ trợ cả Allow Rule (Cho phép) và Deny Rule (Từ chối),
  • AWS xử lý các rule theo thứ tự số khi quyết định có cho phép lưu lượng truy cập,
  • Tự động áp dụng cho tất cả các instance trong subnet được liên kết với (do đó, bạn không phải dựa vào người dùng để chỉ định security group)

SG:

  • Quản lý lưu lượng vào ra ở mức Instance
  • Chỉ hỗ trợ Allow Rule (Cho phép)

2. Tạo ACLs

Tại thanh tìm kiếm, ta search từ khoá VPC.



Trong mục Security, ta lựa chọn Network ACLs



Tiến hành đặt tên và gán vào VPC ( VPC đã tạo ở Phần 2 rồi nhé )
https://viblo.asia/p/basic-amazon-web-services-p2-bWrZnwnYlxw



Sau khi tạo xong, ta Edit lại rules cho phù hợp.
Default khi tạo mới một ACLs, tất cả các rules sẽ bị deny.



à, để hiểu hơn về cách thức đặt rule.
Inbound: ở ngoài internet truy cập vào.
Outbound: đứng ở EC2 đi ra.

Ở ngoài internet vào - chúng ta muốn mở port nào thì ta mở.
Sau khi mở trên ACL thì mở thêm ở SG nữa nhé
ví dụ: ở ngoài ta muốn ssh vào ec2, thì tất nhiên phần inbound ta phải mở port 22 rồi
Trong trường hợp này, mình sẽ mở một số port cần thiết để chạy Frontend như là: 80/443, 22 (Port này để ssh đến)



Phía trên là phần set inboud rules, tiếp đến ta set thêm phần outbound nữa mới OK nhé

Trong phần outbound rules có thêm 1 rules mở port từ 32768 - 65535, đây là Ephemeral Ports.
ví dụ, mình có 1 web server,
client -> request đến -> Server
Xong
Server -> respone lại > client
thì quá trình respone này nó sẽ đính kèm thêm Ephemeral port nữa
Có thể tham khảo hình này nhé



Set outbount rules



3. Tạo Security Groups

SG cho phép quản lí lưu lượng, rules ở mức Instance (EC2)
Chính vì vậy, mình cũng phải nên set rules cho nó.
Tiến hành tạo SG,



Đặt tên và gán vào VPC



Set inbound rules



Set outbound rules



Như vậy thông qua mục (1) và mục (2) ta đã tạo được ACLs và SG
Nếu như bạn đọc cảm thấy khó hình dung thì ngẫm theo hướng này nhé
từ internet đi vào thì sẽ đi qua ACLs trước sau đó đến SG và đến EC2

Internet -> ACLs -> SG -> EC2

Như vậy, nếu ta mở port 22 để connect vào ec2 chẳng hạn, thì ta phải mở trên ACLs và trên SG luôn đúng không
Nếu mở ACLs mà không mở SG thì đâu đến được ec2 và ngược lại
Còn phần outboud (từ ec2 đi ra ngoài internet), đi ra thì SG cứ mở all cho nó đi thoải mái.

4. Tạo Instance (EC2)

Khái niệm: Nói một cách đơn giản thì Amazon Elastic Computer Cloud (Amazon EC2) hay còn gọi là Instance (Virtual Server)
-> Nó là một Cloud server, một Vitual Machine ...
-> Cũng giống như chúng ta dùng windows trên máy thì bây giờ mình connect vào môi trường cloud mình dùng thôi

Tiến hành tạo 1 con EC2
Tại thanh tìm kiếm, ta search EC2



Lựa chọn instance -> Lauch Instance


Lưu ý, trong khi làm lab thì ta chọn loại có chữ : "Free tier eligible", loại này AWS free cho chúng ta dùng trong khoảng 750 giờ



Lựa chọn type của Instance, loại mình đang chọn là t2.micro
Cách lựa chọn type theo nhu cầu thì các bạn có thể xem như bên dưới:
ví dụ:
dòng t thì thường dùng cho test,
dòng a thì genera, nó cân giữa RAM và CPU
dòng m, dòng r thì dùng cho máy sử dụng nhiều memory
dòng c thì dùng cho máy sử dụng CPU nhiều
dòng hs, dòng i thì dùng cho lưu trữ nhiều
...
Các bạn search để tìm hiểu thêm nhé:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
https://aws.amazon.com/ec2/instance-types/



lựa chọn type rồi next



Tại mục network, ta lựa chọn private subnet ( đã tạo ở phần 2)
https://viblo.asia/p/basic-amazon-web-services-p2-bWrZnwnYlxw

Step 5, add tags - phần này có thể tag hoặc không cũng được.
Ví dụ mình để key = Name
Tag = lab-architect-subnet-private
Thì sau khi tạo xong ec2, mình check sẽ thấy name ec2 là: lab-architect-subnet-private



Tiếp đến là lựa chọn Security Group (SG)



Review lại rules, các thông tin cần thiết -> LAUCH



Tạo key để ssh từ client đến server ec2



Kết quả thành công ta sẽ thấy như thế này
Chúng ta thấy rằng IP ở EC2 này là private IP nhé, vì ban nãy ta đã chọn private subnet




Tương tự các bước trên, ta cũng tiến hành tạo 1 EC2 có public subnet



Kết quả:



So sánh với private subnet


Test KQ:
Đứng từ phía client, ta sẽ ssh đến server EC2 ( Server dùng public subnet)



Từ con server EC2 (public subnet), ta tiến hành ssh sang Server EC2 (private subnet)



Kết quả OK

Vâng, thì bài viết của mình đến đây là kết thúc rồi.
Trong phần tiếp theo, phần 4 mình sẽ viết về Load Blancing
https://viblo.asia/p/basic-amazon-web-services-p4-maGK7Vge5j2
Bài viết mình cũng còn khá sơ sài và basic, bạn đọc thấy phần nào không ổn thì comment trao đổi để tốt hơn nhé..
Thank you !

Nguồn tham khảo:
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html
https://aws.amazon.com/ec2/instance-types/
https://vinasupport.com/tim-hieu-ve-network-acls-layer-bao-mat-vpc/