Mục đích
- Task 1: Tạo và hiểu được mục đích của 1 VPC là gì?
- Task 2: Tạo và hiểu được mục đích của 1 public subnet là gì?
- Task 3: Tạo và hiểu được mục đích của 1 Internet Geteway là gì?
- Task 4: Tạo và hiểu được mục đích của 1 Route Table là gì?
- Sau khi log in vào console của aws, tìm tới service VPC
- Ở VPC dashboard, click Your VPCs
- Click vào VPC và cấu hình như sau rồi nhấn Create
Name tag: ThanhCong VPC
=> Cái này đơn giản chỉ là tên của VPC mình muốn đặt.
IPv4 CIDR block: 10.0.0.0/16
=> Cái này là dải IP version 4 mà mình chỉ định cho VPC của mình
VPC là một phần biệt lập của AWS Cloud, được cư ngụ bởi các objects, chẳng hạn như các instances Amazon EC2. Hay nói đơn giản, VPC như 1 căn nhà riêng, nơi mà người dùng có thể sắp xếp, điều khiển, phân bổ các services của aws, như là EC2 chẳng hạn.
Như vậy là việc tạo 1 VPC cơ bản là hoàn thành.
Name tag: Public 1
VPC*: lựa chọn VPC đã create ở Task 1
Availability Zone: Chọn zone đầu tiên trong list
IPv4 CIDR block: 10.0.1.0/24 => Chỗ này là dải IP version 4 của subnet
- Tạo subnet thành công
Sau khi create subnet thì tiến hành "Enable auto-assign public IPv4 address" cho subnet đó. Việc này có ý nghĩa là sẽ cho phép subnet đó tự động cấp 1 địa chỉ IP cho toàn bộ instance mà khởi tạo trong subnet đó.
- Chọn vào button và click Modify auto-assign IP settings
- Click button Auto-assign IPv4 và nhấn Save
Tạo 1 public subnet thứ 2 tương tự như các bước đã tạo public subnet đầu tiên
=> Có thể hiểu đơn giản, subnet là các căn phòng nhỏ trong ngôi nhà VPC, mỗi subnet sẽ có 1 mục đích sử dụng riêng khác nhau.
- Tại VPC dashboard, chọn vào Internet Gateways và click Create internet gateway
- Đặt name tag cho Internet Gateway rồi click Create
Có thể hiểu đơn giản internet gateway như 1 cái cửa để đi ra Internet của căn nhà VPC vậy. Muốn đi ra ngoài thì bắt buộc phải làm cửa thôi 😃
Thao tác này giống như gắn cửa Internet Gateway vào căn nhà VPC vậy.
Có thể hiểu đơn giản, Route table như là các ống dẫn nước trong nhà, cho phép chủ nhà điều kiển được nước được phép chảy từ phòng (subnet) nào tới phòng nào, hay là chảy ra ngoài (internet).
-
Sau khi tạo được Route table thì tiến hành thiết lập route theo ý muốn (giống như tiến hành lắp ráp các ống dẫn nước để điều hướng dòng chảy vậy). Chọn vào tab Routes bên dưới màn hình Route table rồi chọn Edit Route
-
Chọn add route với cấu hình rồi click Save routes
Destination: 0.0.0.0/0 Target: Là cổng IG đã tạo ở task 3
-
Sau khi tạo route thành công thì còn phải tạo Subnet Associations để chỉ định subnet nào apply route đã tạo đó. Chọn tab Subnet Associations rồi click Edit Subnet Associations
Như vậy, đến đây có thể xem như đã hoàn thành cơ bản 4 mục tiêu đã đề ra ban đầu. Trong phần sau mình sẽ tiếp tục tìm hiểu thêm về private subnet và thực hiện launch 1 web app trên VPC này.
Có thể suy nghĩ VPC như 1 ngôi nhà riêng mà ở đó chủ nhà có toàn quyền để phân chia, sắp xếp các tài nguyên của mình, cũng như cho phép vị khách nào có quyền ghé thăm và sử dụng các tài nguyên đó. Các subnet thì có thể xem như là các căn phòng, được chia ra để phục vụ các mục đích khác nhau. Để căn nhà có thể liên lạc được với thế giới bên ngoài thì cần có cánh cửa Internet Gateway. Route table như là các ống dẫn nước, cho phép chủ nhà điều khiển dòng chảy lưu thông trong nhà, giữa phòng này với phòng khác, hay giữa căn nhà với bên ngoài.
Trong đó chỉ có 2 Public Subnet Group được route tới Internet Getway và thực tế thì chưa hề có instance nào cả.
- Task 5: Tạo Security Group sử dụng cho Web Server
- Task 6: Tạo 1 EC2 đóng vai trò là 1 Web Server đặt ở Public Subnet
- Task 7: Tạo Private Subnet sử dụng cho việc thiết lập instance Database
- Task 8: Tạo Security Group sử dụng cho Database Server
- Task 9: Tạo Database Subnet Group
- Task 10: Tạo 1 instance AWS RDS
- Task 11: Kết nối application ở EC2 tới RDS
- Trước hết, đọc qua xem thử cái Security Group (SG) là cái gì.
Cơ bản thì SG được xem như một "tường lửa ảo" nhằm lọc các truy cập vào các Instance hoặc đi ra từ các Instance. SG sẽ hoạt động dựa vào các rule do admin cài đặt.
-
Chọn Security Groups ở thanh điều hướng, click Create security group để bắt đầu tạo SG
-
Cấu hình thông tin SG như sau. Chú ý lựa chọn VPC là VPC đã tạo ở task 1
-
Sau đó tiến hành tạo Rule cho SG vừa tạo. Click vào Inbound Rules để tạo rule cho các traffic đi vào. Config như bên dưới nhằm cho phép các traffic từ bên ngoài có thể đi vào SG này qua type HTTP
Đến đây, task tạo Security Group về cơ bản đã hoàn thành. Mình đã tạo được 1 SG control các traffic từ Internet đi vào các Instance nằm trong SG này. Và thông thường thì Instance nằm trong SG này sẽ là 1 con EC2 chạy WebServer để người dùng có thể truy cập vào từ internet.
-
Ở task này sẽ thực hiện tạo 1 EC2 đảm nhiệm vai trò là 1 Web Server. Web Server cần được truy cập từ Internet nên sẽ đặt tại Public Subnet
-
Chi tiết việc tạo 1 EC2 đã được mình thực hiện ở đây. Tuy nhiên ở task này, mình sẽ sử dụng 1 script có sẵn và được chạy khi EC2 được khởi tạo nhằm cài đặt 1 WebServer lên con EC2 này, đồng thời chạy 1 app có thể được config để trỏ tới mySQL RDS Instance.
-
Ở Step 3 khi tạo EC2 thì cấu hình như bên dưới. Chú ý chọn Network là VPC Subnet đã tạo ở Task 1. Subnet là Subnet Public 1.
-
Config SG như bên dưới. Chú ý chọn SG là SG đã create ở task 5. Sau đó click Review and Launch
-
Ở window Select an existing key pair or create a new key pair thực hiện config như bên dưới. Click Launch Instances
-
Đợi 1 khoảng thời gian sau đó trạng thái của EC2 vừa mới tạo sẽ chuyển sang "running". Lúc này script được past vào ở step trên sẽ thực hiện cài đặt 1 WebServer lên con EC2 này, đồng thời chạy 1 app có thể được config để trỏ tới mySQL RDS Instance.
-
Thử access vào WebServer vừa tạo bằng cách copy và paste IP Pulic con EC2 này vào trình duyệt, kết quả sẽ như bên dưới
=> Đến đây Task 6 đã được hoàn thành. 1 EC2 chạy WebServer đã được đặt trong Public Subnet và nằm trong SG tạo ở task 5.
Để đảm bảo tính bảo mật cao, các ứng dụng thông thường sẽ đặt tầng cơ sở dữ liệu nằm riêng biệt cũng như hạn chế các luồng truy cập vào. Ở task này, mình sẽ thực hiện tạo 1 Private Subnet nằm đặt Instance Database cho ứng dụng. Subnet này sẽ không có quyền đi ra ngoài Internet, cũng như ngược lại, không cho phép các traffic từ ngoài Internet có thể access vào.
-
Việc tạo Private Subnet thực tế không khác gì so với việc tạo Public Subnet. Với Private Subnet 1 sẽ được config như bên dưới
-
Sau đó tiếp tục tạo 1 Private Subnet 2. Chú ý cần phải tạo 1 Private Subnet 2 có Availability Zone để có thể đủ điều kiện tạo Database Subnet Group ở bước sau
-
Sau khi tạo xong 2 Private Subnet thì mình có tổng cộng 4 subnet như bên dưới
-
Tương tự như task 5 tạo SG cho WebServer thì task 8 thực hiện tạo 1 SG nhằm sử dụng cho Database Server.
-
Sau khi create xong Database Security Group thì thực hiện set Rule cho SG này. Click vào Add Rule vào config như bên dưới. Chú ý là SG này sẽ chỉ set Rule cho phép WebServer Security Group được đi vào Database Security Group. Để config được như vậy thì ở phần Source, cần chọn Custom và paste vào Group ID của WebServer Security Group
Trước hết biết được là muốn tạo 1 Instance RDS thì bắt buộc phải có 1 database subnet group. Ngoài ra điều kiện cần để tạo database subnet group là phải có ít nhất 2 Availability Zones khác nhau. (Đã được chuẩn bị ở task 7)
-
Click vào Services, click RDS để bắt đầu tạo DB subnet group
-
Click Create DB Subnet Group và config như bên dưới. Chú ý lựa chọn VPC là VPC đã create ở task 1
-
Thực hiện add 2 Subnet Private đã tạo ở task 7. Click Create
=> Task 9 đến đây đã hoàn thành.
-
Click vào Databases ở thanh điều hướng, click vào Create databases để bắt đầu tạo RDS Instance
-
Sau khi Create RDS, đợi 1 lúc status của RDS sẽ chuyển qua available
Task 10 đã hoàn thành. Mình đã deploy thành công MySQL database.
- Ở task này sẽ thực hiện connect app nằm ở WebServer (đặt ở Public Subnet) vào MySQL DB được đặt ở Private Subnet.
- Để thực hiện được, cần phải biết được "endpoint" của Instance RDS đã tạo ở Task 10. Để copy endpoint của RDS thì click vào tab Connect&Security. Enpoint sẽ có dạng
Sơ đồ này cũng là 1 kiến trúc khá Basic khi tìm hiểu về AWS. Qua bài lab mình cũng đã học thêm được khá nhiều kiến thức mới thú vị vầ có thể áp dụng trong công việc hiện tại.
download pdf